Retro Computing
Η επανεμφάνιση της Algol: Παρελθόν και μέλλον
Η Algol επιστρέφει με τον GCC να υποστηρίζει την Algol 68, συνδέοντας το παρελθόν με το παρόν της πληροφορικής.
Εντάξει, μας πιάσατε. Δεν πρόκειται να είναι η χρονιά της Algol. Όταν σκεφτόμαστε “παλιές” γλώσσες προγραμματισμού, συνήθως έρχονται στο μυαλό μας οι FORTRAN και COBOL. Δεν πρέπει όμως να ξεχνάμε και τη LISP. Ωστόσο, λίγοι θα σκεφτούν την Algol. Αν και δεν είναι γνωστή στο ευρύ κοινό, η επιρροή της ήταν τεράστια, και τώρα ο GCC βρίσκεται στο κατώφλι της υποστήριξής της, όπως έχει κάνει με άλλες γλώσσες πέρα από τη C και C++.
Η ιστορική σημασία της Algol
Γιατί να φέρουμε μια παλιά γλώσσα στο προσκήνιο; Δεν γνωρίζουμε, αλλά παραμένει ενδιαφέρον. Αμφιβάλλουμε αν υπάρχει πλήθος κώδικα Algol που περιμένει να μεταφερθεί, αλλά ποτέ δεν ξέρεις. Η Algol πρωτοεμφανίστηκε το 1958 και αποτέλεσε τη γλώσσα-κλειδί στις ακαδημαϊκές συζητήσεις για δεκαετίες. Δημιουργήθηκε για να “διορθώσει” τα προβλήματα της Fortran, και η επιρροή της συνεχίζεται μέχρι σήμερα.
Καινοτομίες και επιρροή
Η Algol ήταν η πρώτη που εισήγαγε την έννοια των “blocks of code”, τα οποία οριοθετούνταν μεταξύ των λέξεων begin και end. Η δεύτερη εκδοχή της Algol υπήρξε το σημείο εκκίνησης για τη μορφή Backus-Naur (BNF), κάτι που εξακολουθεί να ενδιαφέρει τους σχεδιαστές γλωσσών σήμερα. Αυτές οι καινοτομίες έθεσαν τα θεμέλια για πολλές σύγχρονες γλώσσες προγραμματισμού.
Η αναβίωση της Algol 68
Ενδιαφέρον παρουσιάζει το γεγονός ότι ο νέος compiler υποστηρίζει την Algol 68, την τελική αλλά όχι ιδιαίτερα δημοφιλή έκδοση. Ήταν σαν τη “New Coke” των πρώτων γλωσσών προγραμματισμού, με πολλούς να υποστηρίζουν ότι η Algol 60 ήταν η τελευταία “πραγματική Algol”. Η Algol ήταν γνωστή για τη χρήση ασυνήθιστων χαρακτήρων όπως ≡ και ⊂, αλλά, όπως και η APL, έπρεπε να προσαρμοστεί σε πιο συμβατικά σύνολα χαρακτήρων.
Προκλήσεις και ιδιαιτερότητες της γλώσσας
Ένα άλλο χαρακτηριστικό της Algol είναι ότι οι περισσότερες προδιαγραφές της δεν καθόριζαν τις λειτουργίες εισόδου/εξόδου, πράγμα που σήμαινε ότι δεν αρκούσε να γνωρίζεις την Algol. Έπρεπε να ξέρεις ποια συγκεκριμένη έκδοση χρησιμοποιούσες για να κατανοήσεις πώς λειτουργούσε το I/O.
Μάθηση και εκπαίδευση στην Algol
Αν ενδιαφέρεστε να μάθετε την Algol, υπάρχει διαθέσιμο ένα εκπαιδευτικό υλικό στο GitHub (μπορείτε να χρησιμοποιήσετε τον compiler online, αν θέλετε). Ο Niklaus Wirth, παρόλο που δεν δημιούργησε την Algol, είχε σημαντική συμβολή σε ορισμένα από τα μεταγενέστερα στάδια ανάπτυξής της.
Η Algol, αν και παλιά, εξακολουθεί να αποτελεί σημαντικό κομμάτι της ιστορίας της πληροφορικής, προσφέροντας γνώσεις και μαθήματα που βρίσκουν εφαρμογή ακόμη και στις σύγχρονες γλώσσες προγραμματισμού.