Эң чоң Unix программалары

Макаланын автору Дуглас Макилрой америкалык математик, инженер жана программист. Ал Unix операциялык системасында конвейерди иштеп чыгуу, компоненттерге багытталган программалоо принциптери жана бир нече оригиналдуу утилиталары менен белгилүү: spell, diff, sort, join, speak, tr.

Кээде чынында эле сонун программаларга туш болосуң. Эс-тутумду изилдегенден кийин, мен бир нече жылдар бою чыныгы Unix асыл таштарынын тизмесин түздүм. Негизинен, бул өтө сейрек жана өтө зарыл эмес программалар. Бирок аларды өзгөчөлөнтүп турган нерсе алардын оригиналдуулугу. Мен алардын бирөөнүн идеясын өзүм ойлоп тапканымды элестете албайм.

Сизге дагы кандай программалар абдан таасирленди?

PDP-7 Unix

Баштоочулар үчүн, PDP-7 Unix системасы өзү. Анын жөнөкөйлүгү жана күчү мени күчтүү негизги компьютерден кичинекей машинага өтүүгө түрткү берди. Бул негизги фреймдеги Multics жүздөгөн адам жылдык өнүгүүдөн кийин жетише албаган квинтессенциалдуу иерархиялык файл системасы, өзүнчө кабык жана колдонуучу деңгээлиндеги процессти башкаруу. Unixтин кемчиликтери (мисалы, файл тутумунун жазуу түзүмү) анын инновациялары (мисалы, кабык киргизүү/чыгаруу багыттоосу) сыяктуу эле үйрөтүүчү жана боштондукка алып келген.

dc

Роберт Морристин Variable Precision Desktop Calculator Math Library колдонуучу белгилеген жыйынтык тактыгына жетүү үчүн ар бир кадамда талап кылынган тактыкты аныктоо үчүн тескери ката анализин колдонгон. 1968-жылы НАТОнун программалык камсыздоо боюнча инженердик конференциясында программалык камсыздоонун компоненттери жөнүндөгү баяндамамда мен каалаган тактыкты бере турган маалымдама процедураларын сунуштагам, бирок аларды кантип иш жүзүндө колдонууну билген эмесмин. dc дагы эле мен билген, муну жасай ала турган жалгыз программа.

ката

Typo тексттеги сөздөрдү тексттин калган бөлүгүнө окшоштугуна жараша иреттейт. "Hte" сыяктуу каталар тизменин аягында болот. Роберт Моррис бул программа бардык тилдер үчүн бирдей жакшы иштей турганын сыймыктануу менен айтты. Жазуунун катасы фонетикалык каталарды табууга жардам бербесе да, бул бардык терүүчүлөр үчүн чыныгы жакшылык болду жана анча кызыктуу эмес, бирок так сөздүктүн орфографиясын текшергич пайда болгонго чейин бир топ жакшылыктарды жасады.

Типпа сырткыдай эле, ичинде күтүүсүз. Окшоштукту өлчөө алгоритми 26×26×26 массивинде саналган триграммалардын пайда болуу жыштыгына негизделген. Кичинекей эс тутумда бир байт эсептегичтер үчүн араң жетиштүү орун бар болчу, ошондуктан чоң сандарды кичинекей эсептегичтерге кысуу схемасы ишке ашырылган. Толуп кетпеш үчүн эсептегичтер эсептегичтин маанисинин логарифминин баасын сактоо менен ыктымалдык негизде жаңыртылган.

экн

Фототиптиктин пайда болушу менен классикалык математикалык белгилерди басып чыгаруу мүмкүн, бирок өтө түйшүктүү болуп калды. Лоринда Черри жогорку деңгээлдеги сүрөттөө тилин иштеп чыгууну чечти жана көп өтпөй Брайан Керниган ага кошулду. Алардын эң сонун кадамы оозеки салтты жазууга киргизүү болгон, ошондуктан экн үйрөнүү абдан оңой болгон. Мындай түрдөгү биринчи математикалык туюнтма тилинин препроцессору, eqn ошондон бери анча жакшыртылган эмес.

структура

Бренда Бейкер өзүнүн Fortan-to-Ratfor конверторун жетекчисинин кеңешине каршы иштеп баштады. Бул түпнуска тексттин өзгөчө иретин өзгөртүүгө алып келиши мүмкүн деп ойлогом. Ал билдирүү номерлери жок болот, бирок жакшы структураланган Fortran кодунан караганда окулбайт. Бренда мени туура эмес деп далилдеди. Ал ар бир Fortran программасынын канондук структураланган формасы бар экенин аныктады. Программисттер өздөрү жазгандарына караганда канондук форманы артык көрүшкөн.

Pascal

Берклидеги Сью Грэмдин тобу тарабынан түзүлгөн компилятордогу синтаксис диагностикасы мен көргөн эң пайдалуу болду — жана ал автоматтык түрдө аткарылды. Синтаксис катасы боюнча компилятор талдоону улантуу үчүн белгини киргизүүнү сунуштайт. Эмне туура эмес экенин түшүндүрүүгө аракет жок. Бул компилятордун жардамы менен мен Паскалды бир кечте эч кандай колдонмосуз үйрөндүм.

бөлүктөр

WWB (Writer's Workbench) модулунун ичинде жашырылган parts Лоринда Черри кичинекей сөздүктүн, орфографиянын жана грамматикалык эрежелердин негизинде англисче тексттеги сөздөрдүн кеп бөлүктөрүн аныктайт. Бул аннотациянын негизинде WWB программасы сын атоочтордун, багынуучу сүйлөмдөрдүн жана татаал сүйлөмдөрдүн таралышы сыяктуу тексттин стилометрикалык көрсөткүчтөрүн көрсөтөт. Лоринда NBC телеканалына маек куруп, WWB тексттериндеги инновациялык грамматиканы текшерүү жөнүндө сүйлөшкөндө, бул Unix жөнүндө сыналгыда биринчи жолу айтылган.

egrep

Аль Ахо өзүнүн детерминисттик регулярдуу туюнтма чечүүчүсүнөн Кендин классикалык детерминисттик эмес чечүүчүсүн кууп чыгат деп күткөн. Тилекке каршы, акыркысы буга чейин эле татаал туруктуу сөз айкаштары аркылуу өтүп жаткан egrep өзүнүн детерминисттик автоматикасын курган. Бул жарышта дагы эле жеңишке жетүү үчүн, Аль Ахо автоматтын штаттык таблицасынын экспоненциалдуу өсүшүнө каргыштан айланып, таблицадагы таануу учурунда иш жүзүндө кирген жазууларды гана чымында куруунун жолун ойлоп тапты.

краб

Лука Карделлинин Blit терезе системасы үчүн сүйкүмдүү мета-программасы бош экран мейкиндигин кыдырып, активдүү терезелердин четтерин тиштеп алган виртуалдык крабдарды чыгарды.

Кээ бир жалпы ойлор

Сырттан көрүнбөсө да, бул программалардын көбүн түзүүдө теория жана алгоритмдер чечүүчү роль ойногон: typo, DC, struct, pascal, egrep. Чындыгында, эң таң калыштуусу – бул теориянын адаттан тыш колдонулушу.

Тизменин дээрлик жарымына жакыны — паскаль, структура, бөлүктөр, eqn — адегенде аялдар тарабынан жазылган, бул информатикадагы аялдардын демографиясынан алда канча көп.

Дуглас Макилрой
Март, 2020-жыл


Source: www.habr.com

Комментарий кошуу