Ιστορία γλωσσών προγραμματισμού
Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Αυτό το άρθρο χρειάζεται επιμέλεια ώστε να ανταποκρίνεται σε υψηλότερες προδιαγραφές ορθογραφικής και συντακτικής ποιότητας ή μορφοποίησης. Σημείωση: Πολλές φορές τα κείμενα στα οποία βρίσκεται αυτό το πρότυπο, παραβιάζουν πνευματικά δικαιώματα. Κάντε ένα σχετικό έλεγχο πριν ξεκινήσετε την επιμέλεια, αφού είναι πιθανό να διαγραφεί. Μετά την επιμέλεια του άρθρου, είστε ελεύθεροι να διαγράψετε αυτή την επισήμανση. Για περαιτέρω βοήθεια, δείτε τα άρθρα Πώς να επεξεργαστείτε μια σελίδα και Βικιπαίδεια:Οδηγός μορφοποίησης άρθρων. |
Ουσιαστικά ο ψηφιακός υπολογιστής μπορεί να χρησιμοποιήσει μόνο δυαδικούς αριθμούς και να εκτελέσει διαδοχικά εντολές, που του δίνονται κι αυτές με μορφή δυαδικού αριθμού. Τα προγράμματα που φτιάχνονται με τέτοιες εντολές λέμε πως φτιάχνονται σε γλώσσα μηχανής. Όταν, για παράδειγμα, θέλουμε να αυξήσουμε το περιεχόμενο κάποιου καταμετρητή Ν κατά 2, δίνουμε εντολές σε γλώσσα μηχανής, που μοιάζουν κάπως έτσι:
000001000000001100101011 001000000000000000010000 000010000000001100101011
Αυτές οι μεγάλες σειρές από 0 και 1 ήταν κουραστικές για τον άνθρωπο. (Φανταστείτε προγράμματα με χιλιάδες γραμμές). Θα βελτιωνόταν κάπως η κατάσταση, αν γράφονταν οι εντολές αυτές με οκταδικούς αριθμούς:
01001453 10000020 02001453
Έτσι οι εντολές διαβάζονταν λίγο πιο εύκολα, πάλι όμως δεν ήταν απλό να δει κανείς αμέσως ποιά δουλειά έκαναν αυτές οι εντολές. Επίσης, αν ήθελαν οι προγραμματιστές να κάνουν διορθώσεις, προσθήκες και διαγραφές εντολών σε πρόγραμμα γραμμένο σε γλώσσα μηχανής, αντιμετώπιζαν τεράστιες δυσκολίες σε μια διαδικασία πολύ ευάλωτη από λάθη. Επινοήθηκε λοιπόν μια συμβολική γλώσσα για τις εντολές που καταλάβαινε ο υπολογιστής και γράφτηκε ένα συμβολομεταφραστικό πρόγραμμα (assembler), που μετέτρεπε ένα πρόγραμμα συμβολικής γλώσσας σε ένα πρόγραμμα σε γλώσσα μηχανής.
Το προηγούμενο παράδειγμα θα έμοιαζε σε μια υποθετική συμβολική γλώσσα κάπως έτσι:
LDA N ;Ν ΕΙΝΑΙ Ο ΜΕΤΡΗΤΗΣ ADD +2 ;ΑΥΞΑΝΕΤΑΙ ΚΑΤΑ 2 STA N ;ΑΠΟΘΗΚΕΥΕΤΑΙ Η ΝΕΑ ΤΙΜΗ
όπου, εκτός από τις εντολές προγράμματος στο αριστερό μέρος, υπάρχουν και μερικά σχόλια επεξηγηματικά, (που ο συμβολομεταφραστής τα αγνοεί), που βοηθάνε πολύ στην φάση συντήρησης του προγράμματος.
Παρ’ όλα αυτά όμως, επειδή τα προγράμματα δεύτερης γενιάς (αυτά σε συμβολική γλώσσα) είχαν ακριβώς τόσες εντολές όσες είχαν και τα αντίστοιχα προγράμματα σε γλώσσα μηχανής, (ίσως μερικές δεκάδες χιλιάδες εντολές), η ανάπτυξη μεγάλων προγραμμάτων ήταν δύσκολη. Έτσι φτιάχτηκαν οι γλώσσες τρίτης γενιάς, όπως είναι η FORTRAN, όπου ενώ οι προγραμματιστές έδιναν μόνο μια εντολή, (το Ν να γίνει όσο ήταν συν 2),
Ν = Ν + 2
αναλάμβανε ένα πρόγραμμα - μεταφραστής (compiler) να την αναλύσει σε περισσότερες εντολές σε συμβολική γλώσσα (και σε γλώσσα μηχανής).
Εκτός από το ότι έτσι γράφονταν λιγότερες εντολές για το ίδιο πρόγραμμα, δημιουργήθηκαν και γλώσσες ανώτερου επίπεδου που έμοιαζαν περισσότερο με φυσική γλώσσα. Το ίδιο παράδειγμα σε γλώσσα COBOL θα μπορούσε να γραφτεί έτσι:
ADD 2 TO COUNTER–N .
(πρόσθεσε 2 στον καταμετρητή Ν), που το καταλαβαίνει οποιοσδήποτε ξέρει αγγλικά, όχι μόνο ο υπολογιστής.
Στην εκπαιδευτική γλώσσα προγραμματισμού ΓΛΩΣΣΑ, που διαθέτει τις εντελώς απαραίτητες εντολές για εξάσκηση στον προγραμματισμό, η εντολή εκχώρησης τιμής γράφεται έτσι:
Ν <- Ν + 2
και σημαίνει «κάνε τις πράξεις στην έκφραση στο δεξιό από το βελάκι μέρος και βάλε την προκύπτουσα τιμή στην μεταβλητή που βρίσκεται στο αριστερό μέρος».