Ang Pinakadako nga Unix Programs

Ang tagsulat sa artikulo, si Douglas McIlroy, usa ka Amerikanong matematiko, inhenyero, ug programmer sa kompyuter. Nailhan siya pag-ayo sa pagpalambo sa pipeline sa operating system sa Unix, ang mga prinsipyo sa component-oriented programming ug ubay-ubay nga orihinal nga mga gamit: spell, diff, sort, join, speak, tr.

Usahay makit-an nimo ang pipila ka maayo kaayo nga mga programa. Pagkahuman sa pagkalot sa akong panumduman, nagtipon ako usa ka lista sa pipila sa tinuud nga mga hiyas sa Unix sa daghang mga tuig. Sa panguna, kini talagsa ra ug dili kinahanglan nga mga programa. Apan ang nagpalahi kanila mao ang ilang pagka-orihinal. Dili nako mahunahuna nga ako mismo ang nakahunahuna sa bisan kinsa kanila.

Ipakigbahin, unsa nga mga programa ang nakadayeg usab kanimo pag-ayo?

PDP-7 Unix

Sa pagsugod, ang PDP-7 Unix nga sistema mismo. Ang kayano ug gahum niini nakapabalhin kanako gikan sa usa ka gamhanan nga mainframe ngadto sa usa ka gamay nga makina. Kini ang quintessential hierarchical file system, separado nga shell, ug user-level process control nga dili mapatuman sa Multics sa mainframes human sa gatusan ka tuig nga pag-uswag. Ang mga kakulian sa Unix (sama sa istruktura sa rekord sa file system) kay makatudlo ug makapalingkawas sa mga inobasyon niini (sama sa shell I/O redirection).

dc

Ang variable precision desktop calculator math library ni Robert Morris migamit ug inverse error analysis aron mahibal-an ang katukma nga gikinahanglan sa matag lakang aron makab-ot ang resulta sa precision nga espesipiko sa user. Sa 1968 NATO Software Engineering Conference, sa akong papel sa mga sangkap sa software, gisugyot nako ang mga pamaagi sa pakisayran nga makahimo og mga resulta sa bisan unsang gitinguha nga katukma, apan wala ako kahibalo kung giunsa kini ipatuman sa praktis. Ang dc mao ra gihapon ang programa nga akong nahibal-an nga makahimo niini.

typo

Ang typo nag-order sa mga pulong sa teksto base sa pagkaparehas niini sa ubang bahin sa teksto. Ang mga sayop nga spelling sama sa 'hte' lagmit moabot sa kataposan sa listahan. Si Robert Morris mapasigarbuhon nga miingon nga ang programa parehas nga molihok sa bisan unsang pinulongan. Bisan tuod ang typo dili makatabang kanimo sa pagpangita sa phonetic errors, kini usa ka godsend alang sa tanan nga mga typesetters ug mapuslanon kaayo sa wala pa moabut ang dili kaayo makapaikag apan mas tukma nga spell check sa diksyonaryo.

Ang typo kay wala damha sa sulod kay sa gawas. Ang algorithm sa pagsukod sa pagkaparehas gibase sa frequency sa mga trigrams, nga giihap sa 26x26x26 array. Adunay halos igo nga luna sa gamay nga memorya alang sa single-byte nga mga counter, mao nga usa ka laraw ang gipatuman aron sa pag-compress sa daghang mga numero ngadto sa gagmay nga mga counter. Aron malikayan ang pag-awas, ang mga counter gi-update sa probabilistic nga basehan, nga nagmintinar sa usa ka banabana sa logarithm sa counter value.

eqn

Uban sa pag-abut sa phototypesetting, kini nahimong posible, apan sa hilabihan makakapoy, sa paghimo sa klasikal nga mathematical notation. Si Lorinda Cherry nakahukom sa paghimo og mas taas nga lebel sa paghulagway sa pinulongan, ug si Brian Kernighan sa wala madugay miduyog kaniya. Ang ilang maayo nga lakang mao ang pagpahayag sa oral nga tradisyon sa pagsulat, mao nga ang eqn nahimo nga katingad-an nga dali nga makat-on. Ang unang mathematical expression language preprocessor sa iyang matang, eqn nakakita ug gamay nga kalamboan sukad niadto.

estruktura

Si Brenda Baker nagsugod sa pagpalambo sa iyang Fortan-to-Ratfor converter batok sa tambag sa iyang amo, ako. Naghunahuna ko nga mahimong moresulta kini sa usa ka espesyal nga paghan-ay pag-usab sa orihinal nga teksto. Mahimong libre kini sa mga numero sa operator, apan kung dili, dili na mabasa kaysa maayo ang pagkahan-ay nga Fortran code. Gipamatud-an ni Brenda nga sayop ko. Nadiskobrehan niya nga ang matag programa sa Fortran adunay usa ka canonically structured nga porma. Gipalabi sa mga programmer ang kanonikal nga porma kaysa sa ilang orihinal nga gisulat.

Pascal

Ang syntax diagnostics sa compiler nga gitukod sa grupo ni Sue Graham sa Berkeley mao ang labing mapuslanon nga akong nakita sukadβ€”ug kini awtomatiko. Kung adunay sayup nga syntax, ang compiler nag-aghat kanimo sa pagsal-ot sa usa ka token aron ipadayon ang pag-parse. Wala’y pagsulay nga ipasabut kung unsa ang sayup. Uban niini nga compiler, nakakat-on ko sa Pascal sa usa ka gabii, nga walay bisan unsa nga manwal sa kamot.

mga bahin

Module nga gitago sa sulod sa WWB (Writer's Workbench) package parts Si Lorinda Cherry nagtino sa mga bahin sa sinultihan alang sa mga pulong sa English nga teksto base lamang sa gamay nga diksyonaryo, spelling ug mga lagda sa gramatika. Base sa kini nga anotasyon, ang programa sa WWB nagpakita sa mga stylometric indicators sa teksto, sama sa pagkaylap sa mga adjectives, subordinate clause ug komplikadong mga sentence. Sa dihang giinterbyu si Lorinda sa NBC's Today show ug naghisgot bahin sa innovative grammar checking sa WWB, kini ang unang paghisgot sa Unix sa telebisyon.

egrep

Naglaum si Al Aho nga ang iyang deterministiko nga regular nga ekspresyon nga parser makalabaw sa klasiko nga non-deterministic nga parser ni Ken. Ikasubo, ang ulahi nagkompleto na sa usa ka pagpasa sa komplikado nga regular nga mga ekspresyon hangtod egrep nagtukod sa iyang kaugalingong deterministikong automation. Aron makadaog gihapon niini nga lumba, gilikayan ni Al Aho ang tunglo sa exponential growth sa state table sa automaton pinaagi sa pag-imbento og paagi sa pagtukod sa mga entries sa lamesa nga aktuwal nga gibisita atol sa pag-ila.

mga crab

Ang maanyag nga meta-program ni Luca Cardelli alang sa Blit windowing system nagpagawas sa mga virtual nga alimango nga naglibot-libot sa walay sulod nga wanang sa screen, nga nagpaak sa mga kilid sa aktibo nga mga bintana.

Pipila ka kinatibuk-ang mga hunahuna

Bisan kung dili kini makita sa gawas, ang teorya ug mga algorithm adunay hinungdanon nga papel sa paghimo sa kadaghanan sa kini nga mga programa: typo, dc, struct, pascal, egrep. Sa pagkatinuod, ang talagsaon nga paggamit sa teorya mao ang labing kahibulongan.

Ang orihinal nga mga awtor sa halos katunga sa listahanβ€”pascal, struct, parts, eqnβ€”mga babaye, nga milapas pag-ayo sa demograpikong bahin sa kababayen-an sa computer science.

Douglas McIlroy
Marso, 2020


Source: www.habr.com

Idugang sa usa ka comment