La Plej Grandaj Uniksaj Programoj

La verkinto de la artikolo, Douglas McIlroy, estas amerika matematikisto, inĝeniero, kaj programisto. Li estas plej konata pro evoluigado de la dukto en la Unikso-similaj operaciumoj, la principoj de komponent-orientita programado, kaj pluraj originaj servaĵoj: literumi, diff, ordigi, kunigi, paroli, tr.

Kelkfoje vi trovas vere mirindajn programojn. Traserĉinte mian memoron, mi kompilis liston de veraj Uniksaj gemoj tra la jaroj. Esence, ĉi tiuj estas sufiĉe maloftaj kaj ne tiom necesaj programoj. Sed kio elstarigas ilin estas ilia originaleco. Mi eĉ ne povas imagi, ke mi mem elpensis la ideon de iu el ili.

Kunhavigu kiajn programojn vi ankaŭ estas tiel impresitaj?

PDP-7 Unikso

Por komenci, la PDP-7 Unikso-sistemo mem. Ĝia simpleco kaj potenco igis min moviĝi de potenca ĉefkomputilo al eta maŝino. Ĝi estas la esenca hierarkia dosiersistemo, aparta ŝelo kaj uzantnivela procezkontrolo, kiujn Multics sur la ĉefkomputilo ne povis atingi post centoj da homjaroj da evoluo. La mankoj de Unikso (kiel ekzemple la rekorda strukturo de la dosiersistemo) estis same instruaj kaj liberigaj kiel ĝiaj inventoj (kiel ekzemple ŝela I/O-redirekto).

dc

Variable Precision Desktop Calculator Math Library de Robert Morris uzis inversan eraran analizon por determini la precizecon necesan ĉe ĉiu paŝo por atingi uzant-specifitan rezultoprecizecon. En la 1968-datita NATO Software Engineering Conference, en mia raporto pri softvarkomponentoj, mi proponis referencprocedurojn kiuj povus produkti ajnan deziratan precizecon, sed mi ne sciis kiel meti ilin en praktikon. dc ankoraŭ estas la nura programo pri kiu mi konas, kiu povas fari tion.

tajperaro

Typo aranĝas vortojn en teksto laŭ ilia simileco al la resto de la teksto. Misliterumoj kiel 'hte' tendencas esti ĉe la fino de la listo. Robert Morris fiere diris, ke la programo funkcios same bone por iu ajn lingvo. Kvankam tajperaro ne helpas vin trovi fonetikajn erarojn, ĝi estis vera bonaĵo por ĉiuj kompostistoj, kaj ĝi faris multe da bono antaŭ ol la multe malpli interesa sed pli preciza vortara literumilo aperis.

Tajperaro estas same neatendita interne kiel ekstere. La similecmezuralgoritmo estas bazita sur la ofteco de okazo de trigramoj, kiuj estas nombritaj en 26×26×26 tabelo. La eta memoro apenaŭ havis sufiĉe da spaco por unubajtaj nombriloj, tiel ke skemo estis efektivigita por kunpremi grandajn nombrojn en malgrandajn nombrilojn. Por eviti superfluon, la nombriloj estis ĝisdatigitaj sur probabla bazo, konservante takson de la logaritmo de la nombrilo valoro.

eqn

Kun la apero de fotokomponado, fariĝis eble, sed terure tede, presi klasikan matematikan notacion. Lorinda Cherry decidis evoluigi pli altnivelan priskriban lingvon, kaj baldaŭ Brian Kernigan aliĝis al ŝi. Ilia brila movo estis meti la buŝan tradicion en skribon, do eqn estis rimarkinde facile lernebla. La unua matematika esprima lingvo-antaŭprocesoro de sia speco, eqn ne estis multe plibonigita ekde tiam.

strukt

Brenda Baker komencis evoluigi sian Fortan-al-Ratfor-konvertilon kontraŭ la konsilo de sia estro, mi. Mi pensis, ke tio povus konduki al speciala reordigo de la originala teksto. Ĝi estos libera de deklaro-nombroj, sed alie ne pli legebla ol bone strukturita Fortran-kodo. Brenda pruvis ke mi malpravas. Ŝi malkovris ke ĉiu Fortran-programo havas kanone strukturitan formon. La programistoj preferis la kanonan formon, prefere ol kion ili mem skribis origine.

pascal

La sintaksa diagnozo en la kompililo kreita de la grupo de Sue Graham ĉe Berkeley estis la plej helpema, kiun mi iam vidis—kaj ĝi estis farita aŭtomate. Je sintaksa eraro, la kompililo petas vin enigi ĵetonon por daŭrigi analizadon. Neniu provo klarigi kio estas malĝusta. Per ĉi tiu kompililo mi lernis Paskalon en unu vespero sen iu ajn manlibro ĉemane.

partoj

Kaŝita ene de la modulo WWB (Writer's Workbench). parts Lorinda Cherry determinas vortpartojn por vortoj en angla teksto surbaze de nur malgranda vortaro, literumo kaj gramatikaj reguloj. Surbaze de tiu komentario, la WWB-programo montras stilometrikajn indikilojn de la teksto, kiel ekzemple la tropezo de adjektivoj, malĉefaj propozicioj kaj kompleksaj frazoj. Kiam Lorinda estis intervjuita en Today de NBC kaj parolis pri la noviga gramatikkontrolo en WWB-tekstoj, ĝi estis la unua mencio de Unikso en televido.

egrep

Al Aho atendis, ke lia determinisma regula esprimo solvanto preterpasos la klasikan nedeterminisman solvanton de Ken. Bedaŭrinde, ĉi-lasta jam kompletigis trapason tra kompleksaj regulaj esprimoj, dum egrep konstruis sian propran determinisman aŭtomatigon. Por daŭre venki en ĉi tiu vetkuro, Al Aho ĉirkaŭiris la malbenon de la eksponenta kresko de la ŝtattabelo de la aŭtomato inventante manieron konstrui sur la muŝo nur tiujn enskribojn en la tabelo kiuj estas fakte vizititaj dum rekono.

kraboj

La ĉarma meta-programo de Luca Cardelli por la Blit-fenestra sistemo liberigis virtualajn krabojn, kiuj travagis la malplenan ekranspacon, mordante la randojn de aktivaj fenestroj pli kaj pli.

Kelkaj ĝeneralaj pensoj

Kvankam ĝi ne estas videbla de ekstere, teorio kaj algoritmoj ludis decidan rolon en la kreado de la plej multaj el tiuj programoj: tajperaro, dc, struct, pascal, egrep. Fakte, estas la nekutima aplikado de la teorio, kiu plej surprizas.

Preskaŭ duono de la listo - pascal, struct, parts, eqn - estis origine verkita de virinoj, multe plimulte ol la demografia de virinoj en komputiko.

Douglas McIlroy
Marto, 2020


fonto: www.habr.com

Aldoni komenton