Самыя выдатныя праграмы Unix

Аўтар артыкула Дуглас Макілрай - амерыканскі матэматык, інжынер і праграміст. Найбольш вядомы распрацоўкай канвеера ў аперацыйнай сістэме Unix, прынцыпаў кампанентна-арыентаванага праграмавання і некалькіх арыгінальных утыліт: spell, diff, sort, join, speak, tr.

Часам вам трапляюцца сапраўды цудоўныя праграмы. Пакапаўшыся ў памяці, я склаў спіс сапраўдных жамчужын Unix за ўсе гады. У асноўным, гэта даволі рэдкія і не такія неабходныя праграмы. Але што іх вылучае, дык гэта арыгінальнасць. Нават уявіць не магу, каб мне самому прыйшла ідэя якой-небудзь з іх.

Падзяліцеся, якія праграмы вас таксама настолькі ўразілі?

PDP-7 Unix

Для пачатку, сама сістэма PDP-7 Unix. Яе прастата і моц прымусілі мяне перайсці з магутнага мэйнфрэйма на малюсенькую машыну. Тут квінтэсенцыя іерархічнай файлавай сістэмы, асобная абалонка і кіраванне працэсамі на ўзроўні карыстальніка, што Multics на мэйнфрэймах не змагла рэалізаваць пасля сотняў чалавека-гадоў распрацоўкі. Недахопы Unix (напрыклад, структура запісаў у файлавай сістэме) былі гэтак жа павучальнымі і вызваляльнымі, як і яе навіны (напрыклад, перанакіраванне ўводу-вываду ў абалонцы).

dc

Матэматычная бібліятэка для настольнага калькулятара з зменнай дакладнасцю Роберта Морыса выкарыстоўвала зваротны аналіз памылак для вызначэння дакладнасці, неабходнай на кожным кроку для дасягнення зададзенай карыстальнікам дакладнасці выніку. На канферэнцыі НАТА па праграмнай інжынерыі 1968 гады ў сваім дакладзе аб праграмных кампанентах я прапанаваў эталонныя працэдуры, якія могуць даць вынік любой жаданай дакладнасці, але я не ведаў, як іх рэалізаваць на практыку. dc да гэтага часу застаецца адзінай вядомай мне праграмай, здольнай на такое.

памылка друку

Typo парадкуе словы ў тэксце па іх падабенстве з астатнім тэкстам. Ачапяткі накшталт 'hte' маюць тэндэнцыю размяшчацца ў канцы спісу. Роберт Морыс з гонарам казаў, што праграма будзе аднолькава добра працаваць для любой мовы. Хоць typo не дапамагае знайсці фанетычныя памылкі, яна стала сапраўднай знаходкай для ўсіх, хто набірае тэкст, і прынесла шмат карысці да таго, як з'явілася значна менш цікавая, але больш дакладная праверка арфаграфіі па слоўніку.

Typo настолькі ж нечакана ўладкована ўсярэдзіне, як і знадворку. Алгарытм вымярэння падабенства заснаваны на частаце з'яўлення триграмм, якія лічацца ў масіве 26×26×26. У малюсенькай памяці ледзь хапала месцы для аднабайтавых лічыльнікаў, таму была рэалізаваная схема сціску вялікіх лікаў у маленькія лічыльнікі. Каб пазбегнуць перапаўнення, лічыльнікі абнаўляліся на імавернаснай аснове, падтрымліваючы адзнаку лагарыфма значэння лічыльніка.

eqn

Са з'яўленнем фотанабору стала магчымым, але жудасна стомна выводзіць класічную матэматычную натацыю. Лорында Чэры вырашыла распрацаваць мову апісання больш высокага ўзроўню, і неўзабаве да яе далучыўся Браян Керніган. Іх бліскучы ход складаўся ў тым, каб выказаць вусную традыцыю ў пісьмовым выглядзе, таму eqn аказаўся дзіўна простым у вывучэнні. Першы ў сваім родзе прэпрацэсар мовы апісання матэматычных выразаў, eqn з тых часоў амаль не паляпшаўся.

структура

Брэнда Бэйкер задумала распрацоўку свайго канвертара Fortan-to-Ratfor насуперак радзе свайго начальніка мяне. Я падумаў, што гэта можа прывесці да спецыяльнага пераўпарадкавання зыходнага тэксту. Ён будзе вольны ад нумароў аператараў, але ў астатнім не больш за чытэльны, чым пісьменна структураваны код Fortran. Брэнда даказала, што я памыляюся. Яна выявіла, што ў кожнай праграмы Fortran ёсць кананічна структураваная форма. Праграмісты аддавалі перавагу кананічнай форме, а не тым, што самі першапачаткова напісалі.

Паскаль

Дыягностыка сінтаксісу ў кампілятары, створаным групай Сью Грэхем у Берклі, была самай карыснай з усіх, што я калі-небудзь бачыў – і яна праводзілася аўтаматычна. Пры сінтаксічнай памылцы кампілятар прапануе ўставіць лексему, каб працягнуць сінтаксічны аналіз. Ніякіх спробаў патлумачыць, што ня так. З гэтым кампілятарам я вывучыў Паскаль за адзін вечар, не маючы пад рукой ніякага кіраўніцтва.

часткі

Схаваны ўсярэдзіне пакета WWB (Writer's Workbench) модуль parts Лорынды Чэры вызначае часціны мовы для слоў у тэксце на англійскай мове на базе толькі маленькага слоўніка, правілах арфаграфіі і граматыкі. Па гэтай анатацыі праграма WWB выводзіць стыламетрычныя паказчыкі тэксту, такія як перавага прыметнікаў, даданых прапаноў і складаных прапаноў. Калі Лорында дала інтэрв'ю ў тэлеперадачы Today на канале NBC і распавяла аб інавацыйнай праверцы граматыкі ў тэкстах WWB, гэта была першая згадка Unix на тэлебачанні.

чапляцца

Аль Ахо разлічваў, што яго дэтэрмінаваны распазнавальнік рэгулярных выразаў абгоніць класічны недэтэрмінаваны распазнавальнік Кена. Нажаль, апошні ўжо завяршаў праход па складаных рэгулярных выразах, пакуль egrep будаваў сваю дэтэрмінаваную аўтаматыку. Каб усёткі перамагчы ў гэтай гонцы, Аль Ахо абыйшоў праклён экспанентнага росту табліцы станаў аўтамата, вынайдучы спосаб пабудовы на лёце толькі тых запісаў табліцы, якія сапраўды наведваюцца падчас распазнання.

крабы

Чароўная мета-праграма Лукі Кардэлі для аконнай сістэмы Blit выпускала віртуальных крабаў, якія блукалі па пустой прасторы экрана, усё больш і больш адкусваючы краю актыўных вокнаў.

Некаторыя агульныя думкі

Хоць гэта не відаць звонку, але тэорыя і алгарытмы згулялі вырашальную ролю ў стварэнні большасці гэтых праграм: typo, dc, struct, pascal, egrep. Насамрэч больш за ўсё дзівіць менавіта незвычайнае ўжыванне тэорыі.

Арыгінальнымі аўтарамі амаль паловы спісу - pascal, struct, parts, eqn - былі жанчыны, што значна пераўзыходзіць дэмаграфічную долю жанчын у галіне кампутарных навук.

Дуглас Макілрай
Сакавік, 2020


Крыніца: habr.com

Дадаць каментар