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

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

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

Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ язык стал Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠ΅Π½Π΅Π΅ связанным со своСй клиСнтской срСдой. Π­Ρ‚ΠΎ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ любого ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ спСциализированного языка. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ JavaScript Π² настоящСС врСмя взаимодСйствуСт со своим ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ чтСния ΠΈ записи Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ модСлью Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Document Object Model, DOM). Π”Π°Π½Π½Ρ‹ΠΉ язык Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ API-интСрфСйсы для связи с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· DOM, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² стандартС для JavaScript Π•Π‘ΠœΠ-262 ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ справочником ΠΏΠΎ JavaScript являСтся ΠΊΠ½ΠΈΠ³Π° "JavaScript: The Definitive Guide" [20]. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ доступСн Π² Web67. Π―Π·Ρ‹ΠΊ JavaScript прСдставляСт собой интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для изучСния ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ максимально Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ языку, фактичСски Π½Π΅ являясь Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, связь ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтским JavaScript ΠΈ срСдой Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· СдинствСнный DOM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ спроСктирована ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ модСлью для Π΄Ρ€ΡƒΠ³ΠΈΡ… ситуаций встраивания.

8.3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈ-языков

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

НСкоторыС родствСнныС ΠΈΠ΄Π΅ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² описании ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ проСктирования "Alternate Hard And Soft Layers" <http://www.c2.com/cgi/wiki7Alternate-HardAndSoftLayers> ΠΈ "Scripted Components" <http://www.doc.ic.ac.uk/ ~np2/patterns/scripting/scripting.html>.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅ стилСй ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΈΠ½ΠΈ-языков ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ "Notable Design Patterns for Domain-Specific Languages" [77].

8.3.1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ уровня слоТности

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

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

ΠœΠ°ΠΊΡ€ΠΎΠ²ΠΈΡ€ΡƒΡΡ‹ Microsoft Word ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈ-язык ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ опасной Π±Ρ€Π΅ΡˆΡŒΡŽ Π² бСзопасности систСмы, простои ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ обходятся Π² ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². ПолСзно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСсмотря Π½Π° сущСствованиС Π² ΠΌΠΈΡ€Π΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 20 ΠΌΠ»Π½. ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ68 Unix, Π² Unix-срСдС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ Π²ΡΠΏΡ‹ΡˆΠ΅ΠΊ макровирусов, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для Windows. БущСствуСт мноТСство ΠΏΡ€ΠΈΡ‡ΠΈΠ½ этому, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΡƒΡŽ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния бСзопасности ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Unix; Π½ΠΎ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹ Π² Unix ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ исполняСмоС содСрТимоС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, просматриваСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ".

Если сущСствуСт какая-Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π½Π΅Π±Π»Π°Π³ΠΎΠ½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… источников, рискованныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΈΠ½ΠΈ-языка прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² привСсти ΠΊ нСобходимости Π΅Π³ΠΎ подавлСния. Π―Π·Ρ‹ΠΊΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Java ΠΈ JavaScript, явно ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² "пСсочницС", Ρ‚.Π΅. ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ своСму ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎ сдСлано Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π½ΠΎ ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ дСструктивным опСрациям со стороны ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

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

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

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

БущСствуСт мноТСство ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² конструировании ΠΌΠΈΠ½ΠΈ-языков, Π³Π΄Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ различия Π² эксплуатационных качСствах ΠΈ лСгкости использования инструмСнта.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° языка Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ являСтся рассмотрСниС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ сообщСниям ΠΎΠ± ошибкС. Если Π² намСрСниях программиста сущСствуСт Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ сообщСниС ΠΎΠ± ошибкС цСлСсообразно, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях намСрСния ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Π»ΠΈΠΊΠΈΠΌ Π±Π»Π°Π³ΠΎΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ язык просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ дСйствия. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся Π‘, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅ списка ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° массива, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½ΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² массива. ΠšΠΎΠ½Ρ‚Ρ€ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся ΠΏΡ€ΠΈΠ΄ΠΈΡ€Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… HTML-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ², особСнно ΠΈΡ… ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π±Π΅ΡΡˆΡƒΠΌΠ½ΠΎ ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ·-Π·Π° Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ошибки вСрстки.

Π‘Ρ‚ΠΈΠ² ДТонсон.

Π’ Π΄Π°Π½Π½ΠΎΠΌ вопросС, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ вкус ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠ΅ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΈΡ‡Π΅ΠΌ. Разрабатывая ΠΌΠΈΠ½ΠΈ-язык, Π½Π΅ слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠΈΠ½ΠΈ-языки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ языковой синтаксис, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡ… Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Π’ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языках Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структур, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈΠ· языковых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈ-языка, вСроятно, Π·Π½Π°ΠΊΠΎΠΌΡ‹. О языкС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎ языкС, ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ сСбя: "Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΌ?" ΠΈ Π΄Π°ΠΆΠ΅ "приятно Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ?". Π—Π΄Π΅ΡΡŒ, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… областях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Дэвида Π“Π΅Π»Π΅Π½Ρ‚Π΅Ρ€Π°: красота β€” основная Π·Π°Ρ‰ΠΈΡ‚Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ² слоТности.