Η γλώσσα προγραμματισμού C
Γουρζής Στάθης – Φυσικός ( Άρθρο δημοσιευμένο στην εφημερίδα « Λευκαδίτικος Λόγος» - Οκτώβριος 1999 )
Ο προγραμματισμός των ηλεκτρονικών υπολογιστών είναι μια ξεχωριστή διαδικασία για όλους εκείνους που ασχολούνται συστηματικά με την Πληροφορική. Αυτό σημαίνει ότι απαιτεί όχι μόνο ιδιαίτερες γνώσεις σχετικά με την δομή του υλικού, (hardware), αλλά και ειδικές γνώσεις γύρω από τα βασικά προγράμματα που ξεκινάνε τον computer, τα λειτουργικά συστήματα όπως λέγονται,(operating systems),και γενικότερα το λογισμικό του συστήματος, (software). Στην πορεία της ανάπτυξης των προγραμμάτων για τους ηλεκτρονικούς υπολογιστές, βελτιώθηκαν σημαντικά τόσο οι συνθέσεις των μηχανημάτων όσο και οι λειτουργίες και η ποιότητα των προγραμμάτων που χρησιμοποιούνται. Παράλληλα βελτιώθηκαν και τα εργαλεία ανάπτυξης εφαρμογών, ή οι γλώσσες προγραμματισμού, όπως έχει επικρατήσει να λέγονται πιο απλά αυτά τα προγράμματα. Πολλές από τις παλιές γλώσσες προγραμματισμού εξελίχθηκαν, άλλες σταμάτησαν σε κάποια συγκεκριμένη μορφή και άλλες εκτοπίστηκαν από την αγορά των ηλεκτρονικών υπολογιστών, αφού δεν κατάφεραν έγκαιρα να προσαρμοστούν στην εξέλιξη της τεχνολογίας. Η γλώσσα προγραμματισμού Basic δημιουργήθηκε για να χρησιμοποιηθεί από άτομα που δεν είχαν ιδιαίτερη σχέση με τους ηλεκτρονικούς υπολογιστές, ενώ η Pascal απευθυνόταν κυρίως σε εκείνους που θα ήθελαν να ξεκινήσουν, με σχετικά εύκολο τρόπο, την εισαγωγή τους στον κόσμο του προγραμματισμού των computers. Τόσο η μία, όσο και ή άλλη γλώσσα προγραμματισμού έγιναν πολύ δημοφιλείς στην εποχή τους στους αρχάριους αλλά και στους πεπειραμένους χρήστες και προγραμματιστές ηλεκτρονικών υπολογιστών. Την δεκαετία του ’70, και ενώ η Basic και η Pascal γνώριζαν καθολική αποδοχή από τον κόσμο των προγραμματιστών της εποχής, εμφανίστηκε μια καινούργια γλώσσα προγραμματισμού που επρόκειτο να αλλάξει κυριολεκτικά την εικόνα των προγραμμάτων και των ηλεκτρονικών υπολογιστών γενικότερα. Μιλάμε για την γλώσσα προγραμματισμού C που αποτελούσε, πολύ φυσιολογικά, το επόμενο βήμα στην ιστορία του προγραμματισμού. Οι επιστήμονες που είχαν κατασκευάσει την Basic και την Pascal, είχαν καταφέρει να δώσουν στο ευρύ κοινό τις βασικές αρχές του
προγραμματισμού και της αναλυτικής σκέψης που τον συνοδεύει. Tο επόμενο βήμα ήταν να αυξήσουν τις γνώσεις του προγραμματιστή, να διευρύνουν τις λειτουργίες των προγραμμάτων που θα μπορούσε να κατασκευάσει και να αυξήσουν τον έλεγχο του πάνω στο υλικό, τις συσκευές του computer. Με αυτές τις σκέψεις δημιουργήθηκε η γλώσσα C,που ερχόταν να καλύψει τις ήδη διαφαινόμενες και αυξημένες ανάγκες των προγραμματιστών σε προγράμματα με υψηλό επίπεδο λειτουργίας, σε σχέση με τα εξαρτήματα του ηλεκτρονικού υπολογιστή. Το 1972 ο Dennis Ritchie και Ken Thompson ασχολούνταν με τον σχεδιασμό και την υλοποίηση ενός καινούργιου λειτουργικού συστήματος, που θα παρουσίαζε υψηλές προδιαγραφές ασφαλείας και ακρίβειας στην διαχείριση δεδομένων για μεγάλους υπολογιστές. Όταν λέμε σχεδιασμό και υλοποίηση δεν εννοούμε τίποτε άλλο από την συγγραφή του απαραίτητου κώδικα για την δημιουργία του προγράμματος. Οι δύο προγραμματιστές προσπαθούσαν να πετύχουν την, όσο το δυνατόν, ακριβέστερη διαχείριση των συσκευών που αποτελούν ένα ηλεκτρονικό υπολογιστή, είτε αυτός λειτουργούσε ανεξάρτητα είτε συνδεδεμένος με άλλους υπολογιστές. Αυτό θα ελαχιστοποιούσε σε σημαντικό βαθμό την πιθανότητα λάθους από την μεριά του μηχανήματος και θα έδινε τον τελικό έλεγχο των αρχείων στον προγραμματιστή και, κατ’ επέκταση, στον χρήστη του προγράμματος. Το λειτουργικό σύστημα που ανέπτυσσαν εκείνη την εποχή οι δύο προγραμματιστές είναι το σημερινό, πασίγνωστο στον κόσμο της Πληροφορικής,Unix. Μεγάλο μέρος από τον πηγαίο κώδικα του Unix είναι γραμμένο σε γλώσσα C, πράγμα που δείχνει την άψογη συνεργασία των δύο προγραμμάτων. Η γλώσσα προγραμματισμού C αναπτύχθηκε εκείνη την εποχή με σκοπό να λειτουργήσει κάτω από αυτό το λειτουργικό περιβάλλον. Οι αυξημένες δυνατότητες της όμως, σε σύγκριση με τις ήδη υπάρχουσες γλώσσες προγραμματισμού, την έκαναν πολύ γρήγορα γνωστή στους προγραμματιστές της εποχής. Ο κύριος λόγος της δημιουργίας της C ήταν να αποτελέσει ένα χρήσιμο εργαλείο για τους προγραμματιστές της εποχής, που ήδη όμως είχαν την απαραίτητη πείρα από τις προηγούμενες
γλώσσες προγραμματισμού. Η εκμάθηση της C απαιτεί όχι μόνο τις συνηθισμένες γνώσεις για κάθε γλώσσα προγραμματισμού, αλλά και καλή γνώση των βασικών αρχών της Άλγεβρας και των Μαθηματικών γενικότερα. Απευθύνεται σε έμπειρους προγραμματιστές και σε καμία περίπτωση σε αρχάριους ή πολύ περισσότερο σε ανθρώπους που ξεκινάνε με τον ηλεκτρονικό υπολογιστή. Δεν πρόκειται βέβαια για μια από τις δυσκολότερες γλώσσες προγραμματισμού, αλλά σίγουρα δεν είναι από τις πιο εύκολες και η εκμάθησή της απαιτεί χρόνο, μελέτη και κυρίως πείρα στην αντιμετώπιση προβλημάτων. Ανάμεσα στα εξαιρετικά πλεονεκτήματα που παρουσιάζει η C είναι και εκείνο της άριστης επικοινωνίας μεταξύ του υλικού, (hardware), και των προγραμμάτων, (software). Στο λεξικό της περιλαμβάνει πολλές εντολές που αφορούν αποκλειστικά τις συσκευές του ηλεκτρονικού υπολογιστή, όπως ο σκληρός δίσκος, οι δισκέτες και η διαθέσιμη μνήμη του computer. Και στις τρεις αυτές περιοχές του υπολογιστή τοποθετούνται τα αρχεία, (files), σε ηλεκτρομαγνητική μορφή, υπό την μορφή σημάτων που λέγονται ψηφία, (digits), του 0 και του 1.Ετσι ο προγραμματιστής γνωρίζει κατά την διάρκεια της ανάπτυξης του πηγαίου κώδικα, αλλά και κατά την εκτέλεση του προγράμματος, πότε και πως θα εγγραφούν τα δεδομένα,(data), που επεξεργάζεται στο υλικό του συστήματος. Η γλώσσα προγραμματισμού C, και συγκεκριμένα η έκδοση Turbo C 2.0, έχει απεριόριστες δυνατότητες, όσον αφορά τις λειτουργίες που μπορεί να προσφέρει μέσα σε ένα πρόγραμμα. Με τις εντολές που διαθέτει στις βιβλιοθήκες της, μπορεί να υπολογίσει με ταχύτητα και ακρίβεια το τόξο ενός ημίτονου ή ακόμα και να σχεδιάσει στην οθόνη του ηλεκτρονικού υπολογιστή γραφικές παραστάσεις από μαθηματικές συναρτήσεις, με εξαιρετική πιστότητα και υψηλή ποιότητα γραφικών. Η έκδοση αυτή περιλαμβάνει 450 εντολές, με τις οποίες ο προγραμματιστής έχει την δυνατότητα όχι μόνο να εντρυφήσει στον κόσμο των ηλεκτρονικών υπολογιστών, αλλά και να αναπτύξει τις δικές του ιδέες γύρω από τον προγραμματισμό. Είτε αυτός είναι προσανατολισμένος στην ανάπτυξη επαγγελματικών εφαρμογών, είτε αφορά προγράμματα για εκπαιδευτικούς σκοπούς η γλώσσα
προγραμματισμού παρέχει την δυνατότητα της πλήρους εκμετάλλευσης του υλικού του υπολογιστή, αλλά κυρίως των ιδεών και κυρίως της φαντασίας του προγραμματιστή. Σήμερα η Turbo C 2.0 χρησιμοποιείται κυρίως για εκπαιδευτικούς σκοπούς, αλλά και στην ανάπτυξη επιμέρους διαδικασιών σε προγράμματα που γράφονται με άλλες γλώσσες προγραμματισμού. Είναι μια δομημένη γλώσσα προγραμματισμού,(structured programming language), που σημαίνει ότι διαθέτει την απαραίτητη δομή για την ανάπτυξη προγραμμάτων σε διαδοχικά τμήματα, ώστε να αυξάνεται ο έλεγχος του προγραμματιστή πάνω στον πηγαίο κώδικα, (source code), των προγραμμάτων του, αλλά και στις λειτουργίες του, σε πρακτικό επίπεδο. Μεγάλη, και πάρα πολύ γνωστή, έκδοση της C στις μέρες μας είναι η C++, μια γλώσσα προγραμματισμού που χρησιμοποιείται για την κατασκευή όλων σχεδόν των σύγχρονων προγραμμάτων για computers. Με την C++ κατασκευάζονται από λειτουργικά συστήματα όπως τα Windows, μέχρι προγράμματα επεξεργασίας γραφικών και σχεδίου, εικόνας και ήχου, (multimedia). Η C++ είναι μια αρκετά πολύπλοκη γλώσσα προγραμματισμού, που απαιτεί καλή γνώση της C και των computers γενικότερα. Επειδή αποτελεί έναν εντελώς διαφορετικό τρόπο δουλειάς, τόσο στο θεωρητικό μέρος όσο και στο πρακτικό, θα αναφερθούμε σε αυτή σε κάποιο από τα επόμενα άρθρα του «Λευκαδίτικού Λόγου». Υ.Γ. Για το άρθρο χρησιμοποιήθηκαν σαν πηγή δεδομένων τα παρακάτω βιβλία : 1) « C : Βήμα - προς – Βήμα »,των Mitchell Waite, Stephen Prata and The Waite Group, που έχει εκδοθεί από τις εκδόσεις «Μ.Γκιούρδας» το 1991. 2) « Borland C++ Προγραμματισμός για Windows», του Steven Holzner, που έχει εκδοθεί από τις εκδόσεις «Β.Γκιούρδας» το 1991. 3) « Η βίβλος της Turbo C »,από την ομάδα Waite,που έχει εκδοθεί από τις εκδόσεις «Μ.Γκιούρδας» το 1990.