H Ιστορία της BASIC

Η Γέννηση της BASIC

Η γλώσσα προγραμματισμού BASIC αναπτύχθηκε το 1964 στο Κολέγιο Dartmouth, από τον John G. Kemeney (1926-1993) και τον Thomas E. Kurtz. Το όνομα της είναι ακρωνύμιο των λέξεων Beginner's All Purpose Symbolic Instruction Code (Συμβολικός Κώδικας Εντολών Κάθε Χρήσης για Αρχάριους) και αντανακλά την φιλοσοφία των δημιουργών της η οποία δεν ήταν άλλη από το να φέρει σε επαφή τους αρχάριους χρήστες με τον προγραμματισμό ηλεκτρονικών υπολογιστών. Ο Kemeney, ο οποίος είχε εργαστεί στο Μανχάταν πρότζεκτ (1945) και στη συνέχεια (1948-1949) ως βοηθός του Άλμπερτ Αϊνστάιν, συνάντησε τον Kurtz στο Dartmouth το 1956. Εκείνη την εποχή ο Kemeney ήταν πρόεδρος του Τμήματος Μαθηματικών και ο Kurtz μόλις είχε ενταχθεί στο δυναμικό του κολεγίου προερχόμενος από το Πανεπιστήμιο του Princeton. Οι δύο άρχισαν αμέσως να εργάζονται μαζί σε μια νέα απλουστευμένη γλώσσα προγραμματισμού. Οι προσπάθειές τους κατέληξαν με την Darsimco ή Dartmouth Simplified Code που δεν προσέλκυσε μεγάλο ενδιαφέρον. Η επόμενη τους προσπάθεια η Dartmouth Oversimplified Programming Experiment ή DOPE είχε ακόμα μικρότερη απήχηση. Παρ 'όλα αυτά συνέχισαν να εργάζονται στην ιδέα του Kemeney ότι μια νέα γλώσσα ήταν απαραίτητη για τη διδασκαλία και τη μάθηση της επιστήμης των υπολογιστών σε αρχάριους χρήστες.

Αξίζει να σημειωθεί ότι εκείνη την εποχή οι υπολογιστές ήταν εντελώς διαφορετικοί από ό, τι είναι τώρα. Ήταν μεγάλοι σε μέγεθος, ακριβοί και ο προγραμματισμός τους ήταν μια δύσκολη και επίπονη διαδικασία. Επιπλέον μόνο μερικά από αυτά τα μηχανήματα ήταν σε θέση να δεχτούν προγράμματα απευθείας από το χρήστη. Ακόμη όμως και σε αυτή την περίπτωση οι χρήστες έπρεπε να παρέχουν τα προγράμματα τους κωδικοποιημένα σε μικρές λωρίδες χαρτιού ή διάτρητες κάρτες. Στην τελευταία περίπτωση η όλη διαδικασία είχε ως εξής: Ένας προγραμματιστής με το έτοιμο πρόγραμμά του πήγαινε στο κέντρο διάτρησης, όπου βάσει του προγράμματος, γινόταν διάτρηση σε μια σειρά από κάρτες. Στη συνέχεια έπρεπε να πάει στο δωμάτιο του υπολογιστή και να τοποθετήσει τις διάτρητες κάρτες σε μια ουρά από κάρτες. Μόλις έφτανε η σειρά των καρτών να εκτελεστούν ο υπολογιστής διάβαζε το πρόγραμμα, το μετέτρεπε σε γλώσσα μηχανής και το εκτελούσε. Σε περίπτωση όπου υπήρχε ένα bug στο πρόγραμμα η όλη διαδικασία έπρεπε να γίνει από την αρχή. Κάτω από αυτές τις συνθήκες η όλη διαδικασία του προγραμματισμού ενός υπολογιστή χαρακτηρίζονταν εξαιρετικά αναποτελεσματική.

Ο Kurtz, που εντομεταξύ είχε γίνει διευθυντής του Υπολογιστικού Κέντρου Kiewit στο Dartmouth, συνειδητοποίησε όλες αυτές τις δυσκολίες και πίστευε έντονα ότι κάθε μαθητής θα έπρεπε να έχει πρόσβαση στους διαθέσημους υπολογιστές, επινόησε την ιδέα του "συστήματος καταμερισμού χρόνου" (Time Sharing System). Αυτό το σύστημα χρειάζονταν επίσης μία νέα, απλή και αποτελεσματική γλώσσα προγραμματισμού. Έτσι, ενώ Kemeney έγραφε τη γλώσσα προγραμματισμού ο Kurtz ανέπτυσε το Συστήματος κατανομής χρόνου. Και οι δύο αναγνώρισαν ότι η νέα γλώσσα θα πρέπει να πληρεί τις ακόλουθες προδιαγραφές:

  • Γενικής χρήσης
  • Εύκολη στην χρήση
  • Επεκτάσιμη
  • Διαδραστική
  • Να βοηθάει στην αποσφαλμάτωση
  • Αποτελεσματική
  • Ανεξάρτητη υλικού
  • Ανεξάρτητη λειτουργικού συστήματος

Για να επιτύχουν όλα αυτά βασίστηκαν στην FORTRAN και στην ALGOL, υιοθετώντας από αυτές τη γενική δομή και τις αγγλικές λέξεις. Οι Γραμμές του προγράμματος ήταν αριθμημένες τόσο διότι η ροή του προγράμματος ήταν σαφώς προσδιορισμένη, και επειδή απλοποιούσε την επεξεργασία (Μια σειρά μπορούσε να διαγραφεί απλά γράφοντας τον αριθμό της γραμμής ή γράφοντας μια νέα γραμμή με τον ίδιο αριθμό). Η τελική έκδοση αυτό που ονομάζεται «Dartmouth Basic» είχε 14 εντολές. Φυσικά υπήρχαν και περιορισμοί, όπως το ότι ένα προγράμματα έπρεπε να περιέχει μόνο μία εντολή ανά σειρά και κάθε σειρά θα έπρεπε να ξεκινάει με μια εντολή, όμως η «Dartmouth Basic» συντάχθηκε μάλλον γρήγορα για εκείνη την εποχή. Οι προσπάθειες του Kemeney και Kurtz ολοκληρώθηκαν στις 1 Μαϊου του 1964, όταν, στις 4:00 π.μ., δύο προγράμματα γραμμένα σε BASIC λειτούργησαν ταυτόχρονα στο GE-225 mainframe της General Electric στο Dartmouth College.

Η ανάπτυξη και η εξάπλωση της BASIC

Ο Kemeney και ο Kurtz δεν προστάτεψαν με κάποια πατέντα ή κάποιο δίπλωμα ευρεσιτεχνίας το δημιούργημα τους και θεώρησαν καλύτερο να διανείμουν την γλώσσα ως ελεύθερο λογισμικό. Αυτό είχε σαν αποτέλεσμα την ανάπτυξη και τη διαφοροποίηση της BASIC. Μεταξύ των πρώτων χρηστών της BASIC ήταν η General Electric, η οποία είχε πωλήσει το mainframe GE-225 στο Dartmouth. Η εξάπλωση των διάφορων εκδόσεων της BASIC ξεκίνησε γύρω στο 1970, όταν η GE κυκλοφόρησε μηχανές με την πέμπτη έκδοση της BASIC, αντί να περιμένει για μια νέα έκδοση. Αυτό συνέβη ένα χρόνο αργότερα, το 1971, όταν Kemeney και Kurtz κυκλοφόρησαν την έκτη έκδοση της γλώσσας. Διαφορετικές εκδόσεις BASIC προήλθαν από τον Gordon Eubanks (ο διευθύνων σύμβουλος και πρόεδρος της εταιρείας Symantec), οι οποίος το 1970, ανέπτυξε την BASIC-E. Η BASIC-Ε χρησιμοποιούσε μία τεχνική παρόμοια με αυτή που χρησιμοποιείται σήμερα από την Java. Σύμφωνα με αυτή οι εντολές μετασχηματίζονται σε ένα είδος ενδιάμεσου κώδικα (bytecode) και στη συνέχεια μετατρέπονται σε γλώσσα μηχανής. Ο Eubanks επίσης δεν προστάτεψε με πατέντες και ευρεσιτεχνίες την BASIC-Ε, αλλά το έκανε με την επόμενη έκδοση του την CBASIC. Η CBASIC πωλούνταν από την εταιρεία του, Compiler Systems (η οποία το 1981 εξαγοράστηκε από την Digital Research).

Η εμφάνιση των πρώτων microcomputers στα μέσα της δεκαετίας του 70 έγινε η αφορμή για την εκρηκτική ανάπτυξη της BASIC. Η αρχή έγινε το 1975 με την TinyBASIC των Bob Albrecht και Dennis Allison η οποία μπορούσε να τρέξει σε 2K RAM. Την ίδια χρονιά, δημιουργήθηκε από τον Bill Gates και τον Paul Allen μια νέα έκδοση της BASIC που προορίζονταν για τον υπολογιστή Altair 8800 της MITS. Επρόκειτο για το πρώτο προϊόν της νεοσύστατης τότε Micro-Soft. Αυτή ήταν η πρώτη εμφάνιση μιας ερμηνευόμενης (interpreted) BASIC. Ο Allen και ο Γκέιτς κινήθηκαν προς αυτήν την κατεύθυνση για να ξεπεράσουν την περιορισμένη ποσότητα μνήμης, και στην πραγματικότητα, ήταν σε θέση να χωρέσουν τα πάντα σε 4K μνήμης. Μία compiled γλώσσα δεν θα είχε αφήσει αρκετή μνήμη τόσο για την εκτέλεση του προγράμματος όσο για την αποθήκευση των δεδομένων. Η ερμηνευόμενη BASIC είχε άλλο ένα πλεονέκτημα, ήταν περισσότερο διαλογική κάνοντας την αποσφαλμάτωση ευκολότερη. Αρχικά ο Kemeney και ο Kurtz άσκησαν κριτική προς την ερμηνευόμενη γλώσσα, παρά το γεγονός αυτό, μερικά χρόνια αργότερα αναγνώρισαν την συμβολή που είχε η interpreted BASIC στην περαιτέρω εξάπλωση της γλώσσας.

Κατά την ίδια χρονική περίοδο πολλοί κατασκευαστές υπολογιστών εισήγαγαν ένα αντίγραφο της BASIC σε ένα τσιπ μνήμης ROM στους υπολογιστές τους. Ο αγώνας είχε αρχίσει. Μέχρι το τέλος της δεκαετίας του 1970 οι οικιακοί υπολογιστές (home micros) κυκλοφορούσαν ο καθένας με την δική του έκδοση BASIC: Radio Shack Level 1 BASIC (TRS 80), Apple Integer BASIC (Apple II - 1977), Timex Sinclair 1000 BASIC (Sinclair ZX80 - 1980), Sinclair ZX81 BASIC (Sinclair ZX81 - 1981), PET BASIC (Commodore PET - 1977), Atari BASIC (Atari 400/800, both 1978), Commodore BASIC (VIC 20 το 1981 & C64 το 1982), TI-BASIC (Texas TI-99), Locomotive BASIC (Amstrad CPC, 1984) και ούτω καθεξής.

Η εξέλιξη της BASIC

Από τις αρχές της δεκαετίας του 1980 η ιστορία της BASIC και της πληροφορικής ακολούθησαν παράλληλη πορεία. H IBM κυκλοφορεί για το PC μια interpreted έκδοση της BASIC σε μνήμη ROM η οποία θα μπορούσε να ενισχυθεί με την τοποθέτηση μιας επιπλέον επέκτασης γνωστής ως BASICA. Ουσιαστικά η BASICA, η οποία ήταν σε κάθε σετ δισκετών του PC-DOS , και η αντίστοιχη Gee-Witz (ή GW) BASIC στο MS-DOS κυριάρχησαν στην αγορά των PC's. Το 1984 η Microsoft κυκλοφόρησε ένα compiler για την BASIC το οποίο επέτρεψε ξανά την μεταγλώττιση προγραμμάτων BASIC. Αυτό ήταν ένα νέο σημείο καμπής στην ιστορία της BASIC. Από εκείνη τη στιγμή νέες ισχυρές εκδόσεις της BASIC εμφανίζονταν στην αγορά κάθε λίγους μήνες. Η Microsoft QuickBasic, που ξεκίνησε το 1985 στην έκδοση 1.0, έφτασε έκδοση 4.5 το 1988. Εν τω μεταξύ, η BASIC αλλάξει πολύ, αποκτώντας δομημένη σύνταξη, sub-functions, user defined data, προγράμματα πολλαπλών αρχείων και, το 1990 με το Microsoft BASIC Professional Development System 7.1, απέκτησε πλήρη πρόσβαση σε μνήμη μεγαλύτερη των 64Κ. Και πάλι τα λειτουργικά συστήματα οδήγησαν την εξέλιξη της BASIC, με την εμφάνιση των Windows. Αυτό είχε ως αποτέλεσμα την ανάπτυξη της Visual Basic η οποία σχεδιάστηκε για εφαρμογές γραφικής διεπαφής (GUI). Η Visual Basic παρουσιάστηκε επίσης ως αντικειμενοστραφής γλώσσα προγραμματισμού, αν και πολλοί προγραμματιστές δεν συμφωνούν με αυτό.

Η BASIC σήμερα

Αν και σήμερα η BASIC χαρακτηρίζετε κάπως ξεπερασμένη παρόλα αυτά συνεχίζει να αποτελεί ένα πρώτης τάξεως εργαλείο για για την εκμάθηση προγραμματισμού στους νεοεισερχόμενους στον χώρο. Απο το 1990 και μετά έχουν εμφανιστεί διάφορες άλλες διαλέκτοι της BASIC συμπεριλαμβανομένης της ανοικτού λογισμικού QB64, Bywater BASIC, Gambas και FreeBASIC και την εμπορική PureBasic, PowerBASIC, RealBasic, και την True BASIC (ο άμεσος διάδοχος της Dartmouth BASIC από μια εταιρεία που ελέγχεται από τον Kurtz). Υπάρχουν επίσης αρκετές απλές web-based BASIC interpreters συμπεριλαμβανομένης της Quite BASIC και Small Basic της Microsoft. Διάφορες εκδώσεις της BASIC έχουν εμφανιστεί επίσης για χρήση σε έξυπνα τηλέφωνα και ταμπλέτες τόσο στην Πλατφόρμα IOS όσο και την πλατφόρμα του Android.

Πηγές: q7basic.org, Wikipedia, Dartmouth BASIC at Wikipedia