Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 99

Автор Π­Ρ€ΠΈΠΊ Π Π΅ΠΉΠΌΠΎΠ½Π΄

13.2.4. Emacs

Emacs, Π±Π΅Π· сомнСния, самый ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² для программистов. Он прСдставляСт собой Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ, ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ функциями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с большой Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ настройки. Как отмСчаСтся Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Emacs Lisp" Π³Π»Π°Π²Ρ‹ 14, Emacs ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹ΠΌ встроСнным языком программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для написания Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ рСдактирования.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ vi, Emacs Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² интСрфСйса. ВмСсто этого ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставлСны ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ символами ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡŽΡ‚ΡΡ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши ESC. Однако Π² Emacs Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ стандартныС ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ написанныС Lisp-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Emacs способСн Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅, ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ тСкста ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ. ВСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² систСмС X, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ собствСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ.

Lisp-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, связанныС с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Emacs, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ трансформации тСкста Π² Π±ΡƒΡ„Π΅Ρ€Π΅. Данная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ срСдствами для опрСдСлСния подсвСтки синтаксиса ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² рСдактирования тСкста Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ для дСсятков Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ (начиная с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ выдСлСния Ρ†Π²Π΅Ρ‚ΠΎΠΌ C-ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ Π² vi, Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ выходя Π·Π° эти Ρ€Π°ΠΌΠΊΠΈ). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ прСдставляСт собой просто Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Lisp-ΠΊΠΎΠ΄, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ запросу.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Emacs Lisp способны Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ подпроцСссами. НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ слСдствия Π΄Π°Π½Π½ΠΎΠΉ возмоТности Π±Ρ‹Π»ΠΈ пСрСчислСны Ρ€Π°Π½Π΅Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС клиСнтской части для систСм контроля вСрсий, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Emacs[114] создали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ логичСскиС возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΌ для сотСн Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… спСциализированных Π·Π°Π΄Π°Ρ‡ рСдактирования. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Emacs ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±Ρ‰Π΅ΠΌ контСкстС всСх тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… β€” Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΡ‡Ρ‚Π°, новости, ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ символы. Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС настраиваСмой клиСнтской части для любой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ тСкстовый интСрфСйс.

Π‘Ρ€Π΅Π΄ΠΈ сторонников ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΎΠ² Emacs Π±Ρ‹Ρ‚ΡƒΠ΅Ρ‚ Π°Π½Π΅ΠΊΠ΄ΠΎΡ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, Π·Π°ΠΌΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Π­Ρ‚ΠΎ ΠΏΡ€Π΅ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Emacs Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ исполняСт Ρ€ΠΎΠ»ΡŒ, ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ срСдам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Integrated Development Environments β€” IDE) Π² He-Unix-систСмах (рассмотрСниС Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 15).

Но пСрСчислСнныС прСимущСства сопряТСны с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слоТностями. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ настроСнный Emacs, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈ сСбС Lisp-Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ настройки Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ настройки Emacs β€” Ρ†Π΅Π»ΠΎΠ΅ искусство. БоотвСтствСнно, Emacs слоТнСС Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ, Ρ‡Π΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi.

13.2.5. Wily

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ wily[115] β€” ΠΊΠ»ΠΎΠ½ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° acme[116] ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Plan 9. Он ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ срСдства с Sam, Π½ΠΎ прСдусмотрСн для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ. Π₯отя wily, вСроятно, распространСн ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ· рассматриваСмых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΎΠ½ интСрСсСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΊ Unix способ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Emacs-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ wily ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΡΠΊΡƒΡŽ IDE-срСду, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ Π² Emacs-стилС Π±Π΅Π· дСсятков ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ Wily Π΄Π°ΠΆΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм для Unix-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ внСшними ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ВстроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ связаны ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ опСрациями. Π’ конструкции Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Wily максимальноС использованиС ΠΌΡ‹ΡˆΠΈ прСдусмотрСно ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ.

Wily пытаСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ xterm(1). Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ любой Π±Π»ΠΎΠΊ тСкста Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит мноТСство Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠΊΠΎΠ½ Wily) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ дСйствиС ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для поиска. ЛСвая ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выдСлСния тСкста, срСдняя β€” для выполнСния тСкста ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (встроСнной Π»ΠΈΠ±ΠΎ внСшнСй), Π° правая β€” для поиска тСкста Π»ΠΈΠ±ΠΎ Π² Π±ΡƒΡ„Π΅Ρ€Π°Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Π»ΠΈΠ±ΠΎ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Никаких постоянных ΠΈΠ»ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½ Π½Π΅ трСбуСтся.

Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Wily ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²Π²ΠΎΠ΄Π° тСкста. ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… клавиш ΠΌΡ‹ΡˆΠΈ. Π”Π°Π½Π½Ρ‹Π΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ всСгда эквивалСнтны использованию срСднСй ΠΊΠ½ΠΎΠΏΠΊΠΈ для ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ встроСнной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Wily Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² качСствС клиСнтской части для C-, Python- ΠΈΠ»ΠΈ Perl-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, сообщая ΠΈΠΌ всякий Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΊΠ½Π°, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ поиска с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌ Emacs, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² адрСсном пространствС Wily. ВмСсто этого ΠΎΠ½ΠΈ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ посрСдством ΠΎΡ‡Π΅Π½ΡŒ простого Π½Π°Π±ΠΎΡ€Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Wily поставляСтся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ с Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ xterm ΠΈ срСдством ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для рСдактирования тСкста.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Wily ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ зависит ΠΎΡ‚ ΠΌΡ‹ΡˆΠΈ, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… дисплСях, Π½ΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ X-Π΄Π°Π½Π½Ρ‹Ρ…. Как Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Wily ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для рСдактирования простого тСкста. Π’ Π½Π΅ΠΌ имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΡˆΡ€ΠΈΡ„Ρ‚Π° (ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ½ΠΎΡˆΠΈΡ€ΠΈΠ½Π½Ρ‹ΠΉ) ΠΈ отсутствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ рСдактирования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ тСкстового Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ подсвСтки синтаксиса.

13.3. НСобходимый ΠΈ достаточный Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с использованиСм ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ слоТности, сформулированных Π² Π½Π°Ρ‡Π°Π»Π΅ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹.

13.3.1. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ слоТности

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ присутствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ слоТности. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ копию Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ экспорта Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с диска ΠΈ Π½Π° диск, хотя ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ sed(1) являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ). НСобходима ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ способа ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ этот способ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±Π΅Π· описания спСцифичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π—Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ описанных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ рассмотрСнных Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π² уровнях Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ случайной слоТности.

Из всСх рассмотрСнных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ed(1) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ наимСньшСй ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΡ‡Ρ‚ΠΈ СдинствСнной Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ суффиксы "Ρ€" ΠΈΠ»ΠΈ "]" для распСчатки ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния. Π”Π°ΠΆΠ΅ послС Ρ‚Ρ€Π΅Ρ… дСсятилСтий добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сущСствуСт ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€ΠΈΠ΄Ρ†Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ рСдактирования, Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ дСсятка ΠΊΠΎΠΌΠ°Π½Π΄. НС ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π² части Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ слоТности, Π° ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ed строго ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½.

ΠžΠ±ΠΎΡ€ΠΎΡ‚Π½ΠΎΠΉ стороной этого являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйс Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ed Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°ΠΆΠ΅ для Ρ‚Π°ΠΊΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ рСдактирования, ΠΊΠ°ΠΊ быстрый просмотр тСкстового Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ довольно ТСстко ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ свои Ρ†Π΅Π»ΠΈ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ed оказался ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ рСдактирования.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² качСствС Ρ†Π΅Π»ΠΈ добавляСтся "ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΈ рСдактирования мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ²". Π’ этом случаС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Sam каТСтся Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π»Π΅ΠΊΠΈΠΌ ΠΎΡ‚ минимального ed-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π΄Π°Π½Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ сСмантики унаслСдованных ed-ΠΊΠΎΠΌΠ°Π½Π΄. Они сохранили ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ, ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ возмоТностСй ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшоС число Π½ΠΎΠ²Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сами ΠΏΠΎ сСбС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Одним ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ слоТности (слоТности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ) являСтся ΠΈΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Sam Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ числа ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€ β€” Π½ΠΎΠ²ΠΎΠ΅ срСдство ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ взаимодСйствия Π½Π° основС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ языкС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π”Π°Π½Π½Ρ‹Π΅ свойства, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ΡˆΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ устройство Π²Ρ‹Π±ΠΎΡ€Π°, β€” это ΠΏΠΎΡ‡Ρ‚ΠΈ всС, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Sam ΠΎΡ‚ гипотСтичСского ed с ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования ΠΌΡ‹ΡˆΠΈ.

На ΡƒΡ€ΠΎΠ²Π½Π΅ конструкции Π² Sam Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² этом нСльзя Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π±Π΅Π· всСстороннСго Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠΎΠ΄Π°. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ являСтся, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΠΎΠ»ΡƒΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ строго ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ. Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² соотвСтствии с Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠΈΠΌΠΈ стандартами Unix-проСктирования, Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, учитывая Π΅Π³ΠΎ происхоТдСниС.