Program Unix Paling Apik

Penulis artikel kasebut, Douglas McIlroy, yaiku ahli matematika, insinyur, lan programmer Amerika. Dheweke misuwur amarga ngembangake pipa ing sistem operasi Unix, prinsip pemrograman berorientasi komponen, lan sawetara utilitas asli: spell, diff, sort, join, speak, tr.

Kadhangkala sampeyan nemokake program sing apik banget. Sawise ngobrak-abrik memoriku, aku nggawe dhaptar permata Unix sing nyata sajrone pirang-pirang taun. Sejatine, iki cukup langka lan ora perlu program. Nanging sing ndadekake wong-wong mau katon asli yaiku asline. Aku malah ora bisa mbayangno manawa aku dhewe duwe ide babagan apa wae.

Nuduhake program apa sampeyan uga kesengsem?

PDP-7 Unix

Kanggo wiwitan, sistem PDP-7 Unix dhewe. Kesederhanaan lan kekuwatane nggawe aku pindhah saka kerangka utama sing kuat menyang mesin cilik. Iki minangka sistem file hierarki sing paling penting, cangkang kapisah, lan kontrol proses tingkat pangguna sing ora bisa ditindakake dening Multics ing mainframe sawise pembangunan atusan taun. Kekurangan Unix (kayata struktur rekaman sistem file) padha karo instruktif lan mbebasake minangka inovasi (kayata pangalihan shell I/O).

dc

Robert Morris 'Variabel Precision Desktop Calculator Math Library nggunakake analisis kesalahan kuwalik kanggo nemtokake presisi sing dibutuhake ing saben langkah kanggo entuk presisi asil sing ditemtokake pangguna. Ing Konferensi Teknik Perangkat Lunak NATO 1968, ing laporan babagan komponen piranti lunak, aku ngusulake prosedur referensi sing bisa ngasilake akurasi sing dikarepake, nanging aku ora ngerti carane ngetrapake. dc isih mung program aku ngerti sing bisa nindakake iki.

typo

Typo ngatur tembung ing teks miturut padha karo liyane saka teks. Ejaan sing salah kaya 'hte' cenderung ana ing pungkasan dhaptar. Robert Morris kanthi bangga ujar manawa program kasebut bakal digunakake kanthi apik kanggo basa apa wae. Senajan salah ketik ora mbantu sampeyan nemokake kesalahan fonetik, iku pancen mupangati kanggo kabeh panyetel huruf, lan nindakake akeh sing apik sadurunge pamriksa ejaan kamus sing kurang menarik nanging luwih akurat teka.

Typo mung ora dikarepke ing njero kaya ing njaba. Algoritma pangukuran mirip adhedhasar frekuensi kedadeyan trigram, sing diitung ing array 26 Γ— 26 Γ— 26. Memori cilik meh ora duwe papan sing cukup kanggo counter siji-byte, mula skema dileksanakake kanggo ngompres jumlah gedhe dadi counter cilik. Supaya ora kebanjiran, counters padha dianyari ing basis probabilistik, ngramut ngira logaritma saka Nilai counter.

eqn

Kanthi tekane phototypesetting, dadi bisa, nanging banget mboseni, kanggo nyithak notasi matematika klasik. Lorinda Cherry mutusake kanggo ngembangake basa deskripsi tingkat sing luwih dhuwur, lan ora suwe Brian Kernigan gabung karo dheweke. Gerakane sing apik yaiku nulis tradhisi lisan, mula eqn gampang banget kanggo sinau. Preprocessor basa ekspresi matematika pisanan saka jinise, eqn durung saya apik wiwit iku.

strukture

Brenda Baker miwiti ngembangake konverter Fortan-to-Ratfor nglawan saran saka bos dheweke, aku. Aku panginten sing iki bisa mimpin kanggo reordering khusus saka teks asli. Iku bakal bebas saka nomer statement, nanging digunakake ora luwih diwaca saka kode Fortran uga-kabentuk. Brenda mbuktekaken kula salah. Dheweke nemokake manawa saben program Fortran duwe wangun kanonik sing terstruktur. Para programer luwih milih wangun kanonik, tinimbang apa sing ditulis dhewe.

Pascal

Diagnosa sintaksis ing kompilator sing digawe dening grup Sue Graham ing Berkeley minangka sing paling migunani sing wis dakdeleng-lan rampung kanthi otomatis. Ing kesalahan sintaks, compiler njaluk sampeyan masang token kanggo nerusake parsing. Ora ana upaya kanggo nerangake apa sing salah. Kanthi kompiler iki, aku sinau Pascal ing wayah sore tanpa manual.

bagean

Didhelikake ing modul WWB (Writer's Workbench). parts Lorinda Cherry nemtokake bagean wicara kanggo tembung ing teks Inggris adhedhasar mung kamus cilik, aturan ejaan lan grammar. Adhedhasar anotasi kasebut, program WWB nampilake indikator stilometri teks, kayata prevalensi adjectives, klausa subordinatif lan ukara kompleks. Nalika Lorinda diwawancarai ing NBC's Today lan ngomong babagan pemeriksaan tata basa sing inovatif ing teks WWB, iki minangka sebutan pertama Unix ing televisi.

egrep

Al Aho ngarepake solver ekspresi reguler deterministik kanggo ngatasi solver non-deterministik klasik Ken. Sayange, sing terakhir wis ngrampungake pass liwat ekspresi reguler rumit, nalika egrep mbangun otomatisasi deterministik dhewe. Kanggo isih menang lomba iki, Al Aho nemu ipat-ipat saka wutah eksponensial saka tabel negara saka automaton dening inventing cara kanggo mbangun ing fly mung sing entri ing meja sing bener dibukak sak pangenalan.

crabs

Meta-program nengsemake Luca Cardelli kanggo sistem windowing Blit dirilis crabs virtual sing roamed papan layar kosong, nresep saka sudhut windows aktif liyane lan liyane.

Sawetara pikirane umum

Sanajan ora katon saka njaba, teori lan algoritma nduweni peran penting kanggo nggawe sebagian besar program kasebut: typo, dc, struct, pascal, egrep. Nyatane, aplikasi teori sing ora biasa sing paling nggumunake.

SaklawasΓ© setengah saka dhaftar - pascal, struct, bagean, eqn - Originally ditulis dening wanita, adoh outnumbering demografi wanita ing ilmu komputer.

Douglas McIlroy
Maret, 2020


Source: www.habr.com

Add a comment