Bestu Unix forritin

Höfundur greinarinnar, Douglas McIlroy, er bandarískur stærðfræðingur, verkfræðingur og forritari. Hann er þekktastur fyrir að þróa leiðsluna í Unix stýrikerfinu, meginreglur íhlutamiðaðrar forritunar og nokkur frumleg tól: stafa, diff, sort, join, speak, tr.

Stundum rekst maður á virkilega dásamleg forrit. Eftir að hafa rótað í minninu tók ég saman lista yfir alvöru Unix gimsteina í gegnum árin. Í grundvallaratriðum eru þetta frekar sjaldgæf og ekki svo nauðsynleg forrit. En það sem gerir þá áberandi er frumleiki þeirra. Ég get ekki einu sinni ímyndað mér að ég sjálfur hafi fengið hugmyndina um eitthvað þeirra.

Deildu hvaða forritum þú ert líka svo hrifinn af?

PDP-7 Unix

Til að byrja með, PDP-7 Unix kerfið sjálft. Einfaldleiki þess og kraftur varð til þess að ég fór úr öflugri stórtölvu yfir í pínulitla vél. Það er hið mikilvæga stigveldisskráarkerfi, aðskilið skel og vinnslustýringu á notendastigi sem Multics á stórtölvunni hefur ekki tekist að ná eftir mörg hundruð mannsára þróun. Gallar Unix (eins og skráarkerfi skráarkerfisins) voru álíka lærdómsríkar og frelsandi og nýjungar þess (eins og skel I/O endurbeiningu).

dc

Robert Morris' Variable Precision Desktop Calculator Math Library notaði öfuga villugreiningu til að ákvarða nákvæmni sem þarf í hverju skrefi til að ná notendatilgreindri niðurstöðu nákvæmni. Á ráðstefnu NATO um hugbúnaðarverkfræði árið 1968, í skýrslu minni um hugbúnaðaríhluti, lagði ég til viðmiðunaraðferðir sem gætu framleitt hvaða nákvæmni sem óskað var eftir, en ég vissi ekki hvernig ætti að framkvæma þær í framkvæmd. dc er samt eina forritið sem ég veit um sem getur gert þetta.

prentvilla

Innsláttarvilla raðar orðum í texta í samræmi við líkindi þeirra við restina af textanum. Stafsetningarvillur eins og 'hte' hafa tilhneigingu til að vera aftast á listanum. Robert Morris sagði stoltur að forritið myndi virka jafn vel fyrir hvaða tungumál sem er. Þótt innsláttarvillur hjálpi þér ekki að finna hljóðvillur, þá var þetta mikil bót fyrir alla leturgerðarmenn, og það gerði mikið gagn áður en mun minna áhugaverður en nákvæmari orðabókarvilluleit kom til sögunnar.

Innsláttarvilla er alveg jafn óvænt að innan eins og að utan. Líkindamælingaralgrímið byggir á tíðni þrírita sem eru taldir í 26×26×26 fylki. Örlítið minni hafði varla nóg pláss fyrir eins bæta teljara, svo kerfi var útfært til að þjappa stórum tölum í litla teljara. Til að koma í veg fyrir yfirfall voru teljararnir uppfærðir á líkindagrundvelli og viðhaldið mati á logaritma teljaragildisins.

eqn

Með tilkomu ljósritunar varð mögulegt, en hræðilega leiðinlegt, að prenta klassíska stærðfræðilega nótnaskrift. Lorinda Cherry ákvað að þróa lýsingarmál á hærra stigi og fljótlega gekk Brian Kernigan til liðs við hana. Snilldarverk þeirra var að setja munnlega hefð í skrift, svo eqn var ótrúlega auðvelt að læra. Fyrsti stærðfræðilega tjáningarforvinnsluforvinnsla sinnar tegundar, eqn hefur ekki verið bætt mikið síðan þá.

str

Brenda Baker byrjaði að þróa Fortan-to-Ratfor breytirinn sinn gegn ráðleggingum yfirmanns hennar, ég. Ég hélt að þetta gæti leitt til sérstakrar endurröðunar á frumtextanum. Hann verður laus við yfirlýsingarnúmer, en að öðru leyti ekki læsilegri en vel uppbyggður Fortran kóða. Brenda sannaði að ég hefði rangt fyrir mér. Hún komst að því að hvert Fortran forrit hefur kanónískt form. Forritararnir vildu frekar kanóníska formið en það sem þeir sjálfir skrifuðu upphaflega.

pascal

Setningafræðigreiningin í þýðandanum sem hópur Sue Graham í Berkeley bjó til var það hjálpsamasta sem ég hef nokkurn tíma séð – og það var gert sjálfkrafa. Við setningafræðivillu biður þýðandinn þig um að setja inn tákn til að halda áfram þáttun. Engin tilraun til að útskýra hvað er að. Með þessum þýðanda lærði ég Pascal á einni kvöldstund án nokkurrar handbókar við höndina.

hlutar

Falinn inni í WWB (Writer's Workbench) einingunni parts Lorinda Cherry ákvarðar orðhluta fyrir orð í enskum texta byggt á aðeins lítilli orðabók, stafsetningar- og málfræðireglum. Byggt á þessari skýringu sýnir WWB forritið stílfræðilegar vísbendingar um textann, svo sem algengi lýsingarorða, aukasetningar og flóknar setningar. Þegar Lorinda var í viðtali á NBC's Today og talaði um nýstárlega málfræðiskoðun í WWB textum, var það fyrsta minnst á Unix í sjónvarpi.

egrep

Al Aho bjóst við að ákvarðandi reglubundin tjáningarlausni hans myndi ná klassískum óákveðnum resolver Kens. Því miður var hið síðarnefnda þegar að klára að fara í gegnum flóknar reglubundnar tjáningar, á meðan egrep byggði sína eigin deterministic sjálfvirkni. Til að vinna enn þessa keppni, komst Al Aho í kringum bölvunina um veldishraða vöxt stöðuborðs sjálfvirkans með því að finna upp leið til að byggja aðeins á fluginu þær færslur í töflunni sem raunverulega eru heimsóttar við viðurkenningu.

crabs

Heillandi metaforrit Luca Cardelli fyrir Blit gluggakerfið gaf út sýndarkrabba sem ráfuðu um tómt skjáplássið og bitu af brúnum virkra glugga meira og meira.

Nokkrar almennar hugsanir

Þó að það sé ekki sýnilegt utan frá, spiluðu kenningar og reiknirit afgerandi hlutverki við gerð flestra þessara forrita: innsláttarvillu, dc, struct, pascal, egrep. Raunar er það óvenjuleg beiting kenningarinnar sem kemur mest á óvart.

Næstum helmingur listans - pascal, struct, partar, eqn - var upphaflega skrifaður af konum, langt umfram lýðfræði kvenna í tölvunarfræði.

Douglas McIlroy
Mars, 2020


Heimild: www.habr.com

Bæta við athugasemd