Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

ВрСмя чтСния ΡΡ‚Π°Ρ‚ΡŒΠΈ ~8 ΠΌΠΈΠ½ΡƒΡ‚

Наши ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ β€” это ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ пишСм инструкции. ΠŸΡ€ΠΈ этом для ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡ‹ пишСм тСксты Π½Π° английском (Π½Ρƒ ΠΈΠ»ΠΈ русском, Ссли ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ 1Π‘) языкС. РассказываСм, ΠΊΠ°ΠΊ наши ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½Ρ‹Π΅ языковыС инструкции ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈ этом Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ тСряя смысла.

Π­Ρ‚ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ A Deeper Inspection Into Compilation And Interpretation ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Vaidehi Joshi ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Vimeo. ΠŸΠΎΠ²Π΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ вСдСтся ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Π°Π²Ρ‚ΠΎΡ€Π°.

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

Когда ΠΎΠ΄Π½Π° программистка ΠΈΠ· Π“Π°Ρ€Π²Π°Ρ€Π΄Π° Π½Π°ΡƒΡ‡ΠΈΠ»Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ‡Π΅Π»ΠΎΠ²Π΅Ρ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ, Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ просто Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ воспользовался β€” люди Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ.

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ 50-Ρ… Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС ΠΌΠΈΡ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ инструкции, Π° Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ упрямство людСй Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€ΠΎΠΉΠ΄Π΅ΠΌ вмСстС с Π½ΠΈΠΌΠΈ этот тСрнистый ΠΏΡƒΡ‚ΡŒ, выстланный ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ.

ВсС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ идСя языков

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ являСтся языком, ΠΏΡƒΡΡ‚ΡŒ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ простым. Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΡƒΡ‚ программисты, Ρ‚ΠΎΠΆΠ΅ написан Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ языкС. Если ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π΄Π²Π° этих ΠΊΠΎΠ΄Π° β€” ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΈ созданный Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Π½Π° Π΄Π²Π° тСкста Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ прСдставим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ. Он обязан ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ смысл тСкста, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ тСкст Π½Π° ошибки
  • Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ лСксичСский ΠΈ синтаксичСский Π°Π½Π°Π»ΠΈΠ·
  • Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ становится понятно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎ этого Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹, слоТно Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ языками. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ для нас, эти трудности Π½Π΅ Π½Π°ΠΏΡƒΠ³Π°Π»ΠΈ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΡƒ Π±ΡƒΠ½Ρ‚Π°Ρ€Π΅ΠΉ β€” ГрСйс Π₯ΠΎΠΏΠΏΠ΅Ρ€ ΠΈ Π‘Ρ‚ΠΈΠ²Π° РассСла. Они Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… лабораториях, Π½ΠΎ ΠΎΠ±Π° пошли Π½Π°ΠΏΠ΅Ρ€Π΅ΠΊΠΎΡ€ Π½Π°Ρ‡Π°Π»ΡŒΡΡ‚Π²Ρƒ ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ с ΠΌΠ°Π³ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, пСрСнСсСмся Π² БША ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°.

ΠžΡ‚ Ρ†ΠΈΡ„Ρ€ ΠΊ словам

ΠŸΡ€Π΅ΡΠΏΠ΅Ρ€ Π­ΠΊΠΊΠ΅Ρ€Ρ‚ ΠΈ Π”ΠΆΠΎΠ½ Мокли Π΄Π΅Π»Π°Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ для Π²ΠΎΠ΅Π½Π½Ρ‹Ρ…. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² Ρ€ΠΎΠ΄Π½ΠΎΠΌ унивСрситСтС, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Ρ‚ΠΎΡ‚ стал ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ‚Π΅Π½Ρ‚Ρ‹ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­ΠΊΠΊΠ΅Ρ€Ρ‚Ρƒ ΠΈ Мокли это Π½Π΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ, ΠΎΠ½ΠΈ ΡƒΡˆΠ»ΠΈ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΠΈΡ€ΠΌΡƒ ΠΏΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

Π’Π°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°ΠΊΠ°Π· ΠΎΡ‚ Π‘ΡŽΡ€ΠΎ пСрСписи насСлСния БША, Π½ΠΎ для этого ΠΈΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠΎΠ²Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Π»ΠΎΡ‡ΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π½ΠΈΠ·ΠΈΡ‚ΡŒ Ρ†Π΅Π½Ρƒ Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°, Π½ΠΎ Π·Π°Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π² ΠΈΡ‚ΠΎΠ³Π΅ получился ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ. Π•Ρ‰Π΅ Π±Ρ‹, вСдь Π½Π°Π΄ Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ Ρ‚ΠΎΠΌ числС ΠΈ ГрСйс Π₯ΠΎΠΏΠΏΠ΅Ρ€.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: ΠžΡ‚ экспСримСнта Π΄ΠΎ стандарта. ΠŸΠΈΠΎΠ½Π΅Ρ€Ρ‹ Π²Π΅Π±Π° Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ появлСния синСй гипСрссылки

ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π₯ΠΎΠΏΠΏΠ΅Ρ€ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»Π° ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ Π½Π΅ ΠΌΡƒΡ‡ΠΈΡ‚ΡŒΡΡ с ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ Π½Π° английском языкС. НапримСр, ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅ΠΌΡƒ: Β«Π’Ρ‹Ρ‡Ρ‚ΠΈ ΠΏΠΎΠ΄ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π½Π°Π»ΠΎΠ³ ΠΈΠ· Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹Β». Как ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Π΅ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΡΡ‚Π²ΠΎ, Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅: «Они мягко объяснили ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ лишь арифмСтичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ смогут Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹Β», β€” рассказывала Π₯ΠΎΠΏΠΏΠ΅Ρ€ Π² своСй Π±ΠΈΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Β«Grace Hopper: Navy Admiral and Computer PioneerΒ».

Но ГрСйс Π₯ΠΎΠΏΠΏΠ΅Ρ€ Π½Π΅ Ρ‚Π°ΠΊ Π»Π΅Π³ΠΊΠΎ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ. Π­Ρ‚Π° ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π° пошла Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚ Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Π΅ΠΌ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ благодаря напористости β€” Π΅Π΅ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π° вСса. Она Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌΠΈ ΠΈ стала Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ ΡˆΡ‚Π°Π±Π°.

Π₯ΠΎΠΏΠΏΠ΅Ρ€ проявила упорство ΠΈ Π½Π° Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅. Она Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π² ΠΌΠΈΡ€Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволял Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ Π½Π° английском языкС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π° ΠΊΡ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ! ΠŸΡ€ΠΈ этом сами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТными.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠΌ Π±Ρ‹Π» компилятор

Π₯ΠΎΠΏΠΏΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ свой ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π² 1952 Π³ΠΎΠ΄Ρƒ, ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ. Π’Ρ€ΠΈ Π³ΠΎΠ΄Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ пользовался, ΠΏΠΎΠΊΠ°, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π² ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²Π΅ ΠΎΠ±ΠΎΡ€ΠΎΠ½Ρ‹ БША.

Π—Π°Ρ‡Π΅ΠΌ Π²ΠΎΠ΅Π½Π½Ρ‹ΠΌ понадобился ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ°Π·Π°Π»ΠΈ Π² Π‘ΡŽΡ€ΠΎ пСрСписи насСлСния? Π—Π°Ρ‡Π΅ΠΌ ΠΈΠΌ Π½ΡƒΠΆΠ½Π° Π±Ρ‹Π»Π° тСхнология Π₯ΠΎΠΏΠΏΠ΅Ρ€, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ°Ρ…Π½ΡƒΠ»ΠΈ Ρ€ΡƒΠΊΠΎΠΉ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ?

Π”Π΅Π»ΠΎ Π² устройствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° (ΠΊΠ°ΠΊ говорят Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, транслятора). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π» этот транслятор:

  1. Π₯ΠΎΠΏΠΏΠ΅Ρ€ писала ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π½Π° английском языкС β€” Β«Π’Ρ‹Ρ‡Ρ‚ΠΈ ΠΏΠΎΠ΄ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π½Π°Π»ΠΎΠ³Β»
  2. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ» ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” Ρ‚ΠΎΠ³Π΄Π° это Π±Ρ‹Π»ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ Π±ΡƒΠΊΠ²Ρ‹
  3. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ выполнял ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π΅ зная Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π½Π° английском.

Как Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, транслятор Π₯ΠΎΠΏΠΏΠ΅Ρ€ Π΄Π΅Π»Π°Π» вСсь ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ тСкста Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Вранслятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ вСсь ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, называСтся компилятором. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ познакомимся ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ трансляторов, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ компиляторов.

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

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

Π›ΡŽΠ΄ΠΈ Π² амСриканском ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π΅ считали компилятор Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Однако концСпция трансляторов, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ языка COBOL, ΠΏΡ€ΠΎΡ‡Π½ΠΎ вошли Π² ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹.

Но ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π΅ компилируя. Π’Ρ‹ построчно Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² консоли ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ошибками Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ». Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° β€” Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° трансляции Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π­Ρ‚ΠΎΡ‚ транслятор ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΡƒΠ½Ρ‚Π°Ρ€ΡŒ: Π΅Π³ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ€Π³Π°Π»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹, ΠΈ ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» Ρ‡Π΅Ρ€Ρ‚Ρ‹ индустрии Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π₯ΠΎΠΏΠΏΠ΅Ρ€ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»Π°ΡΡŒ, Π½ΠΎ Π² этот Ρ€Π°Π· Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΡˆΡ‚Π°Ρ‚Π΅.

Как ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ

На Π΄Π²ΠΎΡ€Π΅ ΠΈΠ΄Π΅Ρ‚ 1958 Π³ΠΎΠ΄, компиляторы Π΄Π°Π²Π½ΠΎ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ β€” Π² Ρ‚ΠΎΠΌ числС Π² ΠœΠ°ΡΡΠ°Ρ‡ΡƒΡΠ΅Ρ‚ΡΠΊΠΎΠΌ тСхнологичСском унивСрситСтС, Π³Π΄Π΅ стоит IBM 704. Π­Ρ‚Π° гигантская дорогая ΡˆΡ‚ΡƒΠΊΠΎΠ²ΠΈΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всю ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ. И Π½Π° Π½Π΅ΠΉ куСтся Lisp β€” язык, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ 30 Π»Π΅Ρ‚ послС этого писался вСсь ΠΊΠΎΠ΄ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² области искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°.

Но сСйчас, Π² октябрС 58-Π³ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· мСстных Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² прохлаТдаСтся вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π°Π΄ΡΠΊΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ. Он углубился Π² Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ своСго профСссора ΠΈ ΠΏΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Ρƒ босса, Π”ΠΆΠΎΠ½Π° ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ. Π‘Π΅Π·Π΄Π΅Π»ΡŒΠ½ΠΈΠΊΠ° Π·Π²Π°Π»ΠΈ Π‘Ρ‚ΠΈΠ² РассСл.

Β«ΠŸΠΎΡ‚ΠΎΠΌ Π‘Ρ‚ΠΈΠ² подошСл ΠΊΠΎ ΠΌΠ½Π΅ ΠΈ сказал: «Π‘Π»ΡƒΡˆΠ°ΠΉ, Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ нас Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ eval?». Π― посмСялся ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ: «Π‘Π»ΡƒΡˆΠ°ΠΉ, Π½Π΅ ΠΏΡƒΡ‚Π°ΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ? Eval β€” это тСорСтичСскоС понятиС»Β», β€” Π”ΠΆΠΎΠ½ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ для симпозиума ACM 1984 Π³ΠΎΠ΄Π°.

ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ Ρ…ΠΎΡ‚Π΅Π» ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅, отказывая РассСлу Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ сами: eval β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΡŽΠ±ΡƒΡŽ строку Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π΅Ρ‰Π΅ выполняСт Π΅Π΅. Π­Ρ‚ΠΎ Π΄Π²Π° дСйствия Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄! НСвыполнимый Ρ‚Ρ€ΡŽΠΊ для транслятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ процСссору Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π·Π° Ρ€Π°Π·.

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

ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ запуск ΠΊΠΎΠ΄Π° β€” нСпростая Π·Π°Π΄Π°Ρ‡Π°. ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Но Ссли Π²Ρ‹ просто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ инструкции процСссору построчно, Ρ‚ΠΎ Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Он отправляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π΅ Π² процСссор, Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ β€” это позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ интСрСсныС многоступСнчатыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅

eval.

ΠžΡ‚ транслятора зависит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ‹Ρ‚ программиста, Π½ΠΎ ΠΈ ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС? Какой транслятор Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС? ΠžΡ‚Π²Π΅Ρ‚ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Вранслятор влияСт Π½Π° ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚Π΅ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ Ρ†ΠΈΠΊΠ»Π°ΠΌ ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ Ρ‚Π°ΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π²Π°ΠΌ попадаСтся интСрСсный ΠΎΡ‚Π²Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ студСнта, поэтому Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ смотритС Π½Π° Π²Ρ‹Π²ΠΎΠ΄ Π² консоли.

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

Π•Ρ‰Π΅ Π½Π°ΠΌ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ студСнта MacOS, Π° Ρƒ вас β€” Windows: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π΅Ρ€Π΅Ρ‚ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ совмСстимости Π½Π° сСбя, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π° Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ всСх стоял ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ идСальна для распространСния Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚.

Для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ: компиляция быстрСС ΠΈ бСзопаснСС, хотя Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° этот процСсс ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΉΡ‚ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. Волько Π²ΠΎΡ‚ придСтся ΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ совмСстимости, хотя ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подходящиС Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΆΠ΅Π»Π΅Π·Ρƒ ΠΈ софту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ компилятор быстрСС?

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ компилятор запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·: Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ ΠΎΡ‚Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ процСссору. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΆΠ΅ запускаСтся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΊΠΎΠ΄Π° ΠΈ Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² компиляторС ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ, поэтому трСбуСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π΅Π³ΠΎ исполнСния.

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

Никогда Π½Π΅ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ: Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ говорят, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ постоянно ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° мСстС. Π Π°Π·Π²ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ β€” Π½Π° Π₯СкслСтС Π΅ΡΡ‚ΡŒ сотни курсов ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках ΠΈ тСхнологиях

2.

3 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ транслятора, компилятора ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

Π’Ρ‹Π±ΠΈΡ€Π΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ вас Ρ€Π°Π·Π΄Π΅Π»β€Ž > β€ŽΠ“Π»Π°Π²Π° 2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡβ€Ž > β€Ž

2.3 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ транслятора, компилятора ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

Вранслятор (Π°Π½Π³Π».Β translatorΒ β€” ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ) β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ. Она ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· языков высокого уровня, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄[15].

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Β (Π°Π½Π³Π».Β compilerΒ β€” ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒ) Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒΒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ создаСт Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° машинном языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΈ выполняСтся.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ компиляторов:

1) GCCΒ 
2) Free Pascal CompilerΒ 
3) ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ C, C++ ΠΈ Fortran ΠΎΡ‚ Sun Microsystems Inc.Β 
4) Watcom Fortran/C++ CompilerΒ 
5) Intel C++/Fortran compiler
6) ICC AVR.

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Β (Π°Π½Π³Π».Β interpreterΒ β€” ΠΈΡΡ‚ΠΎΠ»ΠΊΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, устный ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ) ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΈ выполняСт программу строка Π·Π° строкой.Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ компилятора, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° машинном языкС. Распознав ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ исходного языка, ΠΎΠ½ Ρ‚ΡƒΡ‚ ΠΆΠ΅ выполняСт Π΅Π΅. Как Π² компиляторах, Ρ‚Π°ΠΊ ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Но ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ позволяСт Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… послС написания Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, отсутствиС Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ машинного ΠΊΠΎΠ΄Π° позволяСт Π½Π΅ Β«Π·Π°Ρ…Π»Π°ΠΌΠ»ΡΡ‚ΡŒΒ» внСшниС устройства Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π° сам ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ достаточно Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°ΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π² Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнном языкС программирования. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки, Ρ‚ΠΈΠΏΠ° Java Script, VB Script, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС. НСдостатком ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² являСтся низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² 50-100 Ρ€Π°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ….

Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ

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

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ β€” это транслятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π²ΠΎΠ΄, Ρ‚. Π΅. язык высокого уровня, ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° языкС Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Ρ‚. Π΅. машинном языкС ΠΈΠ»ΠΈ языкС ассСмблСра. Π Π°Π±ΠΎΡ‚Π° компилятора Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ², написанных Π½Π° языкС программирования, Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 0 ΠΈ 1), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ.

  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΡƒΠΌΠ½Π΅Π΅ ассСмблСра, ΠΎΠ½ провСряСт всСвозмоТныС ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, ошибки ΠΈ Ρ‚.Π΄.
  • Но врСмя выполнСния Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ большС ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ памяти. Π£ Π½Π΅Π³ΠΎ низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ компилятор выполняСт всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹.

Роль компилятора

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

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° компилятора

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

НСдостатки компилятора

  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксичСскиС ошибки ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСмантичСскиС ошибки.
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² случаС объСмного ΠΊΠΎΠ΄Π°.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, пСрСводящая язык программирования Π½Π° понятный язык. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ язык высокого уровня Π² язык-посрСдник. Он содСрТит ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированный ΠΊΠΎΠ΄, исходный ΠΊΠΎΠ΄ ΠΈ Ρ‚. Π΄.

  • ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ транслируСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго мСньшС компиляторов.

Роль ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

ΠŸΡ€ΠΎΡΡ‚Π°Ρ Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ язык. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ построчно Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ язык высокого уровня Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ языкС, Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ.
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ автоматичСски ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ сниТаСт риск ошибок памяти.
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ.

НСдостатки ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с скомпилированным ΠΊΠΎΠ΄ΠΎΠΌ.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Β  Β  Β  ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΒ 

Π­Ρ‚Π°ΠΏΡ‹ программирования:

  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • Анализ языка компилятором ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ошибки Π² случаС любого Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ утвСрТдСния.
  • Π’ случаС отсутствия ошибок компилятор ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
  • БвязываниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.
  • НаконСц запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π¨Π°Π³ΠΈ программирования:

  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • БвязываниС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ гСнСрация машинного ΠΊΠΎΠ΄Π° Π½Π΅ трСбуСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ.
  • Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ исходных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ сохраняСт ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык Π² Ρ„ΠΎΡ€ΠΌΠ΅ машинного ΠΊΠΎΠ΄Π° Π½Π° дисках.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π΅ сохраняСт ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС, Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ компилятор.

МодСль связывания-Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ являСтся Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ модСлью компилятора.

МодСль ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ β€” это базовая рабочая модСль ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ создаСт Π²Ρ‹Π²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ (.exe).

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚.

Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС компиляции Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСкомпиляции всСго ΠΊΠΎΠ΄Π°.

Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° всСго ΠΊΠΎΠ΄Π°.

Ошибки ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² компиляторС послС совмСстной компиляции Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя.

Ошибки ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·Π°Ρ€Π°Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ быстрСС благодаря Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ построчно, поэтому оптимизация Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с компиляторами.

НС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ исходного ΠΊΠΎΠ΄Π° для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ выполнСния.

Для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ выполнСния трСбуСтся исходный ΠΊΠΎΠ΄.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС компиляции всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ происходит послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Ρ‡Π°Ρ‰Π΅ тратят большоС количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ· исходного ΠΊΠΎΠ΄Π°.

Для сравнСния, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°ΠΌ трСбуСтся мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π°Π½Π°Π»ΠΈΠ·Π° исходного ΠΊΠΎΠ΄Π°.

ИспользованиС ЦП большС Π² случаС компилятора.

ИспользованиС ЦП мСньшС Π² случаС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

ИспользованиС компиляторов Π² основном происходит Π² производствСнной срСдС.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² срСдах программирования ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Код ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° постоянно сохраняСтся для использования Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Код ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ сохраняСтся для использования Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

C, C++, C# ΠΈ Ρ‚. Π΄. β€” это языки программирования, основанныС Π½Π° компиляторС.

Python, Ruby, Perl, SNOBOL, MATLAB ΠΈ Ρ‚. Π΄. β€” это языки программирования, основанныС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

1. Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ компилятор?

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

2. Π§Ρ‚ΠΎ быстрСС: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ компилятор?

ΠŸΡ€ΠΈ рассмотрСнии любого процСсса ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ компилятор. Но всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° какая-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΆΠ΅ скомпилирована, Π² этом случаС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скомпилированной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся быстрСС, Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ компиляторов?

НиТС пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ компиляторов:

  1. ΠšΡ€ΠΎΡΡ-компилятор
  2. БобствСнный компилятор
  3. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Bootstrap
  4. ДСкомпилятор
  5. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ исходного ΠΊΠΎΠ΄Π° iler
  6. Language Rewriter
  7. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°
  8. Just-in -time Compiler

4. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ²?

НиТС пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠ²:

  1. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°
  2. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
  3. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ абстрактного синтаксичСского Π΄Π΅Ρ€Π΅Π²Π°
  4. БвоСврСмСнная компиляция

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ

900 74

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ β†’ ← прСдыдущая

Π’ основном ΠΌΡ‹ пишСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языках высокого уровня , понятных людям. Π―Π·Ρ‹ΠΊΠΈ высокого уровня содСрТат слова ΠΈ Ρ„Ρ€Π°Π·Ρ‹ ΠΈΠ· чСловСчСских языков, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ английского. Π―Π·Ρ‹ΠΊ программирования высокого уровня Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ 9. 0087 исходный ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Однако ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ машина Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ эти языки программирования высокого уровня. Он понял Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свой ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ , Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² 0 ΠΈ 1 Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ для выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ соотвСтствСнно.

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

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€

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

ВсС этапы компиляции исходного ΠΊΠΎΠ΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Π΄Π²Π΅ Ρ„Π°Π·Ρ‹: Π€Π°Π·Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π€Π°Π·Π° синтСза .

  • Π€Π°Π·Π° Π°Π½Π°Π»ΠΈΠ·Π°: Π­Ρ‚Π° Ρ„Π°Π·Π° компиляции Ρ‚Π°ΠΊΠΆΠ΅ извСстна ΠΊΠ°ΠΊ Ρ„Π°Π·Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ исходный ΠΊΠΎΠ΄ дСлится Π½Π° основныС части для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, синтаксиса ΠΈ сСмантики ΠΊΠΎΠ΄Π°; послС этого гСнСрируСтся ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ . Π­Ρ‚Π°ΠΏ Π°Π½Π°Π»ΠΈΠ·Π° процСсса компиляции Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя лСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, сСмантичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€.
  • Π€Π°Π·Π° синтСза: Π€Π°Π·Π° синтСза Ρ‚Π°ΠΊΠΆΠ΅ извСстна ΠΊΠ°ΠΊ Ρ„Π°Π·Π° бэкСнда, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» сгСнСрирован Π½Π° этапС Π°Π½Π°Π»ΠΈΠ·Π°) оптимизируСтся ΠΈ гСнСрируСтся Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ машинном ΠΊΠΎΠ΄Π΅ . Π­Ρ‚Π°ΠΏ синтСза процСсса компиляции Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ β€” это Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ исходный ΠΊΠΎΠ΄ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. Однако ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ язык программирования высокого уровня Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык построчно ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ

Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ
Π­Ρ‚Π°ΠΏΡ‹ программирования
  • ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² исходном ΠΊΠΎΠ΄Π΅.
  • Compile ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ваши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ошибка, ΠΎΠ½Π° Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС.
  • Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ содСрТит ошибок, Ρ‚ΠΎ компилятор ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ связываСт всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ΄Π° Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая называСтся исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ.
  • НаконСц, ΠΎΠ½ запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
  • ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² исходном ΠΊΠΎΠ΄Π΅.
  • БвязываниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ происходит, ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ гСнСрируСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ программирования исходного ΠΊΠΎΠ΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ построчно Π²ΠΎ врСмя ΠΈΡ… выполнСния. Если Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² обнаруТиваСтся ошибка, дальнСйшСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСкращаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ошибка Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ устранСна.
Π’ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ сразу ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ высокоуровнСвого программирования Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ исходный ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, врСмя выполнСния ΠΊΠΎΠ΄Π° сокращаСтся. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ исходный ΠΊΠΎΠ΄ интСрпрСтируСтся построчно, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ исправлСниС ошибок становится ΠΏΡ€ΠΎΡ‰Π΅.
НСдостаток Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ошибка ΠΈΠ»ΠΈ логичСскиС измСнСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ ΠΊ исходному ΠΊΠΎΠ΄Ρƒ. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚Π΅Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… установлСн Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.
ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ БохраняСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ· исходного ΠΊΠΎΠ΄Π° вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° диск. Он Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сохраняСт ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° дискС.
ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρƒ трСбуСтся ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π°Π½Π°Π»ΠΈΠ·Π° исходного ΠΊΠΎΠ΄Π°. Однако Π² Ρ†Π΅Π»ΠΎΠΌ скомпилированный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ выполняСтся быстрСС, Ρ‡Π΅ΠΌ сТатиС Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ трСбуСтся мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π°Π½Π°Π»ΠΈΠ·Π° исходного ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с компилятором. Однако Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ выполняСтся ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ сТатия компилятором.
ГСнСрация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ создаСт Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π² Π²ΠΈΠ΄Π΅ исполняСмого Ρ„Π°ΠΉΠ»Π°), которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² качСствС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ провСряСт исходный ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²ΠΎ врСмя выполнСния.
ИсполнСниС ΠŸΡ€ΠΎΡ†Π΅ΡΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ происходит ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ процСсса Π΅Π΅ компиляции. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС компиляции всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΡ†Π΅ΡΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ шагов ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ, поэтому выполняСтся построчно ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.
ВрСбования ΠΊ памяти Бкомпилированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° гСнСрируСтся Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈ Π² дальнСйшСм трСбуСтся ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² большСм количСствС памяти. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅Ρ‚ нСобходимости Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти.
Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Бкомпилированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° привязана ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ машинС. Для выполнСния трСбуСтся Ρ‚ΠΎΡ‚ ΠΆΠ΅ компилятор Π½Π° машинС; C ΠΈ C++ β€” самыС популярныС языки программирования, основанныС Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ компиляции. Π’ Π²Π΅Π±-срСдах компиляция Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для запуска Π΄Π°ΠΆΠ΅ нСбольшого ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСсколько Ρ€Π°Π·. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²Π΅Π±-срСдС, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅. JavaScript, Python, Ruby основаны Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.
Ошибка выполнСния ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ прСдупрСТдСниях Π²ΠΎ врСмя компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±Π΅Π· исправлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ошибок Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с компилятором.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *