Хамгийн шилдэг Unix програмууд

Өгүүллийн зохиогч Дуглас Макилрой бол Америкийн математикч, инженер, програмист юм. Тэрээр Unix үйлдлийн систем дэх дамжуулах хоолой, бүрэлдэхүүн хэсэг рүү чиглэсэн програмчлалын зарчмууд болон хэд хэдэн анхны хэрэгслүүдийг хөгжүүлснээрээ алдартай: spell, diff, sort, join, speak, tr.

Заримдаа та үнэхээр гайхалтай хөтөлбөрүүдтэй тааралддаг. Би ой санамжаа ухаж үзсэнийхээ дараа олон жилийн турш Unix-ийн жинхэнэ үнэт чулуунуудын жагсаалтыг гаргалаа. Үндсэндээ эдгээр нь маш ховор бөгөөд тийм ч шаардлагагүй програмууд юм. Гэхдээ тэднийг бусдаас ялгаруулдаг зүйл бол тэдний өвөрмөц чанар юм. Би тэдний хэн нэгнийх нь санааг өөрөө гаргасан гэж төсөөлж ч чадахгүй байна.

Хуваалцана уу, ямар нэвтрүүлэг танд маш их сэтгэгдэл төрүүлсэн бэ?

PDP-7 Unix

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

dc

Роберт Моррисын хувьсах нарийвчлалтай ширээний тооцоолуурын математикийн сан нь хэрэглэгчийн тодорхойлсон нарийвчлалын үр дүнд хүрэхийн тулд алхам бүрт шаардагдах нарийвчлалыг тодорхойлохын тулд урвуу алдааны шинжилгээг ашигласан. 1968 оны НАТО-ийн Програм хангамжийн инженерийн бага хурал дээр би програм хангамжийн бүрэлдэхүүн хэсгүүдийн талаархи илтгэлдээ хүссэн үр дүнг гаргах боломжтой лавлагааны журмыг санал болгосон боловч тэдгээрийг практикт хэрхэн хэрэгжүүлэхээ мэдэхгүй байв. dc бол үүнийг хийж чадах цорын ганц программ хэвээр байна.

бичгийн машин

Үг үсгийн алдаа нь текстийн бусад хэсгүүдтэй ижил төстэй байдлаар нь текст дэх үгсийг эрэмбэлдэг. "Hte" гэх мэт үсгийн алдаа нь жагсаалтын төгсгөлд байх хандлагатай байдаг. Роберт Моррис энэ хөтөлбөр ямар ч хэл дээр адилхан сайн ажиллана гэж бахархалтайгаар хэлэв. Хэдий үсгийн алдаа нь дуудлагын алдааг олоход тус болохгүй ч гэсэн энэ нь бүх бичээчдэд зориулсан бурхны хишиг байсан бөгөөд тийм ч сонирхолтой биш боловч илүү нарийвчлалтай толь бичгийн зөв бичгийн алдаа шалгахаас өмнө маш хэрэгтэй байсан.

Үсгийн алдаа нь гаднах шигээ дотроо гэнэтийн зүйл юм. Ижил төстэй байдлын хэмжилтийн алгоритм нь 26x26x26 массиваар тоологддог триграммуудын давтамж дээр суурилдаг. Өчүүхэн санах ойд нэг байт тоолуурт хангалттай зай байсан тул олон тооны тоог жижиг тоолуур болгон шахах схемийг хэрэгжүүлсэн. Халилтаас зайлсхийхийн тулд тоолуурыг магадлалын үндсэн дээр шинэчилж, тоолуурын утгын логарифмын тооцооллыг хадгалсан.

экн

Фото хэвлэх технологи бий болсноор математикийн сонгодог тэмдэглэгээ хийх боломжтой болсон ч аймшигтай уйтгартай болсон. Лоринда Черри дээд түвшний дүрслэх хэлийг хөгжүүлэхээр шийдсэн бөгөөд Брайан Керниган удалгүй түүнтэй нэгдсэн. Тэдний гайхалтай алхам нь аман уламжлалыг бичгээр илэрхийлэх явдал байсан тул eqn сурахад гайхалтай хялбар болсон. Энэ төрлийн анхны математик илэрхийллийн хэлний урьдчилсан боловсруулагч eqn нь түүнээс хойш төдийлөн сайжирсангүй.

бүтэц

Бренда Бейкер өөрийн босс миний зөвлөгөөний эсрэг Fortan-to-Ratfor хөрвүүлэгчээ хөгжүүлж эхлэв. Энэ нь эх бичвэрийг тусгайлан өөрчлөхөд хүргэж болзошгүй гэж би бодсон. Энэ нь операторын дугаараас ангид байх болно, гэхдээ сайн бүтэцтэй Фортран кодоос илүү унших боломжгүй. Бренда миний бурууг нотолсон. Тэрээр Fortran програм бүр каноник бүтэцтэй байдаг гэдгийг олж мэдсэн. Програмистууд өөрсдөө анх бичсэн зүйлээсээ илүү каноник хэлбэрийг илүүд үздэг байв.

Pascal

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

эд анги

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

эгреп

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

наймалж

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

Зарим ерөнхий бодол

Хэдийгээр энэ нь гаднаас харагдахгүй ч гэсэн эдгээр программуудын ихэнхийг бүтээхэд онол, алгоритмууд шийдвэрлэх үүрэг гүйцэтгэсэн: typo, dc, struct, pascal, egrep. Үнэн хэрэгтээ энэ онолын ер бусын хэрэглээ нь хамгийн гайхмаар зүйл юм.

Жагсаалтын бараг тал хувь нь буюу паскаль, бүтэц, хэсгүүд, eqn-ын анхны зохиогчид нь эмэгтэйчүүд байсан бөгөөд энэ нь компьютерийн шинжлэх ухаанд эмэгтэйчүүдийн хүн ам зүйн эзлэх хувь хэмжээнээс хамаагүй өндөр юм.

Дуглас Макилрой
Гуравдугаар сар, 2020


Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх