“Συνομιλία” με τους Ηλεκτρονικούς Υπολογιστές
Από τον Ανταποκριτή του «Ξύπνα!» στην Ιαπωνία
«ΝΕΟΥ ΤΥΠΟΥ ΣΥΣΤΗΜΑ ΣΥΝΟΜΙΛΙΑΣ ΜΕ ΤΟΝ ΗΛΕΚΤΡΟΝΙΚΟ ΥΠΟΛΟΓΙΣΤΗ,» έγραφε η διαφήμιση στο περιοδικό. Γέλασα, καθώς σκέφτηκα ότι θα μπορούσε κανείς να κάνει μια συνομιλία με μια μηχανή. Μήπως αυτό σήμαινε ότι ο ηλεκτρονικός υπολογιστής θα μπορούσε στ’ αλήθεια να διεξάγει μια συνομιλία; Και τι κέρδος θα μπορούσε να προκύψει, όπως και αν έχει το πράγμα, από την επικοινωνία με μια μηχανή; Οι απαντήσεις που έλαβα από ένα φίλο ειδικό στον τομέα των ηλεκτρονικών υπολογιστών ήταν πολύ ενδιαφέρουσες.
Πρώτα απ’ όλα, έμαθα ότι η επικοινωνία που αναφερόταν στη διαφήμιση δεν ήταν του φωνητικού τύπου. Συνήθως σημαίνει να δίνεις οδηγίες στον ηλεκτρονικό υπολογιστή και να παίρνεις μια άμεση απάντηση μέσω μιας μονάδας βίντεο ή μέσω ενός συστήματος στοιχειοθετήσεως (που είναι απευθείας συνδεμένο με τον ηλεκτρονικό υπολογιστή). Ακριβώς όπως η ανθρώπινη γλώσσα είναι για το σκοπό της επικοινωνίας, η «γλώσσα» του ηλεκτρονικού υπολογιστή επιτρέπει την επικοινωνία με τον υπολογιστή με σκοπό να λυθεί το πρόβλημα. Η επικοινωνία αυτή με τον ηλεκτρονικό υπολογιστή του λέει τι να κάνει και παρουσιάζει τις απαντήσεις που δείχνουν τι έχει γίνει.
Το μέσον για να δώσεις οδηγίες στον ηλεκτρονικό υπολογιστή ονομάζεται «γλώσσα» του υπολογιστή ή του προγραμματισμού. Για να «συνομιλήσεις» με έναν υπολογιστή, πρέπει να μάθεις μια από τις πολλές γλώσσες προγραμματισμού.
Γλώσσες προγραμματισμού
Σύμφωνα με το φίλο μου, το σύνολο των οδηγιών που δίνονται σ’ έναν ηλεκτρονικό υπολογιστή για να επιτελέσει κάποια ειδική δραστηριότητα, ονομάζεται πρόγραμμα. Μια σύγχρονη γλώσσα προγραμματισμού είναι ένα σύνολο από χαρακτήρες και λέξεις που, θεωρητικά, είναι παρόμοιες ή συγγενικές με την ανθρώπινη γλώσσα, ωστόσο δίνουν οδηγίες ή μεταφέρουν δεδομένα στον ηλεκτρονικό υπολογιστή.
Παρά το γεγονός ότι η ιστορία των γλωσσών προγραμματισμού είναι μικρή, περίπου 30 ετών, υπάρχουν ήδη παραπάνω από 1.000 γλώσσες προγραμματισμού και αναπτύσσονται περισσότερες κάθε μέρα. Αυτό οφείλεται στο γεγονός ότι είναι πολλές οι χρήσεις στις οποίες απασχολούνται οι ηλεκτρονικοί υπολογιστές και τα επιτεύγματα της τεχνολογίας των υπολογιστών.
Τα ονόματα που δίνονται στις γλώσσες αυτές είτε περιγράφουν τα χαρακτηριστικά τους, όπως FORTRAN (FORmula TRANslation = Τύπος Μεταφράσεως), BASIC (Beginners All-purpose Symbolic Instruction Code = Συμβολικός Κώδικας Οδηγιών για Αρχαρίους), COBOL (COmmon Business Oriented Language = Κοινή Επιχειρηματική Γλώσσα), είτε απλώς τις προσδιορίζουν, όπως PL/1 (Programming Language 1= Γλώσσα Προγραμματισμού 1) και APL (Α Programming Language = Μια Γλώσσα Προγραμματισμού). Μερικές, όπως η FORTRAN, σχεδιάζονται για τη χρήση μαθηματικών όρων και είναι καλύτερα προσαρμοσμένες στους επιστημονικούς υπολογισμούς, ενώ η COBOL χρησιμοποιεί Αγγλικά των επιχειρήσεων και είναι προσανατολισμένη στη γλώσσα των επιχειρήσεων. Η PL/1, που είναι η πρώτη γλώσσα που χρησιμοποίησαν στα κεντρικά γραφεία της εταιρίας Σκοπιά στη Νέα Υόρκη και στο Ιαπωνικό της τμήμα για το εκτυπωτικό σύστημα, είναι γενικά μια γλώσσα που προσαρμόζεται σε πολλούς τομείς.
Ακριβώς όπως υπάρχουν κανόνες που διέπουν τη γραμματική και τη στίξη των ανθρώπινων γλωσσών, κάθε γλώσσα προγραμματισμού έχει τους δικούς της κανόνες, ή συντακτικό. Πρέπει να τους ακολουθείς πιστά, εάν θέλεις το μηχάνημα να καταλαβαίνει το πρόγραμμα.
Όπως γνωρίζουν όλοι όσοι έμαθαν μια ξένη γλώσσα, η παράλειψη απλά και μόνο ενός στοιχείου του λόγου ή η κακή προφορά μιας λέξεως μπορεί να είναι καταστροφική αυτό αληθεύει παρόμοια σε ό,τι αφορά τις γλώσσες του προγραμματισμού. Για να το καταλάβουμε αυτό, μου είπαν να ξαναθυμηθώ την εκτόξευση του διαστημόπλοιου Απόλλων 8 από την ΝΑΣΑ πριν από μερικά χρόνια. Για την εκτόξευση του πυραύλου είχε χρησιμοποιηθεί ένα πρόγραμμα FORTRAN, το οποίο περιείχε ένα λάθος στην προγραμματισμό, έλειπε μια παύλα. Σαν αποτέλεσμα απέτυχε να μπει, σε τροχιά αυτός ο πύραυλος που κόστισε πολλά εκατομμύρια δολλάρια! Πόσο δαπανηρή ζημιά και να οφείλεται σ’ ένα λάθος μόνο!
Ένα άλλο σημείο που μου τονίστηκε, αφορούσε αυτά που μπορεί να κάνει και δεν μπορεί να κάνει ένας ηλεκτρονικός υπολογιστής. Ο υπολογιστής δεν έχει επινοητικότητα—δεν μπορεί να παράγει κάτι καινούργιο, εκτός αν ήδη περιέχεται στα στοιχεία που τον έχεις τροφοδοτήσει. Έτσι, αν ένα πρόγραμμα έλεγε στον υπολογιστή ΠΑΡΕ ΤΟ ΦΑΚΕΛΟ ΕΝΑ, ΠΡΟΣΘΕΣΕ τον στον ΦΑΚΕΛΟ ΔΥΟ, μετά ΕΚΤΥΠΩΣΕ τον, αλλά ο φάκελος ένα δεν είχε μπει ποτέ μέσα στο κομπιούτερ, η εργασία δεν θα προχωρούσε και θα έπαιρνες πιθανώς μία απάντηση του τύπου «ΦΑΚΕΛΟΣ ΔΕΝ ΒΡΙΣΚΕΤΑΙ ΣΤΗΝ ΒΙΒ», η οποία θα σε ειδοποιούσε ότι ο φάκελος δεν βρίσκεται στη Βιβλιοθήκη της μνήμης.
Οι απαντήσεις αυτές τροφοδοτούνται επίσης προκαταβολικά. Ώστε, τόσο οι ερωτήσεις, όσο και τα μέσα για τις απαντήσεις, όλες οι πληροφορίες που δίνονται και παίρνονται στην επικοινωνία με τους υπολογιστές—όλα είναι επινοημένα από τους ανθρώπους. Αυτό μου θυμίζει τα χειρόγραφα του θεατρικού έργου που έχει τις εισόδους, τις εξόδους, τις συνθηματικές λέξεις και τα λόγια για τον κάθε ηθοποιό. Οτιδήποτε κάνει ο ηλεκτρονικός υπολογιστής πρέπει να έχει προγραμματιστεί εκ των προτέρων.
Σ’ αυτό το σημείο έμαθα μια άλλη ιδιορρυθμία της γλώσσας του υπολογιστή. Ανεξάρτητα από το πόσο καλός γίνεσαι στη δουλειά σου, πάντοτε έχεις την ανάγκη ενός μεταφραστή για να γίνεις κατανοητός στον ηλεκτρονικό υπολογιστή. Αυτό δεν οφείλεται σε σφάλμα του ανθρώπου, αλλά στους περιορισμούς του μηχανήματος. Το μόνο που μπορεί να καταλάβει είναι πληροφορίες του τύπου 1 και 0, ώστε χρειάζεσαι ένα πρόγραμμα μεταφραστή για να βάλεις τις οδηγίες του προγραμματιστή σ’ αυτόν τον τύπο. Ώστε, υπάρχουν στ’ αληθινά δύο αντίτυπα του προγράμματος που περιλαμβάνονται—το ένα είναι εκείνο που γράφει ο προγραμματιστής και που ονομάζεται πρόγραμμα πηγής και το δεύτερο είναι το μεταφρασμένο αντίτυπο το οποίο μπορεί να εκτελέσει η μηχανή. Ο ηλεκτρονικός υπολογιστής επιτελεί κατόπιν τις λειτουργίες του χρησιμοποιώντας τις πληροφορίες που μπορεί να καταλάβει. Μπορεί ν’ απαντήσει στον χειριστή του μέσω μιας οθόνης με βίντεο ή ενός στοιχειοθετικού συστήματος μεταφράζοντας ξανά πίσω την απάντησή του σε χαρακτήρες, έτσι ώστε να μπορεί να τις διαβάσει ο άνθρωπος.
Αυτό που πρωταρχικά ενδιαφέρει τον προγραμματιστή είναι η γλώσσα του προγράμματος της πηγής. Αυτή είναι εκείνη με την οποία ο άνθρωπος εισάγει τα προγράμματά του και πρέπει να τη γνωρίζει καλά για να έχει ένα καλό πρόγραμμα. Οι γλώσσες του μηχανήματος είναι εγκατεστημένες μέσα στον ηλεκτρονικό υπολογιστή και προετοιμάζονται από την εταιρία που τον παράγει.
Ποιος μπορεί να Μάθει
Ένας σημαντικός παράγοντας για το αν θα μάθετε μια γλώσσα προγραμματισμού και αν θα γίνετε καλός στη χρήση της είναι το ενδιαφέρον σας. Εκείνοι που γίνονται καλύτεροι είναι εκείνοι που έχουν ενδιαφέρον για τους ηλεκτρονικούς υπολογιστές και τους ανάλογους τομείς.
Μία άλλη απαίτηση που συχνά αναφέρεται περιλαμβάνει την ηλικία. Όσο νεότερος είστε, τόσο το καλύτερο, αυτή είναι η συνηθισμένη συμβουλή. Αυτό συμβαίνει γιατί όσο πιο μεγάλοι είμαστε τόσο περισσότερο έχουμε σταθεροποιήσει τα πρότυπα των σκέψεων μας και τόσο δυσκολότερο προσαρμόζονται αυτά.
Στο παρελθόν νόμιζαν ότι η γνώση των μαθηματικών ήταν απαραίτητη για εκείνους που επιθυμούσαν να μπουν στον τομέα του προγραμματισμού, αλλά σήμερα αυτό δεν συμβαίνει, εκτός αν έχεις να κάνεις μ’ ένα πρόγραμμα που περιλαμβάνει μαθηματικούς τύπους. Πράγματι, πριν από μερικά χρόνια, σ’ ένα διαγωνισμό που έγινε, αποδείχτηκε ότι ένας από τους πιο αποτελεσματικούς προγραμματιστές της ΙΒΜ στην Ιαπωνία ήταν ένας απόφοιτος ελεύθερων σπουδών. Ωστόσο είναι απαραίτητο να έχεις ένα τύπο μυαλού που αμέσως να βάζεις τα πράγματα σε μια λογική σειρά μ’ έναν υψηλό αριθμό ακρίβειας.
Πώς να Μάθεις
Σήμερα υπάρχουν πολλά βοηθήματα για να μάθεις τις διάφορες γλώσσες προγραμματισμού. Ώστε, μπορεί να σου πάρει πολύ χρόνο για να διδαχτείς. Καταρχήν οι ίδιες οι γλώσσες μοιάζουν ολοένα και περισσότερο με τον ομιλούμενο λόγο και γι’ αυτό είναι ευκολότερο να τις χρησιμοποιήσεις και να τις μάθεις. Επίσης πολλές εταιρίες υπολογιστών έχουν εκδόσεις τις οποίες μπορείς να τις παραγγείλεις, που σου διδάσκουν τη βασική τεχνική και τις γλώσσες του προγραμματισμού. Μερικά γυμνάσια έχουν μαθήματα προγραμματισμού και οι βιβλιοθήκες έχουν μια σειρά από βιβλία πάνω σ’ αυτό το θέμα.
Ωστόσο, υπάρχουν μερικά μειονεκτήματα όταν μαθαίνεις τελείως μόνος σου. Ακριβώς όπως και με την ομιλούμενη γλώσσα, υπάρχει πάντοτε η πιθανότητα ν’ αποκτήσεις κακές συνήθειες, τις οποίες αργότερα είναι δύσκολο να διορθώσεις. Επίσης, το να έχεις ένα καλό παράδειγμα είναι μια πολύ μεγάλη βοήθεια στην εκπαίδευση. Ένα άλλο σημείο που πρέπει να εξεταστεί είναι ότι οι εταιρίες των υπολογιστών συνεχώς τους εκσυγχρονίζουν και προσθέτουν νέες τεχνικές. Ώστε το να μάθεις απλώς μια γλώσσα προγραμματισμού δεν εγγυάται ότι μπορείς να τη χρησιμοποιήσεις όπως ακριβώς είναι.
Αξίζει τον Κόπο;
Αξίζει τον κόπο να δαπανήσεις χρόνο για να μάθεις ένα συγκεκριμένο ζήτημα καλά και μετά να προγραμματίζεις μια μηχανή για να το επιτελεί; Τα γεγονότα απαντούν, Ναι. Αλήθεια, ο σχεδιασμός και η συγγραφή ένας προγράμματος απαιτούν χρόνο. Αλλά από τη στιγμή που το πρόγραμμα αρχίζει να λειτουργεί, ο υπολογιστής μπορεί να λειτουργήσει πολύ γρηγορότερα από ό,τι οι άνθρωποι, μερικοί υπολογιστές μπορούν να κάνουν παραπάνω από 200 εκατομμύρια βασικές λειτουργίες το δευτερόλεπτο! Επίσης, μια εργασία που γίνεται στον υπολογιστή έχει μεγαλύτερη ακρίβεια απ’ ό,τι αν γινόταν από πολλούς διαφορετικούς ανθρώπους. Όλος ο χρόνος που εξοικονομείται από την επιτέλεση επαναληπτικών λειτουργιών απελευθερώνει τους ανθρώπους ώστε να κάνουν πιο αξιόλογα έργα. Γι’ αυτούς τούς λόγους πολλές εταιρίες έχουν προσαρμόσει την εργασία τους, ώστε να την επιτελούν ηλεκτρονικοί υπολογιστές και έτσι έχουν ανοίξει τον τομέα σε επαγγέλματα προγραμματισμού των υπολογιστών.
Σας ενδιαφέρει η «συνομιλία» με τους υπολογιστές; Η εκμάθηση της γλώσσας τους θα μπορούσε να σας παρουσιάσει μια ενδιαφέρουσα πρόκληση.
[Εικόνα στη σελίδα 25]
100 βαθμοί Κελσίου πόσους βαθμούς Φαρενάιτ μας κάνουν;
1101 0100
Αυτό σημαίνει 212 βαθμούς Φαρενάιτ