KÔige hÀmmastavamad Unix-programmid

Artikli autor on Douglas McIlroy — Ameerika matemaatik, insener ja programmeerija. Tuntud peamiselt Unix-operatsioonisĂŒsteemis tööprotsessi arendamise, komponentidest koosneva programmeerimise pĂ”himĂ”tete ja mitme originaalse utiliidi, nagu spell, diff, sort, join, speak, tr, vĂ€ljatöötamise poolest.

MĂ”nikord leiad tĂ”eliselt hĂ€mmastavaid programme. MĂ€lu kaevates koostasin nimekirja tĂ”elistest Unix-i pĂ€rlitest lĂ€bi aastate. Enamasti on need ĂŒsna haruldased ja mitte nii hĂ€davajalikud programmid. Kuid nende eripĂ€ra on originaalsus. Ma ei suuda isegi ette kujutada, et ma ise oleksin mĂ”elnud mĂ”nele neist ideedest.

Jagage, millised programmid on teid samuti nii hÀmmastanud?

PDP-7 Unix

Esimesele kohaile, PDP-7 Unix sĂŒsteemile. Selle lihtsus ja jĂ”ud sundisid mind vahetama vĂ”imsa peamise raamatu vĂ€ikese masina vastu. Siin on hierarhilise failisĂŒsteemi kvintessents, eraldi kest ja protsesside juhtimine kasutaja tasemel, mida Multics peamistest raamist ei suutnud saavutada pĂ€rast sadu inimtunde arendust. Unix'i puudused (nĂ€iteks kirje struktuur failisĂŒsteemis) olid sama Ă”petlikud ja vabastavad kui selle uuendused (nĂ€iteks sisendi ja vĂ€ljundi suunamine kestades).

dc

Robert Morrise muutuva tĂ€psusega lauaarvutuskalkulaatori matemaatika teek kasutab vigade taganalyĂŒsi, et mÀÀrata vajalik tĂ€psus igal sammul, et saavutada kasutaja mÀÀratud tulemuse tĂ€psus. 1968. aasta NATO tarkvarainseneride konverentsil esitasin oma ettekandes tarkvarakomponentide kohta standardprotseduurid, mis vĂ”iksid anda tulemuse mis tahes soovitud tĂ€psusega, kuid ma ei teadnud, kuidas neid praktikas rakendada. dc on siiani ainus teadaolev programm, mis suudab seda teha.

typo

Typo jĂ€rjestab teksti sĂ”nu sarnasusest lĂ€htudes ĂŒlejÀÀnud tekstiga. Kirjavigade nagu 'hte' tĂ”enĂ€osus asuda on enamasti loendi lĂ”pus. Robert Morris rÀÀkis uhkusega, et programm töötab sama hĂ€sti iga keele jaoks. Kuigi typo ei aita leida foneetilisi vigu, on see leid vĂ€ga kasulik kĂ”igile, kes kirjutavad teksti, ning sellega on olnud palju kasu enne, kui ilmus palju vĂ€hem huvitav, kuid tĂ€psem Ă”igekirjakontroll sĂ”nastiku jĂ€rgi.

Typo on seestpoolt sama ĂŒllatav kui vĂ€ljaspool. Sarnasuse mÔÔtmise algoritm pĂ”hineb trigrammide esinemissagedusel, mis arvutatakse 26×26×26 massiivis. VĂ€ikeses mĂ€lus oli raske leida ruumi ĂŒhebaidistele loenduritele, seega rakendati suurte arvude kompressiooniskeemi vĂ€ikesteks loenduriĂŒksusteks. Ülevoolu vĂ€ltimiseks vĂ€rskendati loendureid tĂ”enĂ€osuslikult, sĂ€ilitades loenduri vÀÀrtuse logaritmi hinnangu.

eqn

Fototöötluse vĂ”imaldamisega muutus klassikalise matemaatika sĂŒmbolite vĂ€ljakirjutamine vĂ”imalikuks, kuid ÀÀrmiselt vĂ€sitavaks. Lorinda Cherry otsustas luua kĂ”rgema taseme kirjelduse keele, ja varsti liitus temaga Brian Kernighan. Nende geniaalne lĂ€henemine seisnes suulise traditsiooni kirjalikus vĂ€ljenduses, mistĂ”ttu osutus eqn ÀÀrmiselt lihtsaks Ă”ppimiseks. Esimene omataoline matemaatiliste avalduste kirjeldusprotsessor, eqn pole sellest ajast peaaegu ĂŒldse arenenud.

struktuur

Brenda Baker asus arendama oma Fortan-to-Ratfor konverterit vastupidiselt oma ĂŒlemuse soovitusele — mulle. Ma arvasin, et see vĂ”ib viia algteksti spetsiaalse ĂŒmberkorraldamiseni. See oleks vabastatud operaatorite numbritest, kuid muidu ei olnud see loetavam kui korrektselt strukureeritud Fortrani kood. Brenda tĂ”estas, et ma eksin. Ta avastas, et igal Fortrani programmil on kanoniliselt struktureeritud vorm. Programmi arendajad eelistasid kanonilist vormi ning mitte seda, mida nad algselt kirjutasid.

pascal

SĂŒviveeb, mille lĂ”i Sue Grahami grupp Berkeley ĂŒlikoolis, pakkus parimat sĂŒntaksi analĂŒĂŒsi, mida ma kunagi nĂ€inud olen — ja see toimus automaatselt. SĂŒntaksi veaga annab kompilaator soovituse lisada lexeme, et jĂ€tkata analĂŒĂŒsi. Ükski katse ei selgita, mis on valesti. Selle kompilaatoriga Ă”ppisin ma Pascalit ĂŒhe Ă”htu jooksul ilma juhendita.

osad

WWB (Writer’s Workbench) paketi sees peidetud moodul osad Lorinda Cherry mÀÀratleb ingliskeelsete tekstide sĂ”nade osad vaid vĂ€ikese sĂ”nastiku, Ă”igekirja ja grammatika reeglite alusel. Selle annotatsiooni pĂ”hjal genereerib WWB tekstist stilomeetrilised nĂ€itajad, nagu omadussĂ”nade, aluslausete ja keerukate lausete osakaal. Kui Lorinda andis NBC Today saates intervjuu ning rÀÀkis WWB innovaatilisest grammatika kontrollist tekstides, oli see esimene Unix'i mainimine televisioonis.

egrep

Al Aho arvas, et tema deterministlik regulaaravaldiste tuvastaja ĂŒletab Keni klassikalist nondeterministlikku tuvastajat. Kahjuks lĂ”petas viimane juba keeruliste regulaaravaldiste töötlemise, samal ajal kui egrep ta ehitas oma deterministlikku automaatikat. Selle vĂ”iduks sellel vĂ”istlusel leidis Al Aho viisi, kuidas ĂŒle minna automaadi olekuteabe eksponentsiaalse kasvu needusest, leiutades meetodi, mis lubas reaalajas koostada ainult neid tabeli kirjendeid, mida tĂ”eliselt kĂŒlastatakse tuvastamise ajal.

krabid

Luca Cardelli vĂ”luv meta-programm Bliti aknasĂŒsteemile tootis virtuaalseid krabisid, mis rĂ€ndasid ekraani tĂŒhjas ruumis, jĂ€rjest rohkem hammustades aktiivsete akende servi.

MĂ”ned ĂŒldised mĂ”tted

Kuigi seda ei pruugi vĂ€ljastpoolt nĂ€ha, mĂ€ngisid teooria ja algoritmid mÀÀravat rolli enamikus neist programmidest: typo, dc, struct, pascal, egrep. TĂ”eliselt ĂŒllatav on just teooria ebatavaline kasutamine.

Peaaegu poole loendi originaalautoriteks olid naised — pascal, struct, parts, eqn — mis ealiselt ĂŒletab naiste demograafilist osakaalu arvutiteaduses.

Douglas McIlroy
MĂ€rts, 2020


Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster