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

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

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

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

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

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° эмпиричСскиС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π² сСрдцС Unix-Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ нСсколькими Π°ΠΏΡ€ΠΈΠΎΡ€Π½Ρ‹ΠΌΠΈ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°ΠΌΠΈ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ любого Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° гармония ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ стиля β€” основная Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Аналогично Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π² Дзэн ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ являСтся Ρ†Π΅Π»ΡŒΡŽ, "просвСтлСния" приходится ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ повсСднСвной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.

Π§Π°ΡΡ‚ΡŒ III РСализация

14 Π―Π·Ρ‹ΠΊΠΈ программирования: Π‘ ΠΈΠ»ΠΈ Π½Π΅ Π‘?

Π“Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠΎΠ΅Π³ΠΎ языка β€” Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠΎΠ΅Π³ΠΎ ΠΌΠΈΡ€Π°. Π›ΠΎΠ³ΠΈΠΊΠΎ-философский Ρ‚Ρ€Π°ΠΊΡ‚Π°Ρ‚ (Tractatus Logico-Philosophicus 5.6,1918) β€”Π›ΡŽΠ΄Π²ΠΈΠ³ Π’ΠΈΡ‚Ρ‚Π³Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½ (Ludwig Wittgenstein).

14.1. ΠœΠ½ΠΎΠ³ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ языков Π² Unix

Π’ Unix поддСрТиваСтся Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ языков ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования. ЀактичСски Unix способна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ большС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков, Ρ‡Π΅ΠΌ всС вмСстС взятыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Π² истории Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.

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

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ "язык сцСнариСв" (scripting language), вСроятно, происходит ΠΎΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° "сцСнарий" (script), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ примСнялся ΠΊ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Π²ΠΎΠ΄Ρƒ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π² частности, sh ΠΈΠ»ΠΈ ed β€” Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ умСстный Ρ‚Π΅Ρ€ΠΌΠΈΠ½, Ρ‡Π΅ΠΌ "runcom", унаслСдованный Unix ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΊΠ°, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы CTSS. Π‘Π»ΠΎΠ²ΠΎ "script" появляСтся Π² руководствС для систСмы V7 (1979). Π― Π½Π΅ помню, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» это Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

Π”ΡƒΠ³ ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉ.

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "язык сцСнариСв" нСсколько Π½Π΅ΡƒΠ΄ΠΎΠ±Π΅Π½. МногиС ΠΈΠ· основных языков, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ описываСмых ΠΊΠ°ΠΊ языки сцСнариСв (Perl, Tel, Python ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), ΡƒΠΆΠ΅ пСрСросли ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ создания сцСнариСв ΠΈ Π² настоящСС врСмя ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ языками программирования Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ склонСн ΡΡ€Ρ‹Π²Π°Ρ‚ΡŒ сильноС сходство Π² стилС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊ этой Π³Ρ€ΡƒΠΏΠΏΠ΅, особСнно с Lisp ΠΈ Java. ЕдинствСнным Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅Π΅ использованиС Π΄Π°Π½Π½ΠΎΠ³ΠΎ понятия, являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Π΅Ρ‰Π΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π».

Частично ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ языки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ "языков сцСнариСв" являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ½Ρ‚ΠΎΠ³Π΅Π½Π΅Π·. НаличиС динамичСской срСды для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ управлСния динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Автоматизация управлСния динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования ссылок (Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… для понимания адрСсов памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ Π² состоянии Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ) вмСсто распространСния ΠΊΠΎΠΏΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ явных ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. ИспользованиС ссылок Π΄Π΅Π»Π°Π΅Ρ‚ динамичСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ ОО-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ простым этапом.

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

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

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²Ρ‹Π±ΠΎΡ€ языка ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных идСологичСских вопросов Π² сообщСствС Internet/Unix. Π›ΡŽΠ΄ΠΈ сильно ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ срСдствам ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‚ ΠΈΡ… Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ Π·Π΄Ρ€Π°Π²ΠΎΠΌΡƒ смыслу. Если Π³Π»Π°Π²Π° достигнСт своСй Ρ†Π΅Π»ΠΈ, Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΠΊΠΎΡ€Π±ΠΈΡ‚ΡŒ Ρ„Π°Π½Π°Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π΅Π² всСх языков, ΠΎΠ΄Π½Π°ΠΊΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ ΠΈΠ· Π½Π΅Π΅ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ.

14.2. Π”ΠΎΠ²ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π‘

Π‘ β€” СстСствСнный язык ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix. Π‘ Π½Π°Ρ‡Π°Π»Π° 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΎΠ½ стал Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² систСмном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ повсСмСстно Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ индустрии. Π—Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉΡΡ ниши Fortran Π² Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСниях, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ массу финансовых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС COBOL Π² Π±Π°Π½ΠΊΠ°Ρ… ΠΈ страховых компаниях, Π‘ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Π‘++ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ дСсяти Π»Π΅Ρ‚ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π‘ ΠΈ Π‘++ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСподходящим ΡΠ²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ΠΎ справСдливо. Π‘ ΠΈ Π‘++ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ°ΡˆΠΈΠ½Π½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π½ΠΎΠΉ увСличСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ (особСнно) ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π‘ ΠΈΠ»ΠΈ Π‘++ систСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ядра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ всС Π΅Ρ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысл, ΠΌΠΈΡ€ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ измСнился со Π²Ρ€Π΅ΠΌΠ΅Π½ Π²ΠΎΠ·Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ этих языков Π² 1980-Ρ… Π³ΠΎΠ΄Π°Ρ…. БСгодня процСссоры Π² тысячи Ρ€Π°Π· быстрСС, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ памяти Π² тысячи Ρ€Π°Π· большС, Π° диски Π² Π΄Π΅ΡΡΡ‚ΡŒ тысяч Ρ€Π°Π· большС, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ†Π΅Π½Π°ΠΌ88.

ПадСниС Ρ†Π΅Π½ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎ экономику программирования. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π² ΡƒΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла Ρ‚Π°ΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ рСсурсы, ΠΊΠ°ΠΊ это позволяСт Π‘. Напротив, экономичСски ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ состоит Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ максимизации возмоТности долгосрочного сопровоТдСния ΠΊΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²ΠΈΠ΄ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ созданиС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ) Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΠΈ языков сцСнариСв. Π­Ρ‚Π° трансформация Ρ‚ΠΎΡ‡Π½ΠΎ соотвСтствуСт Ρ‚Π΅ΠΌ условиям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²ΠΈΡ‚ΠΊΠ΅ историчСской спирали ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Π²ΠΎΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ C/C++ ΠΈ снизили Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ программирования Π½Π° ассСмблСрС.