Ang Pinakamahusay na Unix Programs

Ang may-akda ng artikulo, si Douglas McIlroy, ay isang Amerikanong matematiko, inhinyero, at programmer. Kilala siya sa pagbuo ng pipeline sa operating system ng Unix, ang mga prinsipyo ng component-oriented programming, at ilang orihinal na utility: spell, diff, sort, join, speak, tr.

Minsan nakakatagpo ka ng napakagandang mga programa. Pagkatapos halukayin ang aking memorya, nag-compile ako ng isang listahan ng mga tunay na hiyas ng Unix sa paglipas ng mga taon. Karaniwan, ang mga ito ay medyo bihira at hindi gaanong kinakailangang mga programa. Ngunit ang nagpapatingkad sa kanila ay ang kanilang pagka-orihinal. Hindi ko maisip na ako mismo ang nakaisip ng ideya ng alinman sa kanila.

Ibahagi kung anong mga programa ang labis mong hinahangaan?

PDP-7 Unix

Para sa mga panimula, ang PDP-7 Unix system mismo. Dahil sa pagiging simple at kapangyarihan nito, lumipat ako mula sa isang malakas na mainframe patungo sa isang maliit na makina. Ito ang quintessential hierarchical file system, hiwalay na shell, at user-level na kontrol sa proseso na hindi nagawang makamit ng Multics sa mainframe pagkatapos ng daan-daang taong-taon ng pag-unlad. Ang mga pagkukulang ng Unix (tulad ng istraktura ng talaan ng file system) ay kasing-katuturan at pagpapalaya ng mga inobasyon nito (tulad ng pag-redirect ng shell I/O).

dc

Gumamit ng inverse error analysis ang Variable Precision Desktop Calculator Math Library ni Robert Morris upang matukoy ang katumpakan na kinakailangan sa bawat hakbang upang makamit ang katumpakan ng resulta na tinukoy ng user. Sa 1968 NATO Software Engineering Conference, sa aking ulat sa mga bahagi ng software, iminungkahi ko ang mga pamamaraan ng sanggunian na maaaring makagawa ng anumang nais na katumpakan, ngunit hindi ko alam kung paano isasagawa ang mga ito. dc pa rin ang tanging program na alam ko na makakagawa nito.

typo

Ang typo ay nag-aayos ng mga salita sa teksto ayon sa pagkakatulad nito sa natitirang bahagi ng teksto. Ang mga maling spelling tulad ng 'hte' ay kadalasang nasa dulo ng listahan. Ipinagmamalaki ni Robert Morris na ang programa ay gagana nang maayos para sa anumang wika. Bagama't hindi nakakatulong sa iyo ang typo na makahanap ng mga phonetic error, ito ay isang tunay na pagpapala para sa lahat ng mga typesetters, at ito ay gumawa ng maraming kabutihan bago dumating ang hindi gaanong kawili-wili ngunit mas tumpak na spell checker ng diksyunaryo.

Ang typo ay hindi inaasahan sa loob at sa labas. Ang algorithm ng pagsukat ng pagkakapareho ay batay sa dalas ng paglitaw ng mga trigram, na binibilang sa isang 26Γ—26Γ—26 array. Ang maliit na memorya ay halos walang sapat na espasyo para sa mga one-byte na counter, kaya isang scheme ang ipinatupad upang i-compress ang malalaking numero sa maliliit na counter. Upang maiwasan ang pag-apaw, ang mga counter ay na-update sa probabilistic na batayan, na nagpapanatili ng isang pagtatantya ng logarithm ng counter value.

eqn

Sa pagdating ng phototypesetting, naging posible, ngunit lubhang nakakapagod, na mag-print ng klasikal na notasyong matematika. Nagpasya si Lorinda Cherry na bumuo ng isang mas mataas na antas ng wika sa paglalarawan, at hindi nagtagal ay sumama sa kanya si Brian Kernigan. Ang kanilang napakatalino na hakbang ay upang ilagay ang oral na tradisyon sa pagsulat, kaya ang eqn ay napakadaling matutunan. Ang unang mathematical expression language preprocessor ng uri nito, ang eqn ay hindi pa gaanong napabuti mula noon.

istruktura

Sinimulan ni Brenda Baker na bumuo ng kanyang Fortan-to-Ratfor converter laban sa payo ng kanyang amo, ako. Naisip ko na ito ay maaaring humantong sa isang espesyal na muling pagsasaayos ng orihinal na teksto. Ito ay magiging libre sa mga numero ng pahayag, ngunit kung hindi man ay hindi na nababasa kaysa sa maayos na pagkakaayos na Fortran code. Pinatunayan ni Brenda na mali ako. Natuklasan niya na ang bawat programa ng Fortran ay may canonically structured form. Mas gusto ng mga programmer ang canonical form, kaysa sa orihinal nilang sinulat.

Pascal

Ang mga diagnostic ng syntax sa compiler na ginawa ng grupo ni Sue Graham sa Berkeley ay ang pinakakapaki-pakinabang na nakita koβ€”at awtomatiko itong ginawa. Sa isang error sa syntax, sinenyasan ka ng compiler na magpasok ng isang token upang magpatuloy sa pag-parse. Walang pagtatangkang ipaliwanag kung ano ang mali. Sa compiler na ito, natutunan ko ang Pascal sa isang gabi nang walang anumang manwal.

bahagi

Nakatago sa loob ng WWB (Writer's Workbench) module parts Tinutukoy ni Lorinda Cherry ang mga bahagi ng pananalita para sa mga salita sa isang English na teksto batay lamang sa isang maliit na diksyunaryo, spelling at mga panuntunan sa grammar. Batay sa anotasyong ito, ang programa ng WWB ay nagpapakita ng mga stylometric na tagapagpahiwatig ng teksto, tulad ng pagkalat ng mga adjectives, subordinate clause at kumplikadong mga pangungusap. Nang kapanayamin si Lorinda sa NBC's Today at pinag-usapan ang innovative grammar check sa mga WWB texts, ito ang unang pagbanggit ng Unix sa telebisyon.

egrep

Inaasahan ni Al Aho na maabutan ng kanyang deterministikong regular na expression na solver ang klasikong non-deterministic na solver ni Ken. Sa kasamaang palad, ang huli ay nakumpleto na ang isang pagpasa sa mga kumplikadong regular na expression, habang egrep nagtayo ng sarili niyang deterministikong automation. Upang manalo pa rin sa karerang ito, nalampasan ni Al Aho ang sumpa ng exponential growth ng state table ng automat sa pamamagitan ng pag-imbento ng isang paraan upang makabuo lamang ng mga entry sa talahanayan na talagang binibisita sa panahon ng pagkilala.

crab

Ang kaakit-akit na meta-program ni Luca Cardelli para sa Blit windowing system ay naglabas ng mga virtual na alimango na gumagala sa walang laman na espasyo sa screen, na kumagat sa mga gilid ng mga aktibong bintana nang higit pa.

Ilang pangkalahatang kaisipan

Kahit na hindi ito nakikita mula sa labas, ang teorya at mga algorithm ay gumaganap ng isang mapagpasyang papel sa paglikha ng karamihan sa mga programang ito: typo, dc, struct, pascal, egrep. Sa katunayan, ang hindi pangkaraniwang aplikasyon ng teorya ang pinaka nakakagulat.

Halos kalahati ng listahan β€” pascal, struct, parts, eqn β€” ay orihinal na isinulat ng mga kababaihan, na higit sa dami ng demograpiko ng kababaihan sa computer science.

Douglas McIlroy
Marso, 2020


Pinagmulan: www.habr.com

Magdagdag ng komento