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

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

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

cat thesis.ms | chem | tbl | refer | grap | pic | eqn \

 | groff -Tps >thesis.ps

Π’Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° DWB-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для гипотСтичСских тСзисов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Π² сСбя химичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, матСматичСскиС уравнСния, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π±ΠΈΠ±Π»ΠΈΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ, Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. (Команда cat(1) просто ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ свой Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ содСрТимоС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° свой Π²Ρ‹Π²ΠΎΠ΄; здСсь ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для подчСркивания порядка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.) На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ соврСмСнныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ troff часто ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способны Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ tbl(1), eqn(1) ΠΈ pic(1), Π° поэтому ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ слоТныС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Но Π΄Π°ΠΆΠ΅ Ссли Π±Ρ‹ это понадобилось, Ρ‚Π°ΠΊΠΈΠ΅ инструкции для сборки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² make-Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² shell-сцСнарии для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² срСдствами Documenter's Workbench нСсколько устарСла, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ прСпроцСссорами, являСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ мощности ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΈΠ½ΠΈ-языков β€” Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ эквивалСнтныС знания Π² тСкстовыС процСссоры класса WYSIWYG. БущСствуСт нСсколько областСй, Π³Π΄Π΅ соврСмСнныС ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ связки ΠΈ способы Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π° основС XML, Π² 2003 Π³ΠΎΠ΄Ρƒ лишь ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°ΡŽΡ‚ΡΡ ΠΊ возмоТностям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ инструмСнтарий DWB ΠΎΠ±Π»Π°Π΄Π°Π» Π² 1979 Π³ΠΎΠ΄Ρƒ. Π­Ρ‚ΠΈ вопросы ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΡΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 18.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π»ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡŽ DWB Ρ‚Π°ΠΊΡƒΡŽ ΠΌΠΎΡ‰ΡŒ, Π² настоящСС врСмя Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹. ВсС инструмСнты совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ тСкстовых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° систСма форматирования Ρ€Π°Π·Π±ΠΈΡ‚Π° Π½Π° нСзависимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ, ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ прСпроцСссорами ΠΈ постпроцСссорами Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ старых. DWB β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠ°Ρ конструкция.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° инструмСнтария Documenter's Workbench Π² Ρ†Π΅Π»ΠΎΠΌ прСподносит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… языков Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ систСму. Один прСпроцСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ надстройкой доя Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства DWB Π±Ρ‹Π»ΠΈ Ρ€Π°Π½Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π½Π°Π»ΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΈ ΠΌΠΈΠ½ΠΈ-языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² дальнСйшСм Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ повлияли Π½Π° ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Unix. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… прСпроцСссоров способны ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ большС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ выглядит конструкция эффСктивного ΠΌΠΈΠ½ΠΈ-языка.

Один ΠΈΠ· этих ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Иногда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΈΡˆΡƒΡ‰ΠΈΠ΅ описаниС Π² ΠΌΠΈΠ½ΠΈ-языкС, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ дСйствия с Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ troff-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, вставлСнной Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Π·Π° собой послСдствия ΠΈ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹Π΅, сгСнСрированныС troff ΠΈ выходящиС ΠΈΠ· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°, Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹, Π° Ссли Π±Ρ‹ Π±Ρ‹Π»ΠΈ Π²ΠΈΠ΄Π½Ρ‹, Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ ошибки Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΠ³Π΄Π° C-ΠΊΠΎΠ΄ смСшан с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ассСмблСра. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅, Ссли Π±Ρ‹ ΡƒΡ€ΠΎΠ²Π½ΠΈ языков Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π±Ρ‹ это Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΌΠΈΠ½ΠΈ-языков слСдуСт ΡƒΡ‡Π΅ΡΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ВсС языки прСпроцСссоров (ΠΊΡ€ΠΎΠΌΠ΅ самой troff-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ) ΠΈΠΌΠ΅ΡŽΡ‚ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ, shell-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соотвСтствуСт ΠΌΠ½ΠΎΠ³ΠΈΠΌ описанным Π² Π³Π»Π°Π²Π΅ 5 соглашСниям ΠΎ конструкции Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. БущСствуСт нСсколько Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ОсобСнно выдСляСтся срСди Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° tbl(1), ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ символ табуляции ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ столбцами Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ нСприятныС Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² конструкции make(1) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ досадныС ошибки, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ срСдства Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ состав Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ.

Π₯отя troff сам ΠΏΠΎ сСбС прСдставляСт собой спСциализированный ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈ-язык, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΠ΄Π΅ΠΉ, которая "ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚" ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‡Π΅Ρ€Π΅Π· 3 ΠΌΠΈΠ½ΠΈ-языка Π² DWB, являСтся дСкларативная сСмантика: ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° основС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… условий. Данная идСя Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° для соврСмСнных GUI-инструмСнтариСв. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ пиксСлСй для графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², СдинствСнноС, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” это ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ пространствСнныС взаимозависимости ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ("элСмСнт управлСния А располоТСн Π²Ρ‹ΡˆΠ΅ элСмСнта Π’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится слСва ΠΎΡ‚ элСмСнта Π‘"), Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π΅ располоТСниС элСмСнтов А, Π’ ΠΈ Π‘, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ условиям.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ pic(1) Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ элСмСнтов Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классификации языков Π½Π° рис. 8.1 Π±Ρ‹Π»Π° создана Π½Π° основС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 8.4[84] исходного pic-ΠΊΠΎΠ΄Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pic2graph, которая Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π³Π»Π°Π²Ρ‹ 7.

Π­Ρ‚ΠΎ вСсьма типичная для Unix конструкция ΠΌΠΈΠ½ΠΈ-языка, ΠΈ ΠΊΠ°ΠΊ таковая ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько интСрСсных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄Π°ΠΆΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ синтаксиса. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΅Π΅ сходство с shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ: ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа #, Π° синтаксис, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° основС лСксСм ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ соглашСниС для строк. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ pic(1) Π·Π½Π°Π», Ρ‡Ρ‚ΠΎ Unix-программисты ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ этому синтаксис ΠΌΠΈΠ½ΠΈ-языков, Ссли Π½Π΅ сущСствуСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ спСцифичСской ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ этого. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ выполняСтся ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ наимСньшСй нСоТиданности.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 8.4. pic-ΠΊΠΎΠ΄ для схСмы классификации языков

#Minilanguage taxonomy (классификация ΠΌΠΈΠ½ΠΈ-языков)

#

# Base ellipses (основныС эллипсы)

define smallellipse {ellipse width 3.0 height 1.5}

M: ellipse width 3.0 height 1.8 fill 0.2

line from M.n to M.s dashed

D: smallellipse() with .e at M.w + (0.8, 0)

line from D.n to D.s dashed

I: smallellipse() with .w at M.e - (0.8, 0)

#

# Captions (подписи)

"" "Data formats" at D.s

"" "Minilanguages" at M.s

"" "interpreters" at I.s

#

# Heads (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ)

arrow from D.w + (0.4, 0.8) to D.e + (-0.4, 0.8)

"flat to structured" "" at last arrow.с

arrow from M.w + (0.4, 1.0) to M.e + (-0.4, 1.0)

"declarative to imperative" "" at last arrow.с

arrow from I.w + (0.4, 0.8) to I.e + (-0.4, 0.8)

"less to more general" "" at last arrow.с

#

# The arrow of loopiness (стрСлка развития Ρ†ΠΈΠΊΠ»ΠΎΠ²)

arrow from D.w + (0, 1.2) to I.e + (0, 1.2)

"increasing loopiness" "" at last arrow.с

#

# Flat data files (плоскиС Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…)

"/etc/passwd" ".newsrc" at 0.5 between D.c and D.w

# Structured data files (структурированныС Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…)

"SNG" at 0.5 between D.c and M.w

# Datafile/minilanguage borderline cases (ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…/ΠΌΠΈΠ½ΠΈ-язык)

"regexps" "Glade" at 0.5 between M.w and D.e

# Declarative minilanguages (Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠΈΠ½ΠΈ-языки)

"m4" "Yacc" "Lex" "make" "XSLT" "pic" "tbl" "eqn" \

 at 0.5 between M.с and D.e

# Imperative minilanguages (ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠΈΠ½ΠΈ-языки)

"fetchmail" "awk" "troff" "Postscript" at 0.5 between M.c and I.w

# Minilanguage/interpreter borderline cases (ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи

 ΠΌΠΈΠ½ΠΈ-язык/ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€)

"dc" "bc" at 0.5 between I.w and M.e

# Interpreters (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹)

"Emacs Lisp" "JavaScript" at 0.25 between M.e and I.e

"sh" "tcl" at 0.55 between M.e and I.e

"Perl" "Python" "Java" at 0.8 between M.e and I.e

ВСроятно, Π±ΠΎΠ»ΡŒΡˆΠΈΡ… усилий Π½Π΅ потрСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ пСрвая строка ΠΊΠΎΠ΄Π° прСдставляСт собой ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ссылках Π½Π° smallellipse() инкапсулирован ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ элСмСнт Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. НазначСниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ arrow Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всС это ΠΊΠ°ΠΊ подсказку ΠΈ глядя Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ, нСслоТно Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов синтаксиса (ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ М.s, ΠΈ конструкций, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… last arrow ΠΈΠ»ΠΈ at 0.25 between M.e and I.e, ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ смСщСния Π²Π΅ΠΊΡ‚ΠΎΡ€Π°). Как ΠΈ Glade-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ m4-ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π² языкС Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ссылок Π½Π° руководства (ΠΊ соТалСнию, свойство компактности для troff(1)-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ pic(1) ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ для ΠΌΠΈΠ½ΠΈ-языков идСю конструкции, которая Ρ‚Π°ΠΊΠΆΠ΅ отраТаСтся Π² Glade β€” использованиС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΌΠΈΠ½ΠΈ-языка для инкапсуляции Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ логичСских расчСтов Π½Π° основС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… условий ΠΈ прСвращСния Π΅Π΅ Π² дСйствия. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ pic(1), Π² сущности, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ скорСС ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ, Π° Π½Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ язык; Π² Π½Π΅ΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ элСмСнты ΠΎΠ±ΠΎΠΈΡ… Π²ΠΈΠ΄ΠΎΠ², ΠΈ дискуссия быстро пСрСросла Π±Ρ‹ Ρ‚Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ.

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ макросов с ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ Π½Π° основС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… условий позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ pic(1) Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ структуру Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Ρ‚Π°ΠΊΠΈΠΌ способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСдоступСн для Π±ΠΎΠ»Π΅Π΅ соврСмСнных Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΎΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SVG. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, благоприятно, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· слСдствий конструкции Documenter's Workbench являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ использованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ pic(1) Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ срСды DWB. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ pic2graph, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² качСствС ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² Π³Π»Π°Π²Π΅ 7, Π±Ρ‹Π» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создан для достиТСния этой Ρ†Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… PostScript-возмоТностСй groff(1) ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ этап Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ соврСмСнному растровому Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ.