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

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

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

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

Π―Π·Ρ‹ΠΊ Java Π±Ρ‹Π» Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…: Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ совмСстимыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° самых Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, поэтому высокая ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ Java являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…: ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΌ являСтся сСтСвой API-интСрфСйс, a Java ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ встроСнный API.

Π―Π·Ρ‹ΠΊ Π‘ являСтся Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ для инфраструктурных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ высокиС трСбования ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ нСдостаток стандартизированного сСтСвого API Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΠ» Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π’Π°ΠΊΠΈΠ΅ ΠΆΠ΅ трудности Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π±Ρ‹ ΠΈ Π² случаС использования Π‘++. Π―Π·Ρ‹ΠΊΠΈ Tсl, Perl ΠΈΠ»ΠΈ Python ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ пСрСносимости, Π½ΠΎ Ρ†Π΅Π½ΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Emacs Lisp Π±Ρ‹Π» Π±Ρ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ.

14.4.8. Emacs Lisp

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

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

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, сущСствуСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Emacs Π±ΠΎΠ»Π΅Π΅ эффСктивСн, Ρ‡Π΅ΠΌ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык. МногиС ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² примСнСния с обСспСчСниСм клиСнтского интСрфСйса для инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘-компилятор ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ€, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° make(1), систСмы контроля вСрсий ΠΈ символичСскиС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ; Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Emacs Lisp рассматриваСтся Π² Π³Π»Π°Π²Π΅ 15.

Π’ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΌ смыслС, Emacs для шаблонного ΠΈΠ»ΠΈ синтаксичСского ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ рСдактирования являСтся Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Π΅ΠΌ язык Perl для шаблонного ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ рСдактирования. Π›ΡŽΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ задСйствована интСрактивная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ тСкстовой Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, являСтся достойным ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ (Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ рСализация) Π±Ρ‹Π» написан ΠΊΠ°ΠΊ Emacs-Ρ€Π΅ΠΆΠΈΠΌ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Emacs Lisp, которая Ρ‚ΠΎΡ‡Π½ΠΎ опрСдСляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°).

Emacs Lisp Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ†Π΅Π½Π½Ρ‹ΠΌ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ тСсно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ тСкстовым Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚, Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ просмотра с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ возмоТностями рСдактирования. Π’ эту ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Ρ‹ для ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Usenet-новостСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Π²Π½Π΅ΡˆΠ½ΠΈΡ… интСрфСйсов ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Emacs Lisp β€” ΠΏΠΎ сути Lisp. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ автоматичСски управляСт ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ изящСн, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… языков, ΠΈΠ»ΠΈ, Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π΅Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… языков. Emacs Lisp Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅ способСн ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΡ‡Π°Ρ‚ΡŒ с Java ΠΈΠ»ΠΈ Python ΠΈ прСвосходит языки Π‘ ΠΈΠ»ΠΈ Π‘++, Perl, shell ΠΈΠ»ΠΈ Tсl. НСизмСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Lisp, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² нСдостаткС стандартизированной ОБ-привязки для пСрСносимости, Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ядром Emacs, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ являСтся ОБ-привязкой.

Другая нСпрСодолимая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ рСсурсов, Π½Π° соврСмСнных ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… Π±ΠΎΠ»Π΅Π΅ Π½Π΅ являСтся Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСны Π½Π°ΡΠΌΠ΅ΡˆΠ»ΠΈΠ²Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ названия, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ "Emacs Makes A Computer Slow" (Emacs Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€) ΠΈ "Eventually Munches All Computer Storage" (Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всю ΠΏΠ°ΠΌΡΡ‚ΡŒ) (фактичСски Π² дистрибутив Emacs Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ список Ρ‚Π°ΠΊΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΊ). Но Π² настоящСС врСмя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹) ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ слоТными, Ρ‡Π΅ΠΌ Emacs, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² сравнСнии с Π½ΠΈΠΌΠΈ каТСтся довольно ΡƒΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌ.

НаиболСС ΠΏΠΎΠ»Π½Ρ‹ΠΌ справочником ΠΏΠΎ Emacs Lisp являСтся руководство "The GNU Emacs Lisp Reference Manual", ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ справочной систСмы "info-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²", встроСнной Π² Emacs. Π”Π°Π½Π½ΠΎΠ΅ руководство Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с FTP-ΡƒΠ·Π»Π° FSF <ftp://ftp.gnu.org/pub/gnu>. Если ΠΎΠ½ΠΎ покаТСтся малопонятным, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΊΠ½ΠΈΠ³Π° "Writing GNU Emacs Extensions" [30].

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Emacs Lisp ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ прСвосходной ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Emacs доступны для всСх Unix-систСм, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Microsoft ΠΈ MacOS.

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

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация, ΠΊΠ°ΡΠ°ΡŽΡ‰Π°ΡΡΡ Emacs, приводится Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ свСдСния ΠΎ Emacs" ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Ρ‹.

14.5. Π’Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 14.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ соврСмСнного распространСния языков. Π”Π°Π½Π½Ρ‹Π΅ взяты с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² SourceForge[123] ΠΈ Freshmeat[124], Π΄Π²ΡƒΡ… Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… сайтов Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΠΌΠ°Ρ€Ρ‚ 2003 Π³ΠΎΠ΄Π°.


Π’Π°Π±Π»ΠΈΡ†Π° 14.1. Π’Ρ‹Π±ΠΎΡ€ языков

Π―Π·Ρ‹ΠΊ SourceForge Freshmeat 01.03.03 01.03.04 01.03.03 01.03.04 Π‘ 10296 13479 4845 6191 Π‘++ 9880 13570 2098 2922 Shell 1058 1473 487 620 Perl 4394 5560 2508 3031 Tcl 649 811 328 377 Python 2222 3267 948 1459 Java 8032 12126 1900 2977 Emacs Lisp ? ? 31 37

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° SourceForge нСсколько сглаТСны ΠΏΠΎ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½: интСрфСйс запроса Π½Π΅ позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам ΠΈ языкам, поэтому Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· чисСл содСрТат MacOS- ΠΈ Windows-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, вСроятно, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСувСличиваСтся распространСниС Π‘++ ΠΈ Java. Однако Unix-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ (Π² ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ 3:1), поэтому ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, вСроятно, Π½Π΅ слишком искаТСны.

Π”Π°Π½Π½Ρ‹Π΅ Freshmeat мСньшС, Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ сайтС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Unix-вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅ бСспорядочноС Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΡΡ‡Π΅Π·Π½ΡƒΠ²ΡˆΠΈΡ… ΠΈ приостановлСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² SourceForge. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ совокупныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΡΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… SourceForge ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ 1:2, ΠΊΡ€ΠΎΠΌΠ΅ случаСв (Π‘++ ΠΈ Java), Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ отклонСния ΠΎΡ‚ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΈ Π²Π²ΠΈΠ΄Ρƒ отсутствия Windows-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π» написан Π² 1997 Π³ΠΎΠ΄Ρƒ; Π² свСт ΠΊΠ½ΠΈΠ³Π° Π²Ρ‹ΡˆΠ»Π° Π² 2003 Π³ΠΎΠ΄Ρƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠ»ΠΎ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ рассмотрСнных Π²Ρ‹ΡˆΠ΅ языков ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ измСнились с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ описания ΠΈ ΠΎΡ‚Ρ€Π°Π·ΠΈΠ»ΠΈΡΡŒ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π­Ρ‚ΠΈ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ языков Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ.

Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π‘, Π‘++ ΠΈ Emacs Lisp ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 1997-2003 Π³ΠΎΠ΄ΠΎΠ². ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ языка Π‘ росли ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π° счСт Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ FORTRAN. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π‘++ ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ язык Java.

ΠŸΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ возросло использованиС Perl, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка приостановлСно. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Perl ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстно своСй Π½Π΅Ρ€ΡΡˆΠ»ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ. НСсомнСнно, ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΏΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка с самого Π½Π°Ρ‡Π°Π»Π°. ΠŸΡ€Π°Π²Π΄Π°, ΠΎΠ΄Π½Π° такая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°, прСдпринятая Π² 1999 Π³ΠΎΠ΄Ρƒ, ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ»Π°ΡΡŒ, Π° другая ΠΏΠΎΠΊΠ°, Π²ΠΈΠ΄ΠΈΠΌΠΎ, приостановлСна. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Perl остаСтся Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ языком сцСнариСв ΠΈ ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π² Web-сцСнариях ΠΈ CGI.