Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ ΠΈ компиляция Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… характСристик PHP являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, языки программирования Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ C, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ для компиляции. Π§Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚?

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ язык программирования ΠΈΠ»ΠΈ интСрпрСтируСтся, Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ зависит ΠΎΡ‚ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ языка программирования. Π›ΡŽΠ±ΠΎΠΉ язык программирования ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ компилятора.

  • Π Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • ΠŸΡ€ΠΈΡ€ΠΎΠ΄Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°
  • Π—Π° ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Когда ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π΅ инструкции Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ процСссора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поэтапно выполняСт инструкции, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Как ΠΈΠ· выраТСния Β«a = 3;Β» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ процСссор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ?

ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компиляции. БущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния, извСстныС ΠΊΠ°ΠΊ компиляторы. Они ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ написали. Π—Π°Ρ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ строят ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для процСссора. Часто Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

На ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· этапов процСсса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ задСйствуСтся ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈ связываСт ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½ исполняСмый Ρ„Π°ΠΉΠ». Π’ΠΎΡ‚ схСма, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ Π΄Π°Π½Π½Ρ‹ΠΉ процСсс:

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

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ компиляторы Π±Ρ‹Π»ΠΈ написаны нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ с использованиСм ассСмблСров. Но Ρ†Π΅Π»ΡŒ компилятора ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: пСрСвСсти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² исполняСмый ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ процСссора.

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

НС всС языки программирования ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ это Π² своСй ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. НапримСр, Java прСдназначался для запуска Π² Β«ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΒ» срСдС, Π° Python всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ компиляции являСтся интСрпрСтация. Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ компиляторы ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹? Основная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π±Π΅Ρ€Π΅Ρ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ — это исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поэтапно Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚, сразу выполняя Π΅Π΅ инструкции.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ поэтапно ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ собствСнного исполняСмого Ρ„Π°ΠΉΠ»Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ пСрСдаСтся процСссору, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ сам являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, построСнным Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя.

Π­Ρ‚ΠΎ Π»ΠΎΠΌΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΡˆΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ новая Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°:

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

НапримСр, Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ языки программирования, ΠΊΠ°ΠΊ Python. Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π—Π°Ρ‚Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python, ΠΈ ΠΎΠ½ выполняСт всС описанныС Π²Π°ΠΌΠΈ шаги. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

C:>python myprogram.py

Π’ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Python — это исполняСмый Ρ„Π°ΠΉΠ». Π’Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ всС, Ρ‡Ρ‚ΠΎ находится Π² Ρ„Π°ΠΉΠ»Π΅ myprogram.py, ΠΈ ΠΎΠ½ выполняСт эти инструкции. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π΅ запустит myprogram.py Π±Π΅Π· Python. Π­Ρ‚ΠΎ Π½Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор. МоТно ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ нСпосрСдствСнно Π² процСссорС. Но эта ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² качСствС Π΅Π΅ части всСго ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Python.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Они просто Π±Π΅Ρ€ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство строк ΠΊΠΎΠ΄Π° Π·Π° Ρ€Π°Π· ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΅Π³ΠΎ.

НСкоторыС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚ΠΎ своСго Ρ€ΠΎΠ΄Π° псСвдо ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ быстрСС обрабатываСтся, ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ для исполнитСля (части ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, которая исполняСт), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСт Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΊΠΎΠ΄ источника.

Π•ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… этот Π²ΠΈΠ΄ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НапримСр, язык программирования Java «запускаСтся» Π½Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС. Она являСтся исполняСмым ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая считываСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ эмулируСт Ρ€Π°Π±ΠΎΡ‚Ρƒ процСссора. ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ процСссор ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π±Ρ‹Π» Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ процСссором.

Π£ мСня Π΅ΡΡ‚ΡŒ эмулятор для ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ приставки NIntendo. Когда я Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽ ROM-Ρ„Π°ΠΉΠ» Dragon Warrior, ΠΎΠ½ форматируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссор NES. Но Ссли я создаю Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссорС, я ΠΌΠΎΠ³Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Dragon Warrior Π½Π° любой машинС с эмулятором.

Π­Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ концСпция компиляции Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹. На любом процСссорС, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ я ΠΌΠΎΠ³Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ / эмулятор, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ / Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. Π’ этом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ основноС прСимущСство ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π½Π°Π΄ компилятором.

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

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

ОсновноС прСимущСство ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ — Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. МоТно Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° любом процСссорС ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Ρ‹Π» скомпилирован. Написанный ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ смыслС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ компиляторы.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΡ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ сборщики мусора, Π° Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ язык.

Π”Ρ€ΡƒΠ³ΠΈΠΌ прСимущСством ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

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

Π‘Π°ΠΌΡ‹ΠΌ большим нСдостатком ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² являСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… real-time ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠ³Ρ€Ρ‹ с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ симуляциСй. НСкоторыС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ содСрТат ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ just-in-time компиляторами (JIT). Они ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ исполнСниСм. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, вынСсСнныС Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ процСссоры становятся всС Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ, данная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° становится ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ.

ВсСгда ΠΈΡŽΠΌΠ΅ΠΉΡ‚Π΅ всСгда Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки программирования ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для компиляции ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Java.

Для мСня Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, скомпилировано Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Ссли ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ эффСктивно.

НСкоторыС систСмы Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ тСхничСскиС условия для эффСктивного использования ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСпосрСдствСнно скомпилировано, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C. Иногда Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вычислСния Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ интСнсивно, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. НапримСр, ΠΏΡ€ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠΌ распознавании голоса Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠΌ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ, ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эмулятор Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ языкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅.

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ? Бпасибо Π·Π° ΡƒΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя!

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. ΠœΡ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ Π²Π°ΠΌ Π·Π° ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ, подписки, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ!

Π’Π°Π΄ΠΈΠΌ Π”Π²ΠΎΡ€Π½ΠΈΠΊΠΎΠ²Π°Π²Ρ‚ΠΎΡ€-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Interpretation Versus CompilationΒ»

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ ΠΈ компиляция Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… характСристик PHP являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, языки программирования Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ C, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ для компиляции. Π§Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚?

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ язык программирования ΠΈΠ»ΠΈ интСрпрСтируСтся, Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ зависит ΠΎΡ‚ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ языка программирования. Π›ΡŽΠ±ΠΎΠΉ язык программирования ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ компилятора.

  • Π Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • ΠŸΡ€ΠΈΡ€ΠΎΠ΄Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°
  • Π—Π° ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Когда ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π΅ инструкции Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ процСссора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поэтапно выполняСт инструкции, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Как ΠΈΠ· выраТСния Β«a = 3;Β» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ процСссор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ?

ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компиляции. БущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния, извСстныС ΠΊΠ°ΠΊ компиляторы. Они ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ написали. Π—Π°Ρ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ строят ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для процСссора. Часто Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

На ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· этапов процСсса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ задСйствуСтся ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈ связываСт ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½ исполняСмый Ρ„Π°ΠΉΠ». Π’ΠΎΡ‚ схСма, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ Π΄Π°Π½Π½Ρ‹ΠΉ процСсс:

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

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ компиляторы Π±Ρ‹Π»ΠΈ написаны нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ с использованиСм ассСмблСров. Но Ρ†Π΅Π»ΡŒ компилятора ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: пСрСвСсти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² исполняСмый ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ процСссора.

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

НС всС языки программирования ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ это Π² своСй ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. НапримСр, Java прСдназначался для запуска Π² Β«ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΒ» срСдС, Π° Python всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ компиляции являСтся интСрпрСтация. Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ компиляторы ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹? Основная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π±Π΅Ρ€Π΅Ρ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ — это исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поэтапно Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚, сразу выполняя Π΅Π΅ инструкции.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ поэтапно ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ собствСнного исполняСмого Ρ„Π°ΠΉΠ»Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ пСрСдаСтся процСссору, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ сам являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, построСнным Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя.

Π­Ρ‚ΠΎ Π»ΠΎΠΌΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΡˆΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ новая Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°:

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

НапримСр, Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ языки программирования, ΠΊΠ°ΠΊ Python. Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π—Π°Ρ‚Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python, ΠΈ ΠΎΠ½ выполняСт всС описанныС Π²Π°ΠΌΠΈ шаги. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

C:>python myprogram.py

Π’ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Python — это исполняСмый Ρ„Π°ΠΉΠ». Π’Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ всС, Ρ‡Ρ‚ΠΎ находится Π² Ρ„Π°ΠΉΠ»Π΅ myprogram.py, ΠΈ ΠΎΠ½ выполняСт эти инструкции. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π΅ запустит myprogram.py Π±Π΅Π· Python. Π­Ρ‚ΠΎ Π½Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор. МоТно ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ нСпосрСдствСнно Π² процСссорС. Но эта ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² качСствС Π΅Π΅ части всСго ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Python.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Они просто Π±Π΅Ρ€ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство строк ΠΊΠΎΠ΄Π° Π·Π° Ρ€Π°Π· ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΅Π³ΠΎ.

НСкоторыС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚ΠΎ своСго Ρ€ΠΎΠ΄Π° псСвдо ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ быстрСС обрабатываСтся, ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ для исполнитСля (части ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, которая исполняСт), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСт Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΊΠΎΠ΄ источника.

Π•ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… этот Π²ΠΈΠ΄ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НапримСр, язык программирования Java «запускаСтся» Π½Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС. Она являСтся исполняСмым ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая считываСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ эмулируСт Ρ€Π°Π±ΠΎΡ‚Ρƒ процСссора. ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ процСссор ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π±Ρ‹Π» Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ процСссором.

Π£ мСня Π΅ΡΡ‚ΡŒ эмулятор для ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ приставки NIntendo. Когда я Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽ ROM-Ρ„Π°ΠΉΠ» Dragon Warrior, ΠΎΠ½ форматируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссор NES. Но Ссли я создаю Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссорС, я ΠΌΠΎΠ³Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Dragon Warrior Π½Π° любой машинС с эмулятором.

Π­Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ концСпция компиляции Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹. На любом процСссорС, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ я ΠΌΠΎΠ³Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ / эмулятор, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ / Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. Π’ этом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ основноС прСимущСство ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π½Π°Π΄ компилятором.

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

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

ОсновноС прСимущСство ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ — Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. МоТно Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° любом процСссорС ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Ρ‹Π» скомпилирован. Написанный ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ смыслС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ компиляторы.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΡ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ сборщики мусора, Π° Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ язык.

Π”Ρ€ΡƒΠ³ΠΈΠΌ прСимущСством ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

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

Π‘Π°ΠΌΡ‹ΠΌ большим нСдостатком ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² являСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… real-time ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠ³Ρ€Ρ‹ с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ симуляциСй. НСкоторыС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ содСрТат ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ just-in-time компиляторами (JIT). Они ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ исполнСниСм. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, вынСсСнныС Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ процСссоры становятся всС Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ, данная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° становится ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ.

ВсСгда ΠΈΡŽΠΌΠ΅ΠΉΡ‚Π΅ всСгда Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки программирования ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для компиляции ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Java.

Для мСня Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, скомпилировано Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Ссли ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ эффСктивно.

НСкоторыС систСмы Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ тСхничСскиС условия для эффСктивного использования ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСпосрСдствСнно скомпилировано, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C. Иногда Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вычислСния Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ интСнсивно, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. НапримСр, ΠΏΡ€ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠΌ распознавании голоса Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠΌ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ, ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эмулятор Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ языкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅.

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ? Бпасибо Π·Π° ΡƒΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя!

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. ΠœΡ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ Π²Π°ΠΌ Π·Π° ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ, подписки, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ!

Π’Π°Π΄ΠΈΠΌ Π”Π²ΠΎΡ€Π½ΠΈΠΊΠΎΠ²Π°Π²Ρ‚ΠΎΡ€-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Interpretation Versus CompilationΒ»

404: Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎ этому адрСсу, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π΅ сущСствуСт. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ссылки. ΠœΡ‹ извиняСмся Π·Π° Π»ΡŽΠ±Ρ‹Π΅ нСудобства.

Π§Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСйчас?

Если Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ посСщаСтС TechTarget, Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ! Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ встрСчаСмся. Π’ΠΎΡ‚ ΠΊΡƒΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ΡΡŽΠ΄Π°:

Поиск
  • Π£Π·Π½Π°ΠΉΡ‚Π΅ послСдниС новости.
  • Наша домашняя страница содСрТит ΡΠ°ΠΌΡƒΡŽ ΡΠ²Π΅ΠΆΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.
  • Наша страница «О нас» содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сайтС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ, TheServerSide.com.
  • Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ ΠΎΡ‚ вас.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

АрхитСктура прилоТСния

  • Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ†Π°Ρ€ΠΈΡ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Waterfall

    НСсмотря Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ, мСтодология Waterfall ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ бСсчислСнноС количСство ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. …

  • НСобработанный, Π½ΠΎ растущий ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» банковского обслуТивания Π±Π΅Π· ядра

    НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ банковскоС Π΄Π΅Π»ΠΎ Π±Π΅Π· ядра всС Π΅Ρ‰Π΅ являСтся Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ, ΠΎΠ½ΠΎ дСмонстрируСт большой ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» для освобоТдСния Π±Π°Π½ΠΊΠΎΠ² ΠΎΡ‚ ТСстких ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅…

  • ΠžΡΠ½ΠΎΠ²Ρ‹ достиТСния высокой сплочСнности ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΉ связанности

    Π›Π΅Π³ΠΊΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ «высокая ΡΠΏΠ»ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ, низкая ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒΒ», Π½ΠΎ Ρ‚Π°ΠΊ Π»ΠΈ Π»Π΅Π³ΠΊΠΎ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅? ΠœΡ‹ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основы .

    ..

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ПО

  • ВСстовыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования ΠΊΠΎΠ΄Π° Python

    ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прСимущСства Python…

  • Атрибуты эффСктивной стратСгии тСстирования Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

    ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ тСстирования Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ эффСктивныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ тСстирования Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ……

  • ОбновлСния Java 20 Project Loom готовят ΠΏΠΎΡ‡Π²Ρƒ для Java LTS

    Java 20 ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ½ΠΊΡƒΠ±ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ Project Loom, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌΠΈ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ стандартом Π² ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒΡΠΊΠΎΠΌ выпускС Java …

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ вычислСния

  • Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° основС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Amazon Route 53

    Если Π²Ρ‹ рассматриваСтС Amazon Route 53 ΠΊΠ°ΠΊ способ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ этот сСрвис.

  • 4 Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ привязки ΠΊ поставщику ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… услуг

    Π‘Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ планирования организация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π² Π»ΠΎΠ²ΡƒΡˆΠΊΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ этим …

  • ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ Π²Π°ΠΌ облачная стратСгия?

    БтратСгия, ориСнтированная Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ нСдостатки. Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ рисков ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, которая …

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

  • Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Π°Ρ‚Π°ΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ поставок 3CX нСясСн, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послСдствия ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ

    НСсколько заявлСний ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡΡΡ‹Π»Π°Π»ΠΈΡΡŒ Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ источник Π½Π΅Π΄Π°Π²Π½Π΅ΠΉ Π°Ρ‚Π°ΠΊΠΈ 3CX Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ поставок, Π½ΠΎ…

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ уязвимости мСдицинских устройств Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌ

    Уязвимости Π² критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… мСдицинских устройствах ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π³ΠΈΠ±Π΅Π»ΠΈ людСй. Но мнСния ΠΎ Ρ‚ΠΎΠΌ, насколько ΡΠ΅Ρ€ΡŒΠ΅Π·Π΅Π½ риск для . ..

    , расходятся.
  • ДСсктопноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3CX скомпромСтировано ΠΈ использовано Π² Π°Ρ‚Π°ΠΊΠ΅ Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ поставок

    ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ 3CX Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ нСсколько ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ обнаруТСния ΡƒΠ³Ρ€ΠΎΠ· Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ поставщика ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ …

ПоискAWS

  • AWS Control Tower стрСмится ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсколькими ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями

    МногиС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎ всСх сил ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своСй ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй AWS, Π½ΠΎ Control Tower ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ. Услуга Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚…

  • Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ модСль цСнообразования Amazon EKS

    Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ цСнообразования Amazon EKS Π΅ΡΡ‚ΡŒ нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΠΎΠΊΠΎΠΏΠ°ΠΉΡ‚Π΅ΡΡŒ Π² Ρ†ΠΈΡ„Ρ€Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ слуТбу…

  • Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ EKS ΠΈ самоуправляСмый Kubernetes Π½Π° AWS ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ

    AWS ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Kubernetes: Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° EC2 ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Amazon Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ EKS.

    Π‘ΠΌ…

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² схСму ΠΈ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² схСму ΠΈ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ β€” интСрпрСтация ΠΈ компиляция ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ, послСднСму Ρ€Π°Π·Π΄Π΅Π»Ρƒ, оглавлСнию.

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

Чистый ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΈ выполняСт Π΅Π³ΠΎ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Π΄Π΅Π»Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ β€” ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ· строк символов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π² Π²ΠΈΠ΄Ρƒ. Чистый ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² исходном тСкстС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ встрСчаСтся, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ. Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ языки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ UNIX ΠΈ Tcl.

Чистый компилятор Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π‘ΠΎΠ»ΡŒΡˆΠΈΠΌ прСимущСством компиляторов являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

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

По сути, компилятор β€” это странный Π²ΠΈΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ «притворяСтся». ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ записываСт, Ρ‡Ρ‚ΠΎ сдСлал Π±Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Π­Ρ‚ΠΎ Π·Π°Ρ‚Π΅ΠΌ просматриваСт запись дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ прСдпринял Π±Ρ‹, ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ инструкции, эффСкт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π±Ρ‹ сдСлал. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, выясняСт, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ присваивания ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ — ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡ€ΠΈ компиляции врСмя, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всСгда ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ встрСчаСтся Π² запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π Π°Π±ΠΎΡ‚Π° компилятора состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, которая всСгда ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅, ΠΈ ΠΏΠ»Π΅Π²Π°Ρ‚ΡŒ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Β«Π½Π°ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚ΡƒΒ», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² врСмя выполнСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это зависит ΠΎΡ‚ фактичСских Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. НапримСр, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if всСгда являСтся ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

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

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

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ· ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ исходного тСкста Π² структуру Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, проходя Ρ‡Π΅Ρ€Π΅Π· структуру Π΄Π°Π½Π½Ρ‹Ρ….

Π•ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ вСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для использования ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Scheme Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

  1. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прост, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Scheme. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ программирования Scheme.
  2. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, поэтому ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Ρ‹ΠΉ. Часто, ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ влияниС Π½Π° удобство использования ΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ систСмы, ΠΈ слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ»ΠΎΡ…ΠΈΠ΅.
  3. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Scheme ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ языковыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Scheme, ΠΊΠΎΠ³Π΄Π° встрСчаСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ понадобится ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΠ»ΠΈ скобки, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚.