I più grandi prugrammi Unix

L'autore di l'articulu, Douglas McIlroy, hè un matematicu, ingegnere è programatore americanu. Hè più cunnisciutu per u sviluppu di u pipeline in u sistema operatore Unix, i principii di prugrammazione orientata à i cumpunenti, è parechji utilità originali: spell, diff, sort, join, speak, tr.

Calchì volta vi vene à traversu prugrammi veramenti maravigliosu. Dopu à rummaging in a mo memoria, aghju compilatu una lista di veri gemme Unix annantu à l'anni. In fondu, questi sò prugrammi abbastanza rari è micca cusì necessarii. Ma ciò chì li distingue hè a so originalità. Ùn possu mancu imaginà ch'e aghju avutu l'idea di qualcunu di elli.

Sparte chì prugrammi site ancu cusì impressiunatu?

PDP-7 Unix

Per principianti, u sistema Unix PDP-7 stessu. A so simplicità è u putere m'hà fattu passà da un mainframe putente à una piccula macchina. Hè u sistema di fugliali gerarchicu per quintessenza, cunchiglia separata, è cuntrollu di prucessu à livellu di l'utilizatori chì Multics nantu à u mainframe ùn hè statu capace di ottene dopu centinaie d'anni di sviluppu. I difetti di Unix (cum'è a struttura di registrazione di u sistema di fugliale) eranu cum'è istruttivi è liberatori cum'è e so innuvazioni (cum'è a redirezzione I / O di shell).

dc

A libreria matematica di a calculatrice di desktop di precisione variabile di Robert Morris hà utilizatu l'analisi di l'errore inversu per determinà a precisione necessaria à ogni passu per ottene una precisione di u risultatu specificatu da l'utilizatore. In u 1968 NATO Software Engineering Conference, in u mo rapportu nantu à i cumpunenti di u software, aghju prupostu prucedure di riferimentu chì puderanu pruduce ogni precisione desiderata, ma ùn sapia micca cumu mette in pratica. dc hè sempre u solu prugramma chì cunnoscu chì pò fà questu.

typo

Typo arrange e parolle in u testu secondu a so similarità cù u restu di u testu. I sbagliati cum'è "hte" tendenu à esse à a fine di a lista. Robert Morris hà dettu fieru chì u prugramma hà da travaglià ugualmente bè per ogni lingua. Ancu l'errore di battitura ùn vi aiuta micca à truvà l'errore foneticu, era un veru benefiziu per tutti i tipografi, è hà fattu assai bè prima chì u verificatore ortograficu di u dizziunariu, assai menu interessante, ma più precisu, hè ghjuntu.

Typo hè cum'è inespettatu à l'internu cum'è à l'esternu. L'algoritmu di misurazione di similarità hè basatu annantu à a freccia di l'occurrence di trigrammi, chì sò cuntati in un array 26 × 26 × 26. A piccula memoria avia appena abbastanza spaziu per i cuntatori di un byte, cusì un schema hè statu implementatu per cumpressà un grande numeru in picculi contatori. Per evità u overflow, i cuntatori sò stati aghjurnati nantu à una basa probabilistica, mantenendu una stima di u logaritmu di u valore di u cuntrariu.

eqn

Cù l'avventu di phototypesetting, hè diventatu pussibule, ma terribilmente tediosa, per stampà a notazione matematica classica. Lorinda Cherry hà decisu di sviluppà una lingua di descrizzione di livellu più altu, è prestu Brian Kernigan hà unitu à ella. A so mossa brillanti era di mette a tradizione orale in scrittura, cusì eqn era notevolmente faciule d'amparà. U primu preprocessore di lingua di espressione matematica di u so tipu, eqn ùn hè micca statu migliuratu assai da tandu.

struttu

Brenda Baker hà cuminciatu à sviluppà u so convertitore Fortan-à-Ratfor contru à i cunsiglii di u so capu, mè. Pensu chì questu puderia guidà à un reordine speciale di u testu originale. Serà liberu di numeri di dichjarazione, ma altrimenti micca più leggibile di u codice Fortran ben strutturatu. Brenda m'hà dimustratu sbagliatu. Hà scupertu chì ogni prugramma Fortran hà una forma strutturata canonicamente. I programatori anu preferitu a forma canonica, piuttostu chè ciò chì elli stessi scrivite originalmente.

pasquale

U diagnosticu di sintassi in u compilatore creatu da u gruppu di Sue Graham in Berkeley era u più utile chì aghju mai vistu - è hè stata fatta automaticamente. In un errore di sintassi, u compilatore vi invita à inserisce un token per cuntinuà l'analisi. Nisun tentativu di spiegà ciò chì hè sbagliatu. Cù stu compilatore, aghju amparatu à Pascal in una sera senza manuali in manu.

parte

Oculatu in u modulu WWB (Writer's Workbench). parts Lorinda Cherry determina e parte di u discorsu per e parolle in un testu inglese basatu solu nantu à un picculu dizziunariu, regule di ortografia è grammatica. Basatu nantu à sta annotazione, u prugramma WWB mostra indicatori stylometrici di u testu, cum'è a prevalenza di l'aggettivu, e clause subordinate è e sentenzi cumplessi. Quandu Lorinda hè stata intervistata in NBC's Today è hà parlatu di a verificazione di grammatica innovativa in testi WWB, era a prima menzione di Unix in televisione.

egrep

Al Aho s'aspittava chì u so risolutore d'espressione regulare deterministicu superava u risolutore classicu non deterministicu di Ken. Sfurtunatamente, l'ultime era digià cumpiendu un passaghju per espressioni regulari cumplessi, mentri egrep hà custruitu a so propria automatizazione deterministica. Per sempre vince sta razza, Al Aho hà ghjuntu à a malidizzione di a crescita esponenziale di a tavula statale di l'automatu inventendu una manera di custruisce nantu à a mosca solu quelli entrate in a tavula chì sò veramente visitate durante u ricunniscenza.

granchi

L'affascinante meta-programma di Luca Cardelli per u sistema di finestra Blit hà liberatu granchi virtuali chì vagavanu in u spaziu viotu di u screnu, mordendu i bordi di i finestri attivu sempre più.

Certi pinsamenti generale

Ancu s'ellu ùn hè micca visibile da l'esternu, a teoria è l'algoritmi anu ghjucatu un rolu decisivu in a creazione di a maiò parte di sti prugrammi: typo, dc, struct, pascal, egrep. In fatti, hè l'applicazione inusual di a teoria chì hè più sorprendente.

Quasi a mità di a lista - pascal, struct, parts, eqn - sò stati scritti in origine da e donne, assai più demugrafiche di e donne in l'informatica.

Douglas McIlroy
Marzu, 2020


Source: www.habr.com

Add a comment