Ən Böyük Unix Proqramları

Məqalənin müəllifi Duqlas Makilroy amerikalı riyaziyyatçı, mühəndis və proqramçıdır. O, Unix əməliyyat sistemində boru kəmərini, komponent yönümlü proqramlaşdırma prinsiplərini və bir neçə orijinal kommunalları inkişaf etdirməklə məşhurdur: spell, diff, sort, join, speak, tr.

Bəzən həqiqətən gözəl proqramlarla rastlaşırsınız. Yaddaşımı araşdırdıqdan sonra illər ərzində bəzi həqiqi Unix daşlarının siyahısını tərtib etdim. Əsasən, bunlar olduqca nadir və o qədər də lazım olmayan proqramlardır. Ancaq onları fərqləndirən orijinallığıdır. Heç ağlıma da gətirə bilmirəm ki, onlardan hər hansı birinin ideyasını özüm ortaya qoyuram.

Paylaşın, hansı verilişlər də sizi bu qədər təsirləndirdi?

PDP-7 Unix

Başlayanlar üçün PDP-7 Unix sisteminin özü. Onun sadəliyi və gücü məni güclü əsas sistemdən kiçik bir maşına keçməyə məcbur etdi. Bu, əsas çərçivələrdəki Multics-in yüzlərlə insan illik inkişafdan sonra həyata keçirə bilmədiyi kvintessensial iyerarxik fayl sistemi, ayrıca qabıq və istifadəçi səviyyəsində proses nəzarətidir. Unix-in çatışmazlıqları (məsələn, fayl sisteminin qeyd strukturu) onun yenilikləri (məsələn, shell I/O yönləndirməsi) kimi ibrətamiz və azadedici idi.

dc

Robert Morrisin dəyişən dəqiqlikli masa üstü kalkulyatoru riyaziyyat kitabxanası istifadəçi tərəfindən müəyyən edilmiş dəqiq nəticə əldə etmək üçün hər addımda tələb olunan dəqiqliyi müəyyən etmək üçün tərs xəta analizindən istifadə etmişdir. 1968-ci ildə NATO-nun Proqram Mühəndisliyi Konfransında proqram komponentləri ilə bağlı məqaləmdə mən istənilən dəqiqlikdə nəticə verə biləcək istinad prosedurlarını təklif etdim, lakin onları praktikada necə tətbiq edəcəyimi bilmirdim. dc hələ də bunu edə bilən yeganə proqramdır.

yazın

Yazı səhvi mətndəki sözləri mətnin qalan hissəsi ilə oxşarlığına görə sıralayır. "hte" kimi yazım səhvləri siyahının sonunda bitir. Robert Morris qürurla dedi ki, proqram istənilən dildə eyni dərəcədə yaxşı işləyəcək. Yazı xətası fonetik səhvləri tapmaqda sizə kömək etməsə də, bu, bütün çapçılar üçün bir lütf idi və daha az maraqlı, lakin daha dəqiq lüğətin orfoqrafiya yoxlanışı gəlməmişdən əvvəl çox faydalı idi.

Yazı xətası çöldə olduğu kimi içəridə də gözlənilməzdir. Oxşarlığın ölçülməsi alqoritmi 26x26x26 massivdə hesablanan triqramların baş vermə tezliyinə əsaslanır. Kiçik yaddaşda tək baytlıq sayğaclar üçün demək olar ki, kifayət qədər yer var idi, ona görə də böyük ədədləri kiçik sayğaclara sıxışdırmaq üçün sxem həyata keçirildi. Daşmanın qarşısını almaq üçün sayğaclar sayğac dəyərinin loqarifmini təxmin etməklə, ehtimal əsasında yeniləndi.

ekv

Fototipləmənin meydana çıxması ilə klassik riyazi qeydlər yaratmaq mümkün, lakin olduqca yorucu oldu. Lorinda Cherry daha yüksək səviyyəli təsvir dilini inkişaf etdirmək qərarına gəldi və Brian Kernighan tezliklə ona qoşuldu. Onların parlaq hərəkəti şifahi ənənəni yazılı şəkildə ifadə etmək idi, buna görə də eqn öyrənmək təəccüblü dərəcədə asan oldu. Bu cür ilk riyazi ifadə dilinin preprosessoru olan eqn o vaxtdan bəri çox az təkmilləşmişdir.

quruluş

Brenda Beyker, müdirinin məsləhətinə qarşı Fortan-Ratfor çeviricisini inkişaf etdirməyə başladı. Düşündüm ki, bu, orijinal mətnin xüsusi olaraq yenidən sıralanması ilə nəticələnə bilər. O, operator nömrələrindən azad olacaq, lakin əks halda yaxşı strukturlaşdırılmış Fortran kodundan daha oxunaqlı olmayacaq. Brenda məni səhv saldı. O, aşkar etdi ki, hər bir Fortran proqramının kanonik quruluşlu forması var. Proqramçılar əvvəlcə yazdıqlarından daha çox kanonik formaya üstünlük verdilər.

paskal

Berklidə Sue Graham qrupu tərəfindən qurulan kompilyatordakı sintaksis diaqnostikası indiyə qədər gördüyüm ən faydalısı idi və onlar avtomatik idi. Sintaksis xətası olarsa, tərtibçi təhlili davam etdirmək üçün sizdən işarə daxil etməyi təklif edir. Nəyin səhv olduğunu izah etməyə cəhd yoxdur. Bu kompilyatorla mən Paskal dilini heç bir dərslik olmadan bir axşam öyrəndim.

hissələri

Modul WWB (Writer's Workbench) paketində gizlənir parts Lorinda Cherry yalnız kiçik lüğətə, orfoqrafiya və qrammatika qaydalarına əsaslanaraq ingilis mətnindəki sözlər üçün nitq hissələrini müəyyən edir. Bu annotasiyaya əsasən, WWB proqramı mətnin stilometrik göstəricilərini, məsələn, sifətlərin, tabe bəndlərin və mürəkkəb cümlələrin yayılması kimi göstərir. Lorinda NBC-nin Today şousunda müsahibə verəndə və WWB-nin innovativ qrammatik yoxlanışı haqqında danışanda, televiziyada Unix haqqında ilk xatırlatma oldu.

egrep

Al Aho ümid edirdi ki, onun deterministik nizamlı ifadə analizatoru Kenin klassik qeyri-deterministik təhlilçisindən üstün olacaq. Təəssüf ki, sonuncu artıq mürəkkəb nizamlı ifadələr vasitəsilə keçidi tamamlayırdı egrep öz deterministik avtomatlaşdırmasını qurdu. Bu yarışda hələ də qalib gəlmək üçün Al Aho, yalnız tanınma zamanı həqiqətən ziyarət edilmiş cədvəl girişlərini tez qurmaq üçün bir üsul icad edərək avtomatın vəziyyət cədvəlinin eksponensial artımının lənətindən yayındı.

crabs

Luca Cardelli-nin Blit pəncərə sistemi üçün cazibədar meta-proqramı boş ekran məkanında dolaşan, aktiv pəncərələrin getdikcə daha çox kənarlarını dişləyən virtual xərçəngləri buraxdı.

Bəzi ümumi fikirlər

Kənardan görünməsə də, bu proqramların əksəriyyətinin yaradılmasında nəzəriyyə və alqoritmlər həlledici rol oynamışdır: typo, dc, struct, pascal, egrep. Əslində, ən təəccüblü olan nəzəriyyənin qeyri-adi tətbiqidir.

Siyahının təxminən yarısının orijinal müəllifləri - paskal, struktur, hissələr, eqn - qadınlar idi ki, bu da kompüter elmində qadınların demoqrafik payını xeyli üstələyir.

Duqlas Makilroy
Mart, 2020


Mənbə: www.habr.com

Добавить комментарий