Die bemerkenswertesten Unix-Programme

Der Autor des Artikels Douglas McIlroy ist ein amerikanischer Mathematiker, Ingenieur und Programmierer. Er ist am bekanntesten fĂŒr die Entwicklung der Pipeline im Betriebssystem Unix, die Prinzipien der komponentenorientierten Programmierung und mehrere originale Tools: spell, diff, sort, join, speak, tr.

Manchmal entdeckt man wirklich bemerkenswerte Programme. Nach sorgfĂ€ltiger Überlegung habe ich eine Liste von echten Perlen von Unix im Laufe der Jahre zusammengestellt. Im Großen und Ganzen sind dies recht seltene und nicht unbedingt notwendige Programme. Aber was sie hervorhebt, ist ihre OriginalitĂ€t. Ich kann mir nicht einmal vorstellen, dass mir die Idee fĂŒr eines dieser Programme selbst gekommen wĂ€re.

Was sind die Programme, die Sie ebenfalls so beeindruckt haben?

PDP-7 Unix

Als Ausgangspunkt dient das System PDP-7 Unix selbst. Seine Einfachheit und Kraft haben mich dazu gebracht, von einem leistungsstarken Mainframe auf eine winzige Maschine umzusteigen. Hier steht die Essenz des hierarchischen Dateisystems, eine separate Shell und die Prozessverwaltung auf Benutzerebene, was Multics auf Mainframes nach hunderten von Mannjahren Entwicklung nicht umsetzen konnte. Die Nachteile von Unix (zum Beispiel die Struktur der DatensÀtze im Dateisystem) waren ebenso lehrreich und befreiend wie ihre Neuerungen (zum Beispiel die Umleitung von Ein- und Ausgaben in der Shell).

dc

Die mathematische Bibliothek fĂŒr den Desktop-Rechner mit variabler Genauigkeit von Robert Morris nutzte die RĂŒckwĂ€rtsanalyse von Fehlern, um die erforderliche Genauigkeit in jedem Schritt zur Erreichung der vom Benutzer gewĂŒnschten Genauigkeit des Ergebnisses zu bestimmen. Auf der NATO-Konferenz zur Softwaretechnik im Jahr 1968 schlug ich in meinem Vortrag ĂŒber Softwarekomponenten Referenzverfahren vor, die ein Ergebnis mit beliebiger gewĂŒnschter Genauigkeit liefern können, aber ich wusste nicht, wie ich sie in der Praxis umsetzen sollte. dc bleibt bis heute das einzige mir bekannte Programm, das das kann.

typo

Typo sortiert Wörter in einem Text nach ihrer Ähnlichkeit mit dem restlichen Text. Tippfehler wie „hte“ neigen dazu, am Ende der Liste zu erscheinen. Robert Morris sagte stolz, dass das Programm fĂŒr jede Sprache gleichermaßen gut funktioniert. Obwohl typo nicht hilft, phonetische Fehler zu finden, war es eine echte Entdeckung fĂŒr alle, die Text eingeben, und brachte viel Nutzen, bevor eine weit weniger interessante, aber genauere RechtschreibprĂŒfung im Wörterbuch auftauchte.

Der Typo ist innen ebenso ĂŒberraschend gestaltet wie außen. Der Algorithmus zur Messung der Ähnlichkeit basiert auf der HĂ€ufigkeit des Auftretens von Trigrammen, die in einem 26×26×26 Array gezĂ€hlt werden. Der winzige Speicher bot kaum Platz fĂŒr einbyte-ZĂ€hler, weshalb ein Komprimierungsansatz fĂŒr große Zahlen in kleine ZĂ€hler implementiert wurde. Um ÜberlĂ€ufe zu vermeiden, wurden die ZĂ€hler auf wahrscheinlicher Basis aktualisiert, um die SchĂ€tzung des Logarithmus des ZĂ€hlerwerts zu unterstĂŒtzen.

eqn

Mit dem Erscheinen von Fotohandbuch wurde es möglich, aber schrecklich mĂŒhsam, klassische mathematische Notationen auszugeben. Lorinda Cherry entschloss sich, eine Sprache zur Beschreibung auf höherer Ebene zu entwickeln, und bald gesellte sich Brian Kernighan zu ihr. Ihre brillante Idee bestand darin, die mĂŒndliche Tradition schriftlich zu fassen, weshalb eqn erstaunlich einfach zu erlernen war. Als erster seiner Art war der Preprozessor fĂŒr die Beschreibung mathematischer AusdrĂŒcke, eqn, seitdem kaum verbessert worden.

struct

Brenda Baker begann, ihren Konverter von Fortran nach Ratfor entgegen dem Rat ihres Chefs – mir – zu entwickeln. Ich dachte, das könnte zu einer speziellen Umstellung des Quelltexts fĂŒhren. Er wĂŒrde frei von Operatornummern sein, wĂ€re aber ansonsten nicht lesbarer als gut strukturierter Fortran-Code. Brenda bewies, dass ich mich irrte. Sie stellte fest, dass jedes Fortran-Programm eine kanonisch strukturierte Form hat. Programmierer bevorzugten die kanonische Form anstelle dessen, was sie ursprĂŒnglich geschrieben hatten.

pascal

Die syntaxĂŒberprĂŒfung im Compiler, den das Team von Sue Graham in Berkeley entwickelt hat, war die nĂŒtzlichste, die ich je gesehen habe – und sie wurde automatisch durchgefĂŒhrt. Bei einem Syntaxfehler schlĂ€gt der Compiler vor, ein Lexem einzufĂŒgen, um die syntaktische Analyse fortzusetzen. Es gab keine Versuche, zu erklĂ€ren, was falsch war. Mit diesem Compiler habe ich Pascal an einem Abend gelernt, ohne ein Handbuch zur Hand zu haben.

parts

Ein Modul, das in das WWB-Paket (Writer’s Workbench) integriert ist parts Lorinda Cherry bestimmt die Wortarten von Wörtern im englischen Text basierend auf einem kleinen Wörterbuch sowie Rechtschreib- und Grammatikregeln. Anhand dieser Annotation liefert das WWB-Programm stilometrische Kennzahlen des Textes, wie die HĂ€ufigkeit von Adjektiven, NebensĂ€tzen und komplexen SĂ€tzen. Als Lorinda in der NBC-Show Today ein Interview gab und ĂŒber die innovative GrammatikprĂŒfung in den Texten von WWB sprach, war dies die erste ErwĂ€hnung von Unix im Fernsehen.

egrep

Al Aho erwartete, dass sein deterministischer regulĂ€rer Ausdrucksparser den klassischen nichtdeterministischen Parser von Ken ĂŒbertreffen wĂŒrde. Leider war letzterer bereits dabei, komplexe regulĂ€re AusdrĂŒcke zu verarbeiten, wĂ€hrend egrep er seine deterministische Automatentechnik aufbaute. Um in diesem Rennen dennoch zu gewinnen, umging Al Aho den Fluch des exponentiellen Wachstums der ZustandsĂŒbergangstabelle des Automaten, indem er einen Weg erfand, nur die TischdatensĂ€tze zu generieren, die wĂ€hrend der Erkennung tatsĂ€chlich besucht werden.

krabben

Das charmante Metaprogramm von Luca Cardelli fĂŒr das Fenstersystem Blit erzeugte virtuelle Krabben, die durch den leeren Raum des Bildschirms schlichen und dabei immer mehr von den RĂ€ndern aktiver Fenster abknabberten.

Einige allgemeine Gedanken

Obwohl von außen nicht sichtbar, spielten Theorie und Algorithmen eine entscheidende Rolle bei der Schaffung der meisten dieser Programme: typo, dc, struct, pascal, egrep. TatsĂ€chlich erstaunt am meisten die ungewöhnliche Anwendung der Theorie.

Die ursprĂŒnglichen Autoren von fast der HĂ€lfte der Liste – pascal, struct, parts, eqn – waren Frauen, was signifikant ĂŒber dem demografischen Anteil von Frauen im Bereich der Informatik liegt.

Douglas McIlroy
MĂ€rz 2020


Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster