Τα καλύτερα προγράμματα Unix

Ο συγγραφέας του άρθρου, Douglas McIlroy, είναι Αμερικανός μαθηματικός, μηχανικός και προγραμματιστής. Είναι περισσότερο γνωστός για την ανάπτυξη του αγωγού στο λειτουργικό σύστημα Unix, τις αρχές του προγραμματισμού προσανατολισμένου σε συστατικά στοιχεία και για πολλά πρωτότυπα βοηθητικά προγράμματα: spell, diff, sort, join, speak, tr.

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

Μοιραστείτε ποια προγράμματα σας εντυπωσίασαν τόσο;

PDP-7 Unix

Για αρχή, το ίδιο το σύστημα Unix PDP-7. Η απλότητα και η δύναμή του με έκαναν να περάσω από ένα ισχυρό mainframe σε ένα μικροσκοπικό μηχάνημα. Είναι το βασικό ιεραρχικό σύστημα αρχείων, το ξεχωριστό κέλυφος και ο έλεγχος διαδικασίας σε επίπεδο χρήστη που το Multics στον κεντρικό υπολογιστή δεν μπόρεσε να επιτύχει μετά από εκατοντάδες ανθρωποέτη ανάπτυξης. Οι ελλείψεις του Unix (όπως η δομή αρχείων του συστήματος αρχείων) ήταν εξίσου διδακτικές και απελευθερωτικές με τις καινοτομίες του (όπως η ανακατεύθυνση I/O του κελύφους).

dc

Η Μαθηματική Βιβλιοθήκη Υπολογιστή Επιτραπέζιου Υπολογιστή Μεταβλητής Ακριβείας του Robert Morris χρησιμοποίησε ανάλυση αντίστροφου σφάλματος για να προσδιορίσει την ακρίβεια που απαιτείται σε κάθε βήμα για την επίτευξη ακρίβειας αποτελέσματος που καθορίζεται από τον χρήστη. Στη Διάσκεψη Μηχανικής Λογισμικού του ΝΑΤΟ το 1968, στην έκθεσή μου για τα στοιχεία λογισμικού, πρότεινα διαδικασίες αναφοράς που θα μπορούσαν να παράγουν οποιαδήποτε επιθυμητή ακρίβεια, αλλά δεν ήξερα πώς να τις εφαρμόσω στην πράξη. Το dc εξακολουθεί να είναι το μόνο πρόγραμμα που ξέρω ότι μπορεί να το κάνει αυτό.

τυπογραφικό λάθος

Το τυπογραφικό τακτοποιεί τις λέξεις στο κείμενο ανάλογα με την ομοιότητά τους με το υπόλοιπο κείμενο. Τα ορθογραφικά λάθη όπως το «hte» τείνουν να βρίσκονται στο τέλος της λίστας. Ο Robert Morris είπε με περηφάνια ότι το πρόγραμμα θα λειτουργούσε εξίσου καλά για οποιαδήποτε γλώσσα. Αν και το τυπογραφικό λάθος δεν σας βοηθά να βρείτε φωνητικά λάθη, ήταν ένα πραγματικό όφελος για όλους τους στοιχειοθέτες και έκανε πολύ καλό πριν εμφανιστεί ο πολύ λιγότερο ενδιαφέρον αλλά πιο ακριβής ορθογραφικός έλεγχος λεξικού.

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

εξ

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

δομ

Η Brenda Baker άρχισε να αναπτύσσει τον μετατροπέα Fortan-to-Ratfor παρά τη συμβουλή του αφεντικού της, εμένα. Σκέφτηκα ότι αυτό θα μπορούσε να οδηγήσει σε μια ειδική αναδιάταξη του αρχικού κειμένου. Θα είναι απαλλαγμένο από αριθμούς δηλώσεων, αλλά κατά τα άλλα δεν θα είναι πιο ευανάγνωστο από τον καλά δομημένο κώδικα Fortran. Η Μπρέντα μου απέδειξε ότι έκανα λάθος. Ανακάλυψε ότι κάθε πρόγραμμα Fortran έχει μια κανονικά δομημένη μορφή. Οι προγραμματιστές προτίμησαν την κανονική μορφή, παρά αυτό που έγραψαν οι ίδιοι αρχικά.

pascal

Τα συντακτικά διαγνωστικά στον μεταγλωττιστή που δημιουργήθηκε από την ομάδα της Σου Γκράχαμ στο Μπέρκλεϋ ήταν ό,τι πιο χρήσιμο έχω δει ποτέ—και έγινε αυτόματα. Σε ένα συντακτικό σφάλμα, ο μεταγλωττιστής σάς ζητά να εισαγάγετε ένα διακριτικό για να συνεχίσετε την ανάλυση. Καμία προσπάθεια να εξηγήσω τι φταίει. Με αυτόν τον μεταγλωττιστή, έμαθα τον Pascal σε ένα βράδυ χωρίς κανένα εγχειρίδιο στο χέρι.

εξαρτήματα

Κρυμμένο μέσα στη λειτουργική μονάδα WWB (Writer's Workbench). parts Η Lorinda Cherry καθορίζει μέρη του λόγου για λέξεις σε ένα αγγλικό κείμενο με βάση μόνο ένα μικρό λεξικό, ορθογραφικούς και γραμματικούς κανόνες. Με βάση αυτόν τον σχολιασμό, το πρόγραμμα WWB εμφανίζει στυλομετρικούς δείκτες του κειμένου, όπως η επικράτηση των επιθέτων, οι δευτερεύουσες προτάσεις και οι σύνθετες προτάσεις. Όταν η Λορίντα πήρε συνέντευξη στο Today του NBC και μίλησε για τον καινοτόμο γραμματικό έλεγχο στα κείμενα του WWB, ήταν η πρώτη αναφορά του Unix στην τηλεόραση.

π.χ.

Ο Al Aho περίμενε ότι ο ντετερμινιστικός αναλυτής τυπικής έκφρασης του θα ξεπεράσει τον κλασικό μη ντετερμινιστικό αναλυτή του Ken. Δυστυχώς, ο τελευταίος ολοκλήρωνε ήδη ένα πέρασμα από σύνθετες κανονικές εκφράσεις, ενώ egrep κατασκεύασε τον δικό του ντετερμινιστικό αυτοματισμό. Για να συνεχίσει να κερδίσει αυτόν τον αγώνα, ο Al Aho ξεπέρασε την κατάρα της εκθετικής αύξησης του πίνακα καταστάσεων του αυτόματου, εφευρίσκοντας έναν τρόπο να δημιουργήσει εν κινήσει μόνο εκείνες τις καταχωρίσεις στον πίνακα που επισκέπτονται πραγματικά κατά την αναγνώριση.

καβούρια

Το γοητευτικό μετα-πρόγραμμα του Luca Cardelli για το σύστημα παραθύρων Blit κυκλοφόρησε εικονικά καβούρια που περιπλανήθηκαν στον κενό χώρο της οθόνης, δαγκώνοντας όλο και περισσότερο τις άκρες των ενεργών παραθύρων.

Μερικές γενικές σκέψεις

Αν και δεν είναι ορατό από έξω, η θεωρία και οι αλγόριθμοι έπαιξαν καθοριστικό ρόλο στη δημιουργία των περισσότερων από αυτά τα προγράμματα: typo, dc, struct, pascal, egrep. Στην πραγματικότητα, είναι η ασυνήθιστη εφαρμογή της θεωρίας που προκαλεί έκπληξη.

Σχεδόν το ήμισυ της λίστας —pascal, struct, parts, eqn— γράφτηκε αρχικά από γυναίκες, υπερτερώντας κατά πολύ των δημογραφικών στοιχείων των γυναικών στην επιστήμη των υπολογιστών.

Ντάγκλας ΜακΙλρόι
Μάρτιος, 2020


Πηγή: www.habr.com

Προσθέστε ένα σχόλιο