A legcsodálatosabb Unix programok

A cikk szerzője Douglas McIlroy – amerikai matematikus, mérnök és programozó. Leginkább az Unix operációs rendszer csővezetékének, a komponens-orientált programozás elveinek és számos eredeti segédprogramnak, például a spell, diff, sort, join, speak és tr fejlesztéséről ismert.

Néha tényleg csodálatos programokba botlik az ember. Emlékeimet kutatva összeállítottam az évek alatt valódi gyöngyszemek listáját Unix alatt. Főleg viszonylag ritkán használt és nem annyira nélkülözhetetlen programokról van szó. De ami megkülönbözteti őket, az az eredetiség. El sem tudom képzelni, hogy nekem magamtól eszembe jutott volna bármelyikük ötlete.

Oszd meg, hogy mely programok hatottak rád ennyire?

PDP-7 Unix

Kezdésként magának a PDP-7 Unix rendszernek az egyszerűsége és ereje arra késztetett, hogy egy erőteljes főgépről átváltjak egy apró gépre. Itt van a hierarchikus fájlrendszer kvintesszenciája, a külön shell és a folyamatkezelés felhasználói szinten, amit a Multics főgépek esetén nem tudtak megvalósítani több száz emberéves fejlesztés után. Az Unix hátrányai (például a fájlrendszer felépítése) éppolyan tanulságosak és felszabadítóak voltak, mint az újításai (például a bemeneti és kimeneti irányítás a shellben).

dc

Robert Morris változó pontosságú asztali számológépének matematikai könyvtára a hiba visszafelé elemzését használta annak meghatározásához, hogy az egyes lépésekben mekkora pontosságra van szükség a felhasználó által megadott eredmény eléréséhez. Az 1968-as NATO szoftverfejlesztési konferencián a szoftverkomponensekről tartott előadásomban ajánlottam olyan referenciaeljárásokat, amelyek bármilyen kívánt pontosságot nyújthatnak, de nem tudtam, hogyan kellene ezeket gyakorlatban megvalósítani. A dc még mindig az egyetlen program, amelyről tudom, hogy képes rá.

typo

A Typo a szavakat a szövegben a többi szövegrészhez való hasonlóságuk alapján rendezi. Az elírások, mint például ‘hte’, hajlamosak a lista végén megjelenni. Robert Morris büszkén mondta, hogy a program bármely nyelven egyformán jól fog működni. Bár a typo nem segít a fonetikai hibák keresésében, igazi felfedezés volt mindenki számára, aki szöveget gépel, és sok hasznot hozott, mielőtt megjelent volna a sokkal unalmasabb, de pontosabb szótáralapú helyesírás-ellenőrzés.

A hiba annyira váratlanul van kialakítva belül, mint kívül. A hasonlóság mérésének algoritmusát a trigramok előfordulásának gyakorisága alapján dolgozták ki, amelyeket egy 26×26×26-os tömbben számítanak. A kicsi memóriában alig volt elegendő hely az egybájtos számlálóknak, ezért egy sémát valósítottak meg a nagy számok kicsi számlálókká tömörítésére. A túlcsordulás elkerülése érdekében a számlálók valószínűség alapú frissítéseket kaptak, megőrizve a számláló értékének logaritmusának becslését.

. Ez figyelembe vehető, mert a képlet megjelenítéséhez a fejlesztőnek csak egyszerű szavakkal és szimbólumokkal kell leírnia azt. A kulcsszavak lehetővé teszik a matematikai jelek függőleges és vízszintes eltolását, méretük és egyéb paramétereik megváltoztatását. Ha az eszköznek átad egy sort:

A fotógyűjtés megjelenésével lehetővé vált, de borzasztóan fárasztó volt a klasszikus matematikai jelölés kifejezése. Lorinda Cherry úgy döntött, hogy kidolgoz egy magasabb szintű leírási nyelvet, és nem sokkal később csatlakozott hozzá Brian Kernighan. Pompás lépésük az volt, hogy a szóbeli hagyományt írásos formába öntötték, így az eqn meglepően egyszerűvé vált a tanulás szempontjából. Az első ilyen jellegű matematikai kifejezések leírásához készült preprocesszor azóta alig fejlődött.

struktúra

Brenda Baker a Fortan-to-Ratfor konverterének fejlesztésébe kezdett, a főnökének — nekem — ellenére. Gondoltam, hogy ez különleges újrarendezéshez vezethet az eredeti szövegben. Szabad lesz az operátorok számától, de egyébként nem olvashatóbb, mint egy jól strukturált Fortran kód. Brenda bebizonyította, hogy tévedtem. Felfedezte, hogy minden Fortran programnak van egy kanonikus struktúrájú formája. A programozók a kanonikus formát részesítették előnyben, és nem azt, amit eredetileg írtak.

pascal

A szintaxis diagnosztika a Sue Graham által Berkeley-ben készített fordítóban volt a leghasznosabb az összes közül, amit valaha láttam — és automatikusan történt. Szintaktikai hiba esetén a fordító javasolja egy lexéma beszúrását a szintaktikai elemzés folytatásához. Nincs kísérlet a hiba magyarázatára. Ezzel a fordítóval egy este alatt megtanultam Pascal-t úgy, hogy nem volt nálam semmiféle kézikönyv.

alkatrészek

A WWB (Writer’s Workbench) csomagban elrejtett modul alkatrészek Lorinda Cherry a meghatározza a szavak szófajait az angol nyelvű szövegben egy kis szótár, helyesírási és nyelvtani szabályok alapján. Ebből az annotációból a WWB program stilometriai mutatókat szolgáltat a szövegről, mint például a melléknevek, az alárendelt mondatok és a bonyolult mondatok túlsúlyát. Amikor Lorinda interjút adott a NBC Today című műsorában, és beszélt a WWB szövegek innovatív nyelvtani ellenőrzéséről, ez volt az első Unix említés a televízióban.

egrep

Al Aho azt remélte, hogy a determinisztikus reguláris kifejezés felismerője megelőzi Ken klasszikus nem determinisztikus felismerőjét. Sajnos az utóbbi már befejezte a bonyolult reguláris kifejezések átjárását, amíg egrep az ő determinisztikus automatáját építette. Annak érdekében, hogy végül győztes legyen ebben a versenyben, Al Aho megkerülte az automata állapotainak exponenciális növekedésének átkát, kifejlesztve egy módszert, amellyel menet közben csak azokat a táblázatbejegyzéseket hozta létre, amelyeket valóban látogatnak a felismerés során.

rákok

Luca Cardelli bájos meta-programja a Blit ablakos rendszerhez virtuális rákokat generált, amelyek bejártak a képernyő üres terében, egyre inkább harapva az aktív ablakok széleit.

Néhány általános gondolat

Bár ez kívülről nem látható, a teória és az algoritmusok döntő szerepet játszottak e programok többségének létrehozásában: typo, dc, struct, pascal, egrep. Valójában leginkább a teória szokatlan alkalmazása meglepő.

A lista majdnem felének eredeti szerzői — pascal, struct, parts, eqn — nők voltak, ami jelentősen meghaladja a női arányt a számítástechnikai területen.

Douglas Macilroy
2020 március


Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster