Μετακινηθείτε πάνω από το Patch Tuesday – είναι η Ημέρα της Ada Lovelace! Ευφυΐα Δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μετακινηθείτε πάνω από το Patch Tuesday – είναι η Ημέρα της Ada Lovelace!

Η δεύτερη Τρίτη κάθε μήνα είναι η κανονική ημέρα της Microsoft για ενημερώσεις ασφαλείας, γνωστή σε όλους σχεδόν με το ανεπίσημο ψευδώνυμό της "Patch Tuesday".

Αλλά είναι και η δεύτερη Τρίτη του Οκτωβρίου Ημέρα της Ada Lovelace, γιορτάζει Ada, η κόμισσα της Lovelace.

Η Ada ήταν αληθινή πρωτοπόρος όχι μόνο των υπολογιστών, αλλά και της επιστήμης των υπολογιστών, και έδωσε το όνομά της στη γλώσσα προγραμματισμού Ada.

Η γλώσσα Ada, με εντυπωσιακό τρόπο, προέκυψε από ένα έργο του Υπουργείου Άμυνας των ΗΠΑ που στόχευε να «αποβιβάσει» τον κόσμο της κυβερνητικής κωδικοποίησης, όπου κάθε τμήμα φαινόταν να προτιμά μια διαφορετική γλώσσα ή μια διαφορετική γλωσσική διάλεκτο, καθιστώντας το πιο δύσκολο, πιο ακριβό και πιο ακριβό και λιγότερο αξιόπιστη για να τους κάνει να συνεργαστούν.

Η Ada είχε πολυάριθμα συντακτικά χαρακτηριστικά με στόχο τη βελτίωση της αναγνωσιμότητας και την αποφυγή κοινών λαθών. Σε αντίθεση με τα σχόλια στο C, που ξεκινούν με /* και τρέξε μέχρι το επόμενο */, ίσως πολλές γραμμές αργότερα, η Ada απλά αγνοεί οτιδήποτε μετά -- σε οποιαδήποτε γραμμή, επομένως τα σχόλια δεν μπορούν να εκτελούνται κατά λάθος περισσότερο από ό,τι σκοπεύατε. Αντί να περικλείονται όλα τα μπλοκ κώδικα πολλαπλών γραμμών μέσα σε αγκύλες ({...}, γνωστός και ως τιράντες), η Ada έχει έναν μοναδικό τερματιστή για κάθε είδος μπλοκ πολλαπλών γραμμών, π.χ end record, end loop και end if. Η Ada Lovelace, υποψιαζόμαστε, θα είχε επικροτήσει τη σαφήνεια της ομώνυμης γλώσσας της, αλλά η Ada-the-language δεν έπιασε ποτέ πραγματικά, και η σύνταξη του C της C έχει κερδίσει σε μεγάλο βαθμό την ημέρα, με την Python ίσως τη μόνη μη τσιμπημένη γλώσσα στο ευρεία χρήση. Οι αγκύλες είναι μια ζωτική πτυχή της C, C++, C#, Go, Java, JavaScript, Perl, Rust και πολλών άλλων δημοφιλών γλωσσών.

Η εποχή της Ada Lovelace

Μπορεί να εκπλαγείτε αν ανακαλύψετε, δεδομένου του πόσο έντονα συνδέεται το όνομα της Ada με τις απαρχές της επιστήμης των υπολογιστών, ότι έζησε στο πρώτο μισό του δέκατου ένατου αιώνα, πολύ πριν από οτιδήποτε αναγνωρίζουμε σήμερα ως υπολογιστή ή ακόμα και ως αριθμομηχανή. .

(Η Ada πέθανε από καρκίνο της μήτρας το 1852 σε ηλικία μόλις 36 ετών.)

Αλλά παρόλο που οι υπολογιστές με τη σύγχρονη έννοια τους δεν υπήρχαν στη δεκαετία του 1800, αυτοί πολύ σχεδόν έκανε.

Να πώς σχεδόν συνέβη.

Ο Charles Babbage, στις αρχές του 1800, επινόησε περίφημα μια μηχανική συσκευή υπολογισμού που ονομάζεται Μηχανή διαφορών που θα μπορούσε, τουλάχιστον θεωρητικά, να λύσει αυτόματα πολυωνυμικές εξισώσεις στον έκτο βαθμό, π.χ. βρίσκοντας τιμές για το X που θα ικανοποιούσαν:

aX6 + bX5 +cX4 +dX3 +eX2 + fX + g = 0

Η κυβέρνηση του Ηνωμένου Βασιλείου ενδιαφέρθηκε, επειδή μια συσκευή αυτού του είδους θα μπορούσε να χρησιμοποιηθεί για τη δημιουργία ακριβών μαθηματικών πινάκων, όπως τετραγωνικές ρίζες, λογάριθμους και τριγωνομετρικούς λόγους.

Και κάθε μηχάνημα καλό στους τριγωνομετρικούς υπολογισμούς θα ήταν επίσης χρήσιμο για υπολογισμούς όπως πίνακες πυροβόλων που θα μπορούσαν να φέρουν επανάσταση στην ακρίβεια του πυροβολικού σε ξηρά και θάλασσα.

Αλλά ο Babbage είχε δύο προβλήματα.

Πρώτον, δεν μπόρεσε ποτέ να φτάσει τη μηχανική ακρίβεια που χρειαζόταν για να λειτουργήσει σωστά ο κινητήρας Διαφοράς, επειδή περιλάμβανε αρκετά συμπλεκόμενα γρανάζια που η αντίδραση (μικροσκοπικές αλλά σωρευτικές ανακρίβειες που οδηγούσαν σε «προχειρότητα» στον μηχανισμό) θα τον κλείδωναν.

Δεύτερον, φαίνεται ότι έχασε το ενδιαφέρον του για το Difference Engine όταν συνειδητοποίησε ότι ήταν αδιέξοδο – με σύγχρονους όρους, μπορείτε να το σκεφτείτε ως μια αριθμομηχανή τσέπης, αλλά όχι ως υπολογιστή tablet ή φορητού υπολογιστή.

Έτσι, ο Babbage προχώρησε με το σχεδιασμό μιας ακόμα πιο περίπλοκης συσκευής που ονόμασε Αναλυτική μηχανή, το οποίο θα μπορούσε να επιλύσει πολύ πιο γενικά επιστημονικά προβλήματα από ένα είδος πολυωνυμικής εξίσωσης.

Ίσως δεν αποτελεί έκπληξη, αν και δυστυχώς εκ των υστέρων. η κυβέρνηση δεν ενδιαφερόταν τρομερά να χρηματοδοτήσει το πιο προηγμένο έργο του Babbage.

Δεδομένου ότι δεν είχε καταφέρει να κατασκευάσει τον μηχανισμό που χρειαζόταν για έναν πολύ απλούστερο λύτη εξισώσεων, τι πιθανότητες είχε ένας γιγαντιαίος, ατμοκίνητος υπολογιστής γενικής χρήσης να δώσει ποτέ χρήσιμα αποτελέσματα;

Το ευρωπαϊκό συνεδριακό κύκλωμα

Σε μια περίεργη ανατροπή της διεθνούς, πολύγλωσσης συνεργασίας, ο Μπάμπατζ ταξίδεψε στην Ιταλία για να δώσει μια διάλεξη για την προώθηση της Αναλυτικής Μηχανής του.

Στο κοινό ήταν ένας στρατιωτικός μηχανικός ονόματι Captain Luigi Menabrea, ο οποίος εμπνεύστηκε έτσι να συνεργαστεί με τον Babbage για να δημιουργήσει ένα έγγραφο του 1842 που περιέγραφε τη μηχανή.

Αν και ήταν Ιταλός, ο Menabrea δημοσίευσε την εργασία του στα γαλλικά…

…και ήταν η Ada Lovelace που μετέφρασε το χαρτί του Menabrea στα Αγγλικά.

Μετά από παρότρυνση του Babbage, η Ada πρόσθεσε επίσης μια σειρά από Σημειώσεις του Μεταφραστή, το οποίο αποδείχθηκε όχι μόνο υπερδιπλάσιο από την αρχική αναφορά του Menabrea, αλλά και πιο αναλυτικό, εξηγώντας αρκετά σημαντικά χαρακτηριστικά αυτού που θα ονομάζαμε τώρα υπολογιστής γενικής χρήσης.

Walter Isaacson, στο εξαιρετικά ευανάγνωστο βιβλίο του Οι καινοτόμοι, που δημοσιεύτηκε το 2014, περιγράφει πώς η Ada «εξερεύνησε τέσσερις έννοιες που θα είχαν ιστορική απήχηση έναν αιώνα αργότερα, όταν τελικά γεννήθηκε ο υπολογιστής»:

  • Η Ada αναγνώρισε ότι η Αναλυτική Μηχανή, σε αντίθεση με τη Μηχανή Διαφοράς, ήταν πραγματικά μια συσκευή γενικής χρήσης, γιατί όχι μόνο θα μπορούσε να προγραμματιστεί να κάνει ένα πράγμα, αλλά επίσης, και σχετικά εύκολα, να επαναπρογραμματιστεί για να εκτελέσει κάποια εντελώς διαφορετική εργασία.

Με τα λόγια του Ada (αυτή ήταν μια εποχή κατά την οποία η επιστημονική λογοτεχνία είχε ακόμα μεγαλύτερη επαφή με τη λογοτεχνία από ό,τι ίσως σήμερα):

Το Difference Engine δεν μπορεί στην πραγματικότητα (όπως έχει ήδη εν μέρει εξηγηθεί) να κάνει τίποτα άλλο από το να προσθέτει. και οποιεσδήποτε άλλες διεργασίες, εκτός από αυτές της απλής αφαίρεσης, πολλαπλασιασμού και διαίρεσης, μπορούν να εκτελεστούν από αυτήν μόνο στον βαθμό στον οποίο είναι δυνατό, με συνετή μαθηματική διάταξη και τεχνάσματα, να τις ανάγει σε μια σειρά προσθηκών. Η μέθοδος των διαφορών είναι, στην πραγματικότητα, μια μέθοδος προσθηκών. και καθώς περιλαμβάνει στα μέσα του μεγαλύτερο αριθμό αποτελεσμάτων που μπορούν να επιτευχθούν με απλή πρόσθεση, από οποιαδήποτε άλλη μαθηματική αρχή, επιλέχθηκε πολύ σωστά ως βάση για την κατασκευή μιας μηχανής πρόσθεσης, έτσι ώστε να δοθεί στις δυνάμεις μιας τέτοιας μηχανής το ευρύτερο δυνατό φάσμα. Η Αναλυτική Μηχανή, αντίθετα, μπορεί είτε να προσθέτει, να αφαιρεί, να πολλαπλασιάζει ή να διαιρεί με ίση ευκολία. και εκτελεί καθεμία από αυτές τις τέσσερις λειτουργίες με άμεσο τρόπο, χωρίς τη βοήθεια οποιασδήποτε από τις άλλες τρεις. Αυτό το ένα γεγονός συνεπάγεται τα πάντα. Και δεν είναι σχεδόν απαραίτητο να επισημάνουμε, για παράδειγμα, ότι ενώ η Μηχανή Διαφοράς μπορεί απλώς να σχηματίσει πίνακα και δεν είναι ικανή να αναπτυχθεί, η Αναλυτική Μηχανή μπορεί είτε να καταγράψει είτε να αναπτυχθεί.

  • Ο Ada συνειδητοποίησε ότι η Αναλυτική Μηχανή δεν περιοριζόταν στην κωδικοποίηση και τον υπολογισμό με αριθμούς. Αν και ψηφιακές, και βασισμένες στην ικανότητα εκτέλεσης αριθμητικών υπολογισμών, αυτές οι ψηφιακές πράξεις, εξήγησε, θα μπορούσαν θεωρητικά να αντιπροσωπεύουν λογικές προτάσεις (όπως θεωρούμε δεδομένες σήμερα στο if ... then ... else ... end if δηλώσεις), μουσικές νότες, και ούτω καθεξής.

Όπως το έθεσε η Ada:

[Η Αναλυτική Μηχανή] θα μπορούσε να ενεργήσει και σε άλλα πράγματα εκτός από τον αριθμό, αν βρέθηκαν αντικείμενα των οποίων οι αμοιβαίες θεμελιώδεις σχέσεις θα μπορούσαν να εκφραστούν από αυτές της αφηρημένης επιστήμης των πράξεων, και τα οποία θα έπρεπε επίσης να είναι επιρρεπή σε προσαρμογές στη δράση του λειτουργικού συμβολισμού και του μηχανισμού η μηχανή. Υποθέτοντας, για παράδειγμα, ότι οι θεμελιώδεις σχέσεις των ήχων στην επιστήμη της αρμονίας και της μουσικής σύνθεσης υπόκεινται σε τέτοιες εκφράσεις και προσαρμογές, η μηχανή θα μπορούσε να συνθέτει περίτεχνα και επιστημονικά κομμάτια μουσικής οποιουδήποτε βαθμού πολυπλοκότητας ή έκτασης. Η Αναλυτική Μηχανή είναι μια ενσάρκωση της επιστήμης των πράξεων, που κατασκευάζεται με την περίεργη αναφορά στον αφηρημένο αριθμό ως αντικείμενο αυτών των πράξεων.

  • Η Ada σκέφτηκε την ιδέα της επαναχρησιμοποίησης τμημάτων αυτού που σήμερα ονομάζουμε προγράμματα. Με αυτή την έννοια, μπορεί να ειπωθεί ότι εφηύρε την έννοια της υπορουτίνας, συμπεριλαμβανομένων των αναδρομικών υπορουτίνων (συναρτήσεις που απλοποιούν τη λύση σπάζοντας έναν υπολογισμό σε μια σειρά παρόμοιων υπο-υπολογισμών και στη συνέχεια καλώντας τους εαυτούς τους).
  • Η Ada αρχικά απάντησε χρήσιμα στην ερώτηση "Μπορούν οι μηχανές να σκεφτούν;" Αυτό είναι ένα θέμα που μας ανησυχεί από τότε.

Η σύνδεση του Φρανκενστάιν

Ο πατέρας της Ada (αν και δεν τον γνώρισε ποτέ) ήταν ο διαβόητος ποιητής Λόρδος Μπάιρον, ο οποίος πέρασε αξέχαστες διακοπές στην Ελβετία γράφοντας ιστορίες τρόμου με τους λογοτεχνικούς του φίλους Πέρσι και Μαίρη Σέλεϊ.

Οι προσπάθειες του Byron και του Percy Shelley σε αυτόν τον φιλικό διαγωνισμό συγγραφής έχουν ξεχαστεί εντελώς σήμερα, αλλά το σημαντικό μυθιστόρημα της Mary Shelley Frankenstein; ή, Ο σύγχρονος Προμηθέας (εκδόθηκε το 1818) είναι δημοφιλής και σεβαστός μέχρι σήμερα.

Η ιστορία του Φρανκενστάιν διερεύνησε περίφημα τα ηθικά διλήμματα γύρω από αυτό που σήμερα θα μπορούσαμε να αναφέρουμε ως τεχνητή νοημοσύνη. (Ο Frankenstein, μην ξεχνάτε, ήταν ο επιστήμονας που πραγματοποίησε το πείραμα, όχι η τεχνητή νοημοσύνη που προέκυψε από το έργο.)

Η Ada, ωστόσο, δεν φαινόταν να συμμερίζεται τις δυστοπικές ανησυχίες του φίλου του πατέρα της σχετικά με τις Αναλυτικές Μηχανές, ή για τους υπολογιστές γενικότερα.

Προσέφερε τη γνώμη της, στην τελευταία ενότητα της Σημειώσεις του Μεταφραστή, ότι:

Η Αναλυτική Μηχανή δεν έχει καμία αξίωση να δημιουργήσει οτιδήποτε. Μπορεί να κάνει ό,τι ξέρουμε να το παραγγείλουμε να εκτελέσει. Μπορεί να ακολουθήσει ανάλυση. αλλά δεν έχει καμία δύναμη να προβλέπει οποιεσδήποτε αναλυτικές σχέσεις ή αλήθειες. Η επαρχία του είναι να μας βοηθήσει να διαθέσουμε αυτό που ήδη γνωρίζουμε. Αυτό υπολογίζεται ότι θα το επιτύχει πρωτίστως και κυρίως φυσικά, μέσω των εκτελεστικών του ικανοτήτων. αλλά είναι πιθανό να ασκήσει έμμεση και αμοιβαία επίδραση στην ίδια την επιστήμη με άλλο τρόπο. Διότι, διανέμοντας και συνδυάζοντας έτσι τις αλήθειες και τη φόρμουλα της ανάλυσης, ώστε να γίνονται πιο εύκολα και γρήγορα δεκτικά στους μηχανικούς συνδυασμούς του κινητήρα, οι σχέσεις και η φύση πολλών θεμάτων σε αυτήν την επιστήμη αναγκαστικά ρίχνονται σε νέα φώτα, και διερευνηθεί βαθύτερα. Αυτή είναι μια αναμφισβήτητα έμμεση, και μια κάπως εικαστική, συνέπεια μιας τέτοιας εφεύρεσης.

Λίγο περισσότερο από 100 χρόνια αργότερα, όταν ο Alan Turing επανεξέτασε το θέμα της τεχνητής νοημοσύνης στη δική του εργασία Μηχανήματα και Πληροφορική, και παρουσίασε το δικό του Το γνωστό πλέον τεστ Turing, μετονόμασε αυτό Η αντίρρηση της Λαίδης Λάβλεϊς.

Τι να κάνω;

Την επόμενη φορά που θα βρείτε τον εαυτό σας να γράφει κώδικα όπως…

   -- Ένα funky πράγμα: η συνάρτηση Ackermann. -- Υπολογίσιμο, αλλά όχι πρωτόγονο αναδρομικό! -- (Δεν μπορείτε να το γράψετε με απλούς παλιούς για -- βρόχους, ωστόσο μπορείτε να είστε σίγουροι ότι θα τελειώσει, -- ακόμα κι αν χρειαστεί πολύς χρόνος.) local ack = συνάρτηση(m,n) εάν m == 0 τότε επιστρέψτε n+1 τέλος εάν n == 0 τότε επιστρέψτε ack(m-1,1) τέλος επιστροφή ack(m-1,ack(m,n-1)) τέλος

…θυμηθείτε ότι οι επαναλαμβανόμενες υπορουτίνες αυτού του είδους ξεκίνησαν στην επιστημονική φαντασία κάποιου που ήξερε πώς θα έπρεπε να μοιάζει ένας υπολογιστής και πώς θα έμοιαζε, αλλά έζησε (και δυστυχώς πέθανε πολύ νέος) 100 χρόνια πριν από οποιαδήποτε τέτοια συσκευή υπήρχε για να χακάρει πραγματικά.

Η πειρατεία σε πραγματικούς υπολογιστές είναι ένα πράγμα, αλλά η σκόπιμη πειρατεία σε φανταστικούς υπολογιστές είναι, στις μέρες μας, κάτι που μπορούμε μόνο να φανταστούμε.

Χαρούμενη Ημέρα Ada Lovelace!


Σφραγίδα ώρας:

Περισσότερα από Γυμνή ασφάλεια