Qhov Zoo Tshaj Plaws Unix Programs

Tus sau ntawm tsab xov xwm, Douglas McIlroy, yog ib tug American lej, engineer thiab programmer. Nws yog qhov paub zoo tshaj plaws rau kev tsim cov raj xa dej hauv Unix kev khiav haujlwm, cov ntsiab lus ntawm kev sib txuas-oriented programming thiab ntau yam khoom siv qub: spell, diff, sort, join, speak, tr.

Qee zaum koj tuaj hla qee qhov kev pab cuam zoo heev. Tom qab khawb los ntawm kuv lub cim xeeb, Kuv tau sau ib daim ntawv teev npe ntawm qee qhov tseeb Unix lub pov haum xyoo dhau los. Yeej, cov no yog qhov tsawg heev thiab tsis tsim nyog cov kev pab cuam. Tab sis dab tsi ua rau lawv sib nrug yog lawv originality. Kuv tsis tuaj yeem xav tias kuv tuaj nrog lub tswv yim rau ib qho ntawm lawv tus kheej.

Qhia, dab tsi cov kev pab cuam kuj impressed koj heev?

PDP-7 Unix

Rau qhov pib, PDP-7 Unix system nws tus kheej. Nws qhov yooj yim thiab lub zog ua rau kuv hloov ntawm lub tshuab hluav taws xob muaj zog mus rau lub tshuab me me. Nws yog quintessential hierarchical cov ntaub ntawv system, cais plhaub, thiab cov neeg siv cov txheej txheem tswj uas Multics ntawm mainframes tsis tuaj yeem siv tom qab ntau pua tus txiv neej-xyoo ntawm kev txhim kho. Unix qhov tsis txaus (xws li cov ntaub ntawv cov qauv ntawm cov ntaub ntawv kaw lus) tau qhia thiab tso tawm raws li nws cov kev tsim kho tshiab (xws li plhaub I / O redirection).

dc

Robert Morris qhov sib txawv ntawm qhov sib txawv ntawm lub tshuab xam zauv lej hauv tsev qiv ntawv siv cov kev txheeb xyuas qhov yuam kev los txiav txim siab qhov xav tau ntawm txhua kauj ruam kom ua tiav cov txiaj ntsig ntawm cov neeg siv tshwj xeeb. Nyob rau xyoo 1968 NATO Software Engineering Conference, hauv kuv daim ntawv ntawm software Cheebtsam, kuv tau thov cov txheej txheem siv uas tuaj yeem tsim cov txiaj ntsig ntawm qhov xav tau qhov tseeb, tab sis kuv tsis paub yuav ua li cas siv lawv hauv kev xyaum. dc tseem yog ib qho kev pab cuam kuv paub txog qhov uas tuaj yeem ua qhov no.

typo cov

Typo xaj cov lus hauv cov ntawv raws li lawv qhov zoo sib xws rau cov ntawv nyeem. Cov ntawv sau tsis zoo li 'hte' zoo li yuav xaus rau qhov kawg ntawm daim ntawv teev npe. Robert Morris tau zoo siab hais tias qhov kev zov me nyuam yuav ua haujlwm sib npaug ntawm txhua hom lus. Txawm hais tias typo tsis pab koj nrhiav cov lus tsis raug, nws yog ib qho godsend rau txhua hom ntawv thiab tau txais txiaj ntsig zoo ua ntej qhov tsis tshua muaj txiaj ntsig tab sis muaj tseeb dua phau ntawv txhais lus sau ntawv tuaj nrog.

Typo yog qhov xav tsis thoob sab hauv li nws nyob sab nraud. Qhov zoo sib xws ntsuas algorithm yog nyob ntawm qhov zaus ntawm qhov tshwm sim ntawm trigrams, uas suav nrog 26x26x26 array. Tsis tshua muaj qhov chaw txaus hauv lub cim xeeb me me rau cov txee ib-byte, yog li cov tswv yim tau siv los nthuav cov lej loj rau hauv cov txee me. Txhawm rau kom tsis txhob hla dhau, cov txee tau hloov kho raws li qhov tshwm sim, tswj kev kwv yees ntawm lub logarithm ntawm tus nqi txee.

ua eqn

Nrog rau qhov tshwm sim ntawm phototypesetting, nws tau los ua, tab sis txaus ntshai heev, los tsim cov lej classical. Lorinda Cherry txiav txim siab los tsim cov lus piav qhia qib siab dua, thiab Brian Kernighan sai sai tau koom nrog nws. Lawv qhov kev ua tau zoo tshaj plaws yog los nthuav qhia qhov ncauj kab lis kev cai hauv kev sau ntawv, uas yog vim li cas eqn tau dhau los ua qhov xav tsis thoob yooj yim kawm. Thawj tus lej qhia lus ua ntej ntawm nws hom, eqn tau pom kev txhim kho me ntsis txij thaum ntawd los.

kev teeb tsa

Brenda Baker pib tsim nws lub Fortan-rau-Ratfor converter tawm tsam cov lus qhia ntawm nws tus thawj coj, kuv. Kuv xav tias qhov no yuav ua rau muaj kev hloov pauv tshwj xeeb ntawm cov ntawv qub. Nws yuav pub dawb ntawm tus neeg teb xov tooj, tab sis txwv tsis pub nyeem ntau dua li Fortran code zoo. Brenda ua pov thawj kuv yuam kev. Nws pom tias txhua qhov kev pab cuam Fortran muaj cov qauv tsim qauv. Cov programmers nyiam daim ntawv canonical ntau dua li qhov lawv tus kheej tau sau ua ntej.

pascal

Cov syntax diagnostics nyob rau hauv lub compiler tsim los ntawm Sue Graham pawg ntawm Berkeley yog qhov tseem ceeb tshaj plaws uas kuv tau pom - thiab lawv tsis siv neeg. Yog hais tias muaj ib tug syntax yuam kev, lub compiler qhia koj mus ntxig ib tug token mus txuas ntxiv parsing. Tsis muaj kev sim piav qhia qhov tsis raug. Nrog rau qhov compiler no, kuv kawm Pascal nyob rau yav tsaus ntuj, tsis muaj phau ntawv ntawm tes.

qhov chaw

Module zais hauv WWB (Writer's Workbench) pob parts Lorinda Cherry txiav txim siab qee qhov ntawm kev hais lus rau cov lus hauv cov ntawv Askiv raws li phau ntawv txhais lus me me, kev sau ntawv thiab cov qauv sau ntawv. Raws li cov lus piav qhia no, WWB qhov kev pab cuam qhia cov cim stylometric ntawm cov ntawv nyeem, xws li kev nthuav dav ntawm adjectives, subordinate clauses thiab cov kab lus nyuaj. Thaum Lorinda raug xam phaj hauv NBC's Today show thiab tham txog WWB qhov kev kuaj kab lus tshiab, nws yog thawj zaug hais txog Unix hauv TV.

ua egpr

Al Aho vam tias nws qhov kev txiav txim siab tsis tu ncua kev ntsuas ntsuas yuav ua tau zoo dua Ken's classic non-deterministic parser. Hmoov tsis zoo, tom kawg tau ua tiav ib qho kev hla dhau los ntawm cov kab lus tsis tu ncua kom txog rau thaum egrep ua nws tus kheej txiav txim siab automation. Txhawm rau tseem yeej qhov kev sib tw no, Al Aho hla kev foom tsis zoo ntawm kev loj hlob ntawm lub xeev cov lus ntawm lub automaton los ntawm kev tsim ib txoj hauv kev los tsim cov yoov tsuas yog cov rooj nkag uas tau mus xyuas thaum lub sijhawm lees paub.

roob ris

Luca Cardelli's charming meta-program rau Blit windowing system tso tawm cov kab laum virtual uas taug kev ncig ntawm qhov chaw khoob khoob, tom ntau thiab ntau ntawm cov npoo ntawm lub qhov rais nquag.

Tej kev xav

Txawm hais tias nws tsis pom los ntawm sab nraud, txoj kev xav thiab algorithms tau ua lub luag haujlwm txiav txim siab hauv kev tsim ntawm feem ntau ntawm cov kev pabcuam no: typo, dc, struct, pascal, egrep. Qhov tseeb, nws yog qhov txawv txav ntawm kev siv txoj kev xav uas yog qhov xav tsis thoob.

Cov thawj kws sau ntawv ntawm ze li ntawm ib nrab ntawm cov npe-pascal, struct, qhov chaw, eqn-yog cov poj niam, uas zoo heev tshaj cov pej xeem ntawm cov poj niam hauv computer science.

Douglas McIlroy
Peb Hlis, 2020


Tau qhov twg los: www.hab.com

Ntxiv ib saib