Π‘Π°ΠΌΡ‹Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Unix

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ Дуглас ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉΒ β€” амСриканский ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΈ программист. НаиболСС извСстСн Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚: spell, diff, sort, join, speak, tr.

Иногда Π²Π°ΠΌ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ΡΡ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Покопавшись Π² памяти, я составил список настоящих ΠΆΠ΅ΠΌΡ‡ΡƒΠΆΠΈΠ½ Unix Π·Π° всС Π³ΠΎΠ΄Ρ‹. Π’ основном, это довольно Ρ€Π΅Π΄ΠΊΠΈΠ΅ ΠΈ Π½Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠΆ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Но Ρ‡Ρ‚ΠΎ ΠΈΡ… выдСляСт, Ρ‚Π°ΠΊ это ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π”Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ½Π΅ самому ΠΏΡ€ΠΈΡˆΠ»Π° идСя ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· Π½ΠΈΡ….

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ вас Ρ‚ΠΎΠΆΠ΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ€Π°Π·ΠΈΠ»ΠΈ?

PDP-7 Unix

Для Π½Π°Ρ‡Π°Π»Π°, сама систСма PDP-7 Unix. Π•Ρ‘ простота ΠΈ ΠΌΠΎΡ‰ΡŒ заставили мСня ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΠΉΠ½Ρ„Ρ€Π΅ΠΉΠΌΠ° Π½Π° ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Π—Π΄Π΅ΡΡŒ квинтэссСнция иСрархичСской Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ Multics Π½Π° ΠΌΠ΅ΠΉΠ½Ρ„Ρ€Π΅ΠΉΠΌΠ°Ρ… Π½Π΅ смогла Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ послС сотСн Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎ-Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НСдостатки Unix (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, структура записСй Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС) Π±Ρ‹Π»ΠΈ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ ΠΏΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ Π΅Ρ‘ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅).

dc

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° c ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π ΠΎΠ±Π΅Ρ€Ρ‚Π° ΠœΠΎΡ€Ρ€ΠΈΡΠ° использовала ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ошибок для опрСдСлСния точности, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС для достиТСния Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ точности Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. На ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ НАВО ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ 1968 Π³ΠΎΠ΄Π° Π² своём Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… я ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» эталонныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ любой ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ точности, Π½ΠΎ я Π½Π΅ Π·Π½Π°Π», ΠΊΠ°ΠΊ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. dc Π΄ΠΎ сих ΠΏΠΎΡ€ остаётся СдинствСнной извСстной ΠΌΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, способной Π½Π° Ρ‚Π°ΠΊΠΎΠ΅.

typo

Typo упорядочиваСт слова Π² тСкстС ΠΏΠΎ ΠΈΡ… сходству с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ тСкстом. ΠžΡ‡Π΅ΠΏΡΡ‚ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ ‘hte’ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ списка. Π ΠΎΠ±Π΅Ρ€Ρ‚ ΠœΠΎΡ€Ρ€ΠΈΡ с Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для любого языка. Π₯отя typo Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ фонСтичСскиС ошибки, ΠΎΠ½Π° стала настоящСй Π½Π°Ρ…ΠΎΠ΄ΠΊΠΎΠΉ для всСх, ΠΊΡ‚ΠΎ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ тСкст, ΠΈ принСсла ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·Ρ‹ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ появилась Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ интСрСсная, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ точная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ.

Typo Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ устроСна Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΠΊΠ°ΠΊ ΠΈ снаруТи. Алгоритм измСрСния сходства основан Π½Π° частотС появлСния Ρ‚Ρ€ΠΈΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π² массивС 26Γ—26Γ—26. Π’ ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½ΠΎΠΉ памяти Π΅Π΄Π²Π° Ρ…Π²Π°Ρ‚Π°Π»ΠΎ мСста для ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… счётчиков, поэтому Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° схСма сТатия Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл Π² малСнькиС счётчики. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пСрСполнСния, счётчики обновлялись Π½Π° вСроятностной основС, поддСрТивая ΠΎΡ†Π΅Π½ΠΊΡƒ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΠ° значСния счётчика.

eqn

Π‘ появлСниСм Ρ„ΠΎΡ‚ΠΎΠ½Π°Π±ΠΎΡ€Π° стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Π½ΠΎ уТасно ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ. Π›ΠΎΡ€ΠΈΠ½Π΄Π° Π§Π΅Ρ€Ρ€ΠΈ Ρ€Π΅ΡˆΠΈΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ язык описания Π±ΠΎΠ»Π΅Π΅ высокого уровня, ΠΈ вскорС ΠΊ Π½Π΅ΠΉ присоСдинился Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½. Π˜Ρ… блСстящий Ρ…ΠΎΠ΄ состоял Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π½ΡƒΡŽ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΡŽ Π² письмСнном Π²ΠΈΠ΄Π΅, поэтому eqn оказался ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простым Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π² своём Ρ€ΠΎΠ΄Π΅ прСпроцСссор языка описания матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, eqn с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π»ΡΡ.

struct

Π‘Ρ€Π΅Π½Π΄Π° Π‘Π΅ΠΉΠΊΠ΅Ρ€ затСяла Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ своСго ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° Fortan-to-Ratfor Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ совСту своСго Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΠ° β€” мСня. Π― ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Π½ΠΈΡŽ исходного тСкста. Он Π±ΡƒΠ΄Π΅Ρ‚ свободСн ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π½ΠΎ Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ, Ρ‡Π΅ΠΌ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ структурированный ΠΊΠΎΠ΄ Fortran. Π‘Ρ€Π΅Π½Π΄Π° Π΄ΠΎΠΊΠ°Π·Π°Π»Π°, Ρ‡Ρ‚ΠΎ я ошибаюсь. Она ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Fortran Π΅ΡΡ‚ΡŒ каноничСски структурированная Ρ„ΠΎΡ€ΠΌΠ°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΊΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π° Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сами ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ написали.

pascal

Диагностика синтаксиса Π² компиляторС, созданном Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Бью ГрэхСм Π² Π‘Π΅Ρ€ΠΊΠ»ΠΈ, Π±Ρ‹Π»Π° самой ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ· всСх, Ρ‡Ρ‚ΠΎ я ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π²ΠΈΠ΄Π΅Π»Β β€” ΠΈ ΠΎΠ½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ автоматичСски. ΠŸΡ€ΠΈ синтаксичСской ошибкС компилятор ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ лСксСму, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ синтаксичСский Π°Π½Π°Π»ΠΈΠ·. Никаких ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ. Π‘ этим компилятором я Π²Ρ‹ΡƒΡ‡ΠΈΠ» Паскаль Π·Π° ΠΎΠ΄ΠΈΠ½ Π²Π΅Ρ‡Π΅Ρ€, Π½Π΅ имСя ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ руководства.

parts

Бпрятанный Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° WWB (Writer’s Workbench) ΠΌΠΎΠ΄ΡƒΠ»ΡŒ parts Π›ΠΎΡ€ΠΈΠ½Π΄Ρ‹ Π§Π΅Ρ€Ρ€ΠΈ опрСдСляСт части Ρ€Π΅Ρ‡ΠΈ для слов Π² тСкстС Π½Π° английском языкС Π½Π° Π±Π°Π·Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ малСнького словаря, ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. По этой Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° WWB Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ стиломСтричСскиС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ тСкста, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ слоТных ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Когда Π›ΠΎΡ€ΠΈΠ½Π΄Π° Π΄Π°Π»Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π² Ρ‚Π΅Π»Π΅ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Today Π½Π° ΠΊΠ°Π½Π°Π»Π΅ NBC ΠΈ рассказала ΠΎΠ± ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π² тСкстах WWB, это Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Unix Π½Π° Ρ‚Π΅Π»Π΅Π²ΠΈΠ΄Π΅Π½ΠΈΠΈ.

egrep

Аль Ахо рассчитывал, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±Π³ΠΎΠ½ΠΈΡ‚ классичСский Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ КСна. К соТалСнию, послСдний ΡƒΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π» ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ слоТным рСгулярным выраТСниям, ΠΏΠΎΠΊΠ° egrep строил свою Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ всё-Ρ‚Π°ΠΊΠΈ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ Π² этой Π³ΠΎΠ½ΠΊΠ΅, Аль Ахо ΠΎΠ±ΠΎΡˆΡ‘Π» проклятиС ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ состояний Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°, изобрСтя способ построСния Π½Π° Π»Π΅Ρ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… записСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π²ΠΎ врСмя распознавания.

crabs

ΠžΡ‡Π°Ρ€ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ‚Π°-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π›ΡƒΠΊΠΈ ΠšΠ°Ρ€Π΄Π΅Π»Π»ΠΈ для ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ систСмы Blit выпускала Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΡ€Π°Π±ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ€ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΠΎ пустому пространству экрана, всё большС ΠΈ большС откусывая края Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΊΠΎΠ½.

НСкоторыС ΠΎΠ±Ρ‰ΠΈΠ΅ мысли

Π₯отя это Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ·Π²Π½Π΅, Π½ΠΎ тСория ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сыграли Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² создании Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° этих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: typo, dc, struct, pascal, egrep. На самом Π΄Π΅Π»Π΅ большС всСго удивляСт ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ списка β€” pascal, struct, parts, eqn β€” Π±Ρ‹Π»ΠΈ ΠΆΠ΅Π½Ρ‰ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСвосходит Π΄Π΅ΠΌΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ долю ΠΆΠ΅Π½Ρ‰ΠΈΠ½ Π² области ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ.

Дуглас ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉ
ΠœΠ°Ρ€Ρ‚, 2020


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ