KÔige tÀhelepanuvÀÀrsemad Unix-programmid

Artikli autor Douglas MacIlroy on Ameerika matemaatik, insener ja programmeerija. Ta on kĂ”ige tuntum Unix-i operatsioonisĂŒsteemi torujuhtme, komponente orienteeritud programmeerimise printsiipide ja mitme originaalutiliidi nagu spell, diff, sort, join, speak, tr vĂ€ljatöötamise poolest.

MĂ”nikord kohtate tĂ”eliselt hĂ€mmastavaid programme. Otsides mĂ€lu sĂŒgavustest, koostasin nimekirja tĂ”elistest Unix-i pĂ€rlitest lĂ€bi aastate. Peamiselt on tegu ĂŒsna haruldaste ja mitte nii hĂ€davajalike programmidega. Aga mis neid eristab, on nende originaalsus. Ei suuda isegi ette kujutada, et mul endal oleks tulnud mĂ”te mĂ”nest neist.

Jagage, millised programmid on teid samuti nii vĂ€ga ĂŒllatanud?

PDP-7 Unix

Kuna alguseks, ise PDP-7 Unix sĂŒsteem. Selle lihtsus ja jĂ”ud sundisid mind liikuma vĂ”imsalt peamiselt peenardest vĂ€iksemale masinale. Siin on jĂ”hkralt hierarhilise failisĂŒsteemi kvintessents, eraldi shell ja kasutaja tasemel protsessihaldus, mida Multics peamine sĂŒsteem ei suutnud sajandite jooksul arenduste jooksul realiseerida. Unix-i puudused (nt kirje struktuur failisĂŒsteemis) olid sama Ă”petlikud ja vabastavad kui selle uuendused (nt sisendi-vĂ€ljundi suunamine shellis).

dc

Robert Morrise matemaatiline raamatukogu lauaarvutite kalkulaatorile, mille tĂ€psus oli muutuja, kasutas tagasipööratud eksiarvamuste analĂŒĂŒsi, et mÀÀrata vajaliku tĂ€psuse iga sammu jaoks, et saavutada kasutaja mÀÀratud tulemus tĂ€psuses. NATO 1968. aasta tarkvarainsenerite konverentsil oma ettekandes tarkvarakomponentide kohta, soovitasin ma standardprotseduure, mis vĂ”iksid anda soovitud tĂ€psuse, kuid ma ei teadnud, kuidas neid praktikas rakendada. dc jÀÀb siiani ainukeseks tuntud programmiks, mis suudab seda teha.

typo

Typo jĂ€rjestab sĂ”nad tekstis vastavalt nende sarnasusele ĂŒlejÀÀnud tekstiga. Kirjavead nagu 'hte' kipuvad olema nimekirja lĂ”pus. Robert Morris rÀÀkis uhkusega, et programm töötab sama hĂ€sti mis tahes keeles. Kuigi typo ei aita leida foneetilisi vigu, on see olnud tĂ”eline leid kĂ”igile, kes teksti kirjutavad ja on andnud palju kasu enne, kui ilmus palju vĂ€hem huvitav, kuid tĂ€psem Ă”igekirjakontroll sĂ”naraamatute pĂ”hjal.

Typo on niivĂ”rd ĂŒllatav, kui see on seest kui vĂ€ljast. Sarnaste elementide mÔÔtmise algoritm pĂ”hineb trigrammide esinemissagedusel, mida arvestatakse 26×26×26 massiivi. VĂ€ikeses mĂ€lus ei olnud ruumi ĂŒheinimesekaid loendureid, seega rakendati suurtelt numbritelt vĂ€ikestele loenduritele tihendamise skeem. Üleujutuste vĂ€ltimiseks uuendati loendureid tĂ”enĂ€osuslikult, sĂ€ilitades loenduri vÀÀrtuse logaritmi hinnangu.

eqn

Fotokogumite ilmumisega muutus klassikalise matemaatilise mĂ€rkuse vĂ€ljatöötamine vĂ”imalikuks, kuid kohutavalt tĂŒĂŒtuks. Lorinda Cherry otsustas vĂ€lja töötada kĂ”rgema taseme kirjelduskeele ja peagi liitus temaga Brian Kernighan. Nende geniaalne samm oli vĂ€ljendada suulist traditsiooni kirjalikult, mistĂ”ttu osutus eqn ĂŒllatavalt lihtsaks Ă”ppida. Esimene omalaadne matemaatiliste vĂ€ljendite kirjelduskeele eelprotsessor, eqn pole sellest ajast peaaegu ĂŒldse paranenud.

struct

Brenda Baker alustas oma Fortran-to-Ratfor konverteri vĂ€ljatöötamist oma ĂŒlemuse — minu — soovitust hoolimata. Ma arvasin, et see vĂ”ib viia algse koodi erilise uuendamiseni. See oleks vaba operaatorite numbritest, kuid muidu mitte rohkem loetav kui Ă”igesti struktureeritud Fortrani kood. Brenda tĂ”estas, et ma eksisin. Ta avastas, et igal Fortrani programmil on kanoniliselt struktureeritud kuju. Programmeerijad eelistasid kanonilist vormi selle asemel, mida nad algselt kirjutasid.

pascal

SĂŒntaksidiagnoos Berkeleys Sue Grahami rĂŒhma loodud kompilaatoris oli kĂ”ige kasulikum, mida ma kunagi nĂ€inud olen — ja see toimus automaatselt. SĂŒntaktilise vea korral pakub kompilaator lisada lexemi, et jĂ€tkata sĂŒntaksianalĂŒĂŒsi. Ühtegi katset seletada, mis on vale. Selle kompilaatoriga Ă”ppisin Pascalit ĂŒhe Ă”htu jooksul, ilma et mul oleks olnud juhendit.

parts

WWB (Writer’s Workbench) paketi sees peidetud moodul parts Lorinda Cherry mÀÀrab sĂ”nastiku alusel sĂ”nade kĂ”neosad ingliskeelses tekstis, tuginedes vaid vĂ€ikesele sĂ”naraamatule, Ă”piksite ja grammatikareeglitele. Selle annotatsiooni alusel toodab programm WWB stilomeetrilisi nĂ€itajaid, nagu omadussĂ”nade, alamsĂ”nade ja keeruliste lausete ĂŒlekaal. Kui Lorinda andis intervjuu NBC saates Today ja rÀÀkis WWB tekstides innovatiivsest grammatikakontrollist, oli see esimene kord, kui Unixist televisioonis rÀÀgiti.

egrep

Al Aho lootis, et tema mÀÀratletud regulaarsete vĂ€ljendite tuvastaja teeb kiiremini lĂ€bi klassikalisest mitte-mÀÀratletud tuvastajast Kenist. Kahjuks lĂ”petas viimane juba keeruliste regulaarsete vĂ€ljendite lĂ€bimise, samal ajal kui egrep ta ehitas oma mÀÀratletud automaatika. Et siiski vĂ”idutseda selles vĂ”istluses, leidis Al Aho viisi, kuidas kĂ”rvaldada masina olekute tabeli eksponentsiaalne kasvu needus, leiutades meetodi tabeli ainult nende kirjeid loomise jaoks, mis tĂ”eliselt kĂŒlastatakse tuvastamise ajal.

krabisid

Luca Cardelli vĂ”luv meta-programm Bliti aknasĂŒsteemile genereeris virtuaalseid rakke, mis rĂ€ndasid ekraani tĂŒhjas ruumis, aina rohkem nĂ€ksides aktiivsete akende servasid.

MĂ”ned ĂŒldised mĂ”tted

Kuigi see ei ole vĂ€ljastpoolt nĂ€htav, on teoriad ja algoritmid mĂ€nginud otsustavat rolli enamikus neist programmidest: typo, dc, struct, pascal, egrep. Tegelikult ĂŒllatab enim just ebatavaline teooriate rakendamine.

Originaalautoriteks oli peaaegu poolest nimekirjast - pascal, struct, parts, eqn - naised, mis ĂŒletab oluliselt naiste demograafilist osa arvutiteaduses.

Douglas McIlroy
MĂ€rts, 2020


Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster