Els millors programes Unix

L'autor de l'article, Douglas McIlroy, és un matemàtic, enginyer i programador nord-americà. És conegut sobretot per desenvolupar el pipeline en el sistema operatiu Unix, els principis de la programació orientada a components i diverses utilitats originals: ortografia, diff, ordenar, unir, parlar, tr.

De vegades et trobes amb programes realment fantàstics. Després d'explorar la meva memòria, he compilat una llista d'algunes de les veritables joies Unix al llarg dels anys. Bàsicament, aquests són programes força rars i no tan necessaris. Però el que els diferencia és la seva originalitat. Ni tan sols puc imaginar que jo mateix se m'ha acudit la idea de cap d'ells.

Comparteix, quins programes t'han impressionat tant?

PDP-7 Unix

Per començar, el propi sistema Unix PDP-7. La seva senzillesa i potència em van fer canviar d'un sistema central potent a una màquina petita. És el sistema de fitxers jeràrquic per excel·lència, l'intèrpret d'ordres separat i el control de processos a nivell d'usuari que Multics als mainframes no va poder implementar després de centenars d'anys de desenvolupament. Les mancances d'Unix (com l'estructura de registres del sistema de fitxers) eren tan instructives i alliberadores com les seves innovacions (com la redirecció d'E/S de l'intèrpret d'ordres).

dc

La biblioteca matemàtica de la calculadora d'escriptori de precisió variable de Robert Morris va utilitzar l'anàlisi d'errors inversos per determinar la precisió necessària en cada pas per aconseguir un resultat de precisió especificat per l'usuari. A la Conferència d'enginyeria de programari de l'OTAN de 1968, en el meu article sobre components de programari, vaig proposar procediments de referència que podien produir resultats amb la precisió desitjada, però no sabia com implementar-los a la pràctica. dc encara és l'únic programa que conec que pot fer això.

error de tipografia

L'error tipografia ordena les paraules del text en funció de la seva similitud amb la resta del text. Les faltes d'ortografia com "hte" solen acabar al final de la llista. Robert Morris va dir amb orgull que el programa funcionaria igual de bé en qualsevol idioma. Tot i que els errors ortogràfics no us ajudan a trobar errors fonètics, va ser una benvinguda per a tots els escriptors i va ser molt útil abans que arribés la correcció ortogràfica del diccionari, molt menys interessant però més precisa.

L'error ortogràfic és tan inesperat per dins com per fora. L'algorisme de mesura de similitud es basa en la freqüència d'ocurrència de trigrames, que es compten en una matriu de 26x26x26. Amb prou feines hi havia prou espai a la petita memòria per als comptadors d'un sol byte, de manera que es va implementar un esquema per comprimir grans números en petits comptadors. Per evitar desbordaments, els comptadors es van actualitzar de manera probabilística, mantenint una estimació del logaritme del valor del comptador.

eq

Amb l'arribada de la fotocomposició, es va fer possible, però terriblement tediós, produir la notació matemàtica clàssica. Lorinda Cherry va decidir desenvolupar un llenguatge de descripció de nivell superior, i Brian Kernighan aviat es va unir a ella. El seu moviment brillant va ser expressar la tradició oral per escrit, per això eqn va resultar ser sorprenentment fàcil d'aprendre. El primer preprocessador de llenguatge d'expressió matemàtica d'aquest tipus, eqn ha vist poques millores des de llavors.

estruct

Brenda Baker va començar a desenvolupar el seu convertidor Fortan-to-Ratfor contra el consell del seu cap, jo. Vaig pensar que això podria donar lloc a una reordenació especial del text original. Estarà lliure de números d'operador, però d'altra manera no serà més llegible que el codi Fortran ben estructurat. La Brenda em va demostrar que estava equivocada. Va descobrir que cada programa Fortran té una forma estructurada canònicament. Els programadors preferien la forma canònica en lloc del que ells mateixos van escriure originalment.

pascal

Els diagnòstics de sintaxi del compilador construït pel grup de Sue Graham a Berkeley van ser els més útils que he vist mai, i eren automàtics. Si hi ha un error de sintaxi, el compilador us demana que inseriu un testimoni per continuar analitzant. Cap intent d'explicar què passa. Amb aquest compilador, vaig aprendre Pascal en una nit, sense cap manual a mà.

parts

Mòdul amagat dins del paquet WWB (Writer's Workbench). parts Lorinda Cherry determina les parts del discurs de les paraules del text anglès basant-se només en un petit diccionari, regles ortogràfiques i gramaticals. A partir d'aquesta anotació, el programa WWB mostra indicadors estilomètrics del text, com ara la prevalença d'adjectius, oracions subordinades i oracions complexes. Quan Lorinda va ser entrevistada al programa Today de la NBC i va parlar de la innovadora comprovació gramatical de WWB, va ser la primera menció d'Unix a la televisió.

egrep

Al Aho esperava que el seu analitzador d'expressions regulars determinista superés el clàssic analitzador no determinista de Ken. Malauradament, aquest últim ja estava completant una passada per expressions regulars complexes fins a egrep va construir la seva pròpia automatització determinista. Per guanyar encara aquesta carrera, Al Aho va eludir la maledicció del creixement exponencial de la taula d'estat de l'autòmat inventant una manera de construir sobre la marxa només aquelles entrades de la taula que es van visitar realment durant el reconeixement.

crancs

L'encantador metaprograma de Luca Cardelli per al sistema de finestres Blit va alliberar crancs virtuals que vagaven per l'espai buit de la pantalla, mossegant cada cop més les vores de les finestres actives.

Algunes reflexions generals

Tot i que no és visible des de l'exterior, la teoria i els algorismes van tenir un paper decisiu en la creació de la majoria d'aquests programes: typo, dc, struct, pascal, egrep. De fet, és l'aplicació inusual de la teoria la que més sorprèn.

Les autores originals de gairebé la meitat de la llista (pascal, struct, parts, eqn) eren dones, la qual cosa supera molt la proporció demogràfica de les dones en informàtica.

Douglas McIlroy
Març de 2020


Font: www.habr.com

Afegeix comentari