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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования: ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

РассказываСт Аарон ΠšΡ€Π°ΡƒΡΒ 


Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ этого Ρ†ΠΈΠΊΠ»Π°, я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° всё Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ, Π½ΠΎ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ€Π΅Π΄ΠΊΠΎ сталкиваСмся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈ поэтому Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΡ… ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ. Π’Π΅ΠΌΠ° сСгодняшнСй ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки.Β 

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

ВступлСниС

ΠœΡ‹ полагаСмся Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ компиляция ΠΈ интСрпрСтация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ наш ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. Код ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исполнСн Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС послС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ (ΠΏΡƒΡ‚Ρ‘ΠΌ компиляции) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ построчно Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, которая Π΄Π΅Π»Π°Π΅Ρ‚ это вмСсто ОБ (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€).

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

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

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков β€” это ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ исполнСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΈ эффСктивнСС, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, особСнно Ссли ΡƒΡ‡Π΅ΡΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соврСмСнных скриптовых ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков.

НизкоуровнСвыС языки ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ставится Π²Ρ‹ΡˆΠ΅ кроссплатформСнности. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС возмоТностСй Π² ΠΏΠ»Π°Π½Π΅ контроля Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ использованиСм процСссора. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡΒ C, C++, Erlang, Haskell ΠΈ Π±ΠΎΠ»Π΅Π΅ соврСмСнныС языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊΒ Rust ΠΈΒ Go.

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ для исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄; вмСсто этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построчно исполнят ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹. Π Π°Π½ΡŒΡˆΠ΅Β ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π» ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ с ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠ°ΠΊ JIT-компиляция, Ρ€Π°Π·Ρ€Ρ‹Π² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΈΒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками сокращаСтся. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡ PHP, Perl, RubyΒ ΠΈΒ Python. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали ΠΏΡ€ΠΎΡ‰Π΅ благодаря ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языкам:

  • ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹;
  • РСфлСксия;
  • ДинамичСская типизация;
  • МСньший Ρ€Π°Π·ΠΌΠ΅Ρ€ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ²:
  • ДинамичСскиС области видимости.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ нСдостатком ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языком являСтся ΠΈΡ… нСвысокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ исполнСния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, JIT-компиляция позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс благодаря ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ инструкции Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Бонус: Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄-языки

Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄-языки β€” это Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для исполнСния ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ. Java ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΒ .NET β€” это Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄-языков. На самом Π΄Π΅Π»Π΅,Β Java Virtual Machine (JVM) β€” это Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ популярная Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π½Π΅Π΄Π°Π²Π½ΠΎ стало извСстно, Ρ‡Ρ‚ΠΎ Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии Java Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ статичСская компиляция.

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

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

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

МногиС языки Π² наши Π΄Π½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, сводя Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π½Π° Π½Π΅Ρ‚. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° исполнСния ΠΊΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ прСимущСства ΠΈ нСдостатки.

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

Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄-языки, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны ΠΎΠ±ΠΎΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² языков, ΠΈ Ρƒ Π½ΠΈΡ… это Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ получаСтся.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈΒ Β«Programming Concepts: Compiled and Interpreted LanguagesΒ»

КакиС Π±Ρ‹Π²Π°ΡŽΡ‚ языки программирования? / Π₯Π°Π±Ρ€

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Ρ‹ пСриодичСски ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ мСня ΠΊΠ°ΠΊΠΎΠΉ язык программирования ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρƒ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, я Π½Π΅ ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ‡ΠΈΡ‚Π΅ этот язык, Π° этот Π½Π΅ ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ ΡΡ‡Π°ΡΡ‚ΡŒΠ΅. Но Π·Π°Ρ‚ΠΎ ΠΌΠΎΠ³ Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ языках программирования Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот Π²Ρ‹Π±ΠΎΡ€ Π±Ρ‹Π» Π»Π΅Π³Ρ‡Π΅. ΠŸΡ€ΠΎΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ языки программирования с сСми сторон: ΠœΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π½Π΅ ΠΌΠΎΠ΄Π½Ρ‹Π΅ β€’ ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ β€’ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ спСциализированныС β€’ АлгоритмичСскиС ΠΈ языки описания Π΄Π°Π½Π½Ρ‹Ρ… β€’ НизкоуровнСвыС ΠΈ высокоуровнСвыС β€’ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ языки структурного программирования β€’ Π‘ΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ классификации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ доля ΡˆΡƒΡ‚ΠΊΠΈ: ΠœΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ популярныС языки программирования, ΠΈ Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΠ΅ ΠΈΠ· ΠΌΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ примСнСния

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки становятся ΠΌΠΎΠ΄Π½Ρ‹ΠΌΠΈ, Π° ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚? Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, смСна Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. НапримСр, Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы MS DOS, которая Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½Π° 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… процСссорах Intel, ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ пользовались языки Π’ΡƒΡ€Π±ΠΎ C ΠΈ Π’ΡƒΡ€Π±ΠΎ Паскаль. А Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠ΅ АссСмблСром программисты ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ элитой. Но, ΠΏΠΎ понятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π½ΠΈ этими ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ процСссорами, Π½ΠΈ систСмой MS DOS, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ языки ΠΎΡ‚ΠΏΠ°Π»ΠΈ сами собой. Π₯отя ΠΌΠ½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΎΡ‡Π΅Π½ΡŒ нравятся.

Другая ситуация с языком Delphi, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π’ΡƒΡ€Π±ΠΎ Паскаля, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ популярСн Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 32-Ρ… Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсий Windows, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Π» ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками программирования, Π² Ρ‚ΠΎΠΌ числС ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»ΠΈΡΡŒ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ±Π΅Π΄Π° Π² ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ Π΄Π²ΡƒΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… языков, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JScript ΠΎΡ‚ Microsoft для Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ JavaScript, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ прСдставлСнный ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Netscape. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹ΠΌ JavaScript стал Π·Π° счСт большСй открытости ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ большим числом ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

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

Π—Π° большиС возмоТности ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π‘++ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ программиста дисциплины ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ программирования, ΠΈΠ½Π°Ρ‡Π΅, ΠΊΠ°ΠΊ ΡˆΡƒΡ‚ΡΡ‚ программисты, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈΠ· языка написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² язык для написания ошибок.

НСсмотря Π½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ·Π³Π»Π°ΡˆΠ°Π΅ΠΌΡ‹ΠΉ стандарт языков C ΠΈ C++, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС для компиляторов Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΈΡ€ΠΌ Ρ€Π΅Π΄ΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимы ΠΏΠΎ исходным ΠΊΠΎΠ΄Π°ΠΌ.

Π­Ρ‚Ρƒ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ.

Один ΠΈΠ· ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² C++, язык Π‘# (читаСтся β€˜ΡΠΈ ΡˆΠ°Ρ€ΠΏβ€™) появился ΠΈ стал популярным с ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΡ‚ Microsoft β€” .Net.

А язык TypeScript ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² качСствС ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ слоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ написанных Π½Π° JavaScript, языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам ΠΏΠΎ сСбС достаточно популярСн.

Из соврСмСнных популярных языков стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Python ΠΈΠ·-Π·Π° ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ простоты изучСния, открытости, ΠΈ возмоТности примСнСния Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π΅Π±, искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹.

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

2. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅: Π‘, Π‘++, Pascal
Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅: Visual Basic Script (VBScript), JavaScript, Python, PHP
Условно ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅: C# ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ языки . Net, Java для Java-ΠΌΠ°ΡˆΠΈΠ½Ρ‹

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

Π―Π·Ρ‹ΠΊΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трСбуСтся компилятор, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΌΠ°Π»ΠΎ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅. Надо Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· компилятор, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исполняСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows это Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .exe, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

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

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² скорости выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ написанныС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстрСС Ρ‡Π΅ΠΌ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ…. Но сам процСсс написания ΠΈ тСстирования ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Ρ‚ нСобходимости Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ шагС компиляции.

Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘#, компиляция ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² Π΄Π²Π° этапа. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² срСдС .Net ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° C# послС компиляции становится Π½Π΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора, Π° прСобразуСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ языкС CIL β€” Common Intermediate Language, (Ρ€Π°Π½Π΅Π΅ Π½Π°Π·Ρ‹Π²Π°Π²ΡˆΠΈΠΉΡΡ MSIL β€” Microsoft Intermediate Language), которая для запуска пСрСдаСтся Π½Π° Π²Ρ…ΠΎΠ΄ Just-In-Time (JIT) компилятору .

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

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

3. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ спСциализированныС

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ сама Π·Π° сСбя. Π•ΡΡ‚ΡŒ языки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½ΠΎ Π½Π΅ всСгда это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, быстро. Или такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ быстро Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык всСх Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΈ Π½Π°Ρ€ΠΎΠ΄ΠΎΠ²: Π‘++. И Π² этом Π΅Π³ΠΎ большой плюс. А, ΠΌΠΎΠΆΠ΅Ρ‚, Π΄Π°ΠΆΠ΅ Π΄Π²Π° плюса )).

БпСциализация Π² языках программирования касаСтся, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, матСматичСскиС вычислСния (Fortran, F#), искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ (LISP), Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (PERL, PHP), ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ (Unity, Lua), бухгалтСрия (1Π‘) ΠΈ Ρ‚. Π΄., Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π² языкС CΠΈ-ОмСга (Cw) ΠΈΠ»ΠΈ способ записи ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠ°ΠΊ Π² F#.

Для Ρ€Π°Π·Π½Ρ‹Ρ… областСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ свои языки ΠΈΠ»ΠΈ скрипты. ОсобСнно это относится ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΈΠ³Ρ€Π°ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚Π°ΡŽΡ‚ΡΡ сразу нСсколько Π²ΠΈΠ΄ΠΎΠ² искусства, Π½Π°ΡƒΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Но систСмы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈ ΡƒΠΆΠ΅ извСстныС языки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python Π² систСмС Π½Π°Ρ€Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠ³Ρ€ Ren’Py ΠΈΠ»ΠΈ язык Swift для устройств Apple.

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅: сСмСйство Pascal/Delphi, C/C++, C#, Java
Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅:
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вычислСния: Fortran, F#
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: MatLab, Wolfram (Mathematica)
Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚: LISP,
На основС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний: Small Talk,

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ прилоТСния Cw,
Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: Perl, PHP, JavaScript
Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: SQL
ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹: Lua, Unity, Godot, Twine
ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°: MEL (Maya), MAX Script (3ds Max)
БухгалтСрия: 1Π‘

4.
АлгоритмичСскиС ΠΈ Π―Π·Ρ‹ΠΊΠΈ описания Π΄Π°Π½Π½Ρ‹Ρ…

АлгоритмичСскиС: Pascal, C++, Java, C#
Π―Π·Ρ‹ΠΊΠΈ описания Π΄Π°Π½Π½Ρ‹Ρ…: XML, XAML, JSON, HTML, DDL SQL

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

Π―Π·Ρ‹ΠΊΠΈ ΠΆΠ΅ описания Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для описания Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ языки ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ алгоритмичСским языкам. НапримСр, Ссли Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ JavaScript для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ скорСС всСго Π²Π°ΠΌ придСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ синтаксис каскадных Ρ‚Π°Π±Π»ΠΈΡ† стилСй CSS ΠΈ язык описания Π΄Π°Π½Π½Ρ‹Ρ… JSON, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π±-сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.

Или, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, язык Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL, ΠΏΠΎ сути являСтся языком для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π΄Π΅Π» Data Definition Language ΠΈΠ»ΠΈ Π―Π·Ρ‹ΠΊ Описания Π”Π°Π½Π½Ρ‹Ρ….

Π’ΠΎΠΎΠ±Ρ‰Π΅, Π½Π° способы описания ΠΈ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ сСйчас Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ приходится ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ внимания, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π΅ мСньшС Ρ‡Π΅ΠΌ Π½Π° описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

5. НизкоуровнСвыС ΠΈ ВысокоуровнСвыС

НизкоуровнСвыС: Assembler, CIL,
ВысокоуровнСвыС: любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ слоТныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… язык.

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

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

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

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, CIL это особый язык. ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСпосрСдствСнно Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слишком Π΄ΠΎΠ»Π³ΠΎ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° этом языкС Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ компиляторами ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .Net. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ считаСтся языком программирования скорСС для ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ‡Π΅ΠΌ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

6. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ языки программирования

ПоявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, сокращСнно ООП, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ 80-Ρ… Π³ΠΎΠ΄ΠΎΠ² 20-Π³ΠΎ Π²Π΅ΠΊΠ° стало настоящСй тСхнологичСской Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ Π±Ρ‹Π» Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€ΠΎΡ‚, сСйчас объясню ΠΏΠΎΡ‡Π΅ΠΌΡƒ. Π”ΠΎ ООП Π±Ρ‹Π»ΠΈ популярны языки структурного программирования. И программисты Π±Ρ‹Π»ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ счастливы ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° структурных языках высокого уровня, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² своС врСмя это Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ шагом Π²ΠΏΠ΅Ρ€Π΅Π΄.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС титаничСских усилий Ρ‚Π°ΠΊΠΈΡ… Π³Π΅Π½ΠΈΠ΅Π² ΠΊΠ°ΠΊ Алан Π’ΡŒΡŽΡ€ΠΈΠ½Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» свою Ρ‚Π΅ΠΎΡ€ΠΈΡŽ β€” ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всС числовыС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² наши Π΄Π½ΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти записана ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора, Π² Ρ‚ΠΎΠΌ числС ΠΊΠΎΠΌΠ°Π½Π΄ условных ΠΈΠ»ΠΈ бСзусловных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Π½Π° ассСмблСрС Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ JMP (Π°Π½Π³Π».: jump β€” ΠΏΡ€Ρ‹ΠΆΠΎΠΊ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄), Π° Π² языках высокого уровня ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ GOTO (Π°Π½Π³Π».: go to β€” ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ-Π».).

Для программирования ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сущСствовал язык АссСмблСр, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ микропроцСссора. ВСорСтичСски, Π½Π° АссСмблСрС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½ΠΎ практичСски пСрСнос абстракций ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π½Π° Π½Π΅Π³ΠΎ совсСм Π½Π΅ простоС Π΄Π΅Π»ΠΎ.

Для программирования ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с Π½Π°Ρ‡Π°Π»Π° 70-Ρ… Π³ΠΎΠ΄ΠΎΠ² 20-Π³ΠΎ Π²Π΅ΠΊΠ° ΠΈ появилось структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, для создания ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ усилия Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Π΅Π½ΠΈΠ΅Π², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Никлаус Π’ΠΈΡ€Ρ‚, ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ языка Паскаль ΠΈ ЭдсгСр ДСйкстра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ написал ΠΎ нСобходимости ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° GOTO Π² языках высокого уровня ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π²Ρ‹Π»ΠΈΠ»ΠΎΡΡŒ Π² появлСниС языков программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Basic, Π‘, Паскаль, Algol, Cobol, Fortran, PL1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ «свСрху Π²Π½ΠΈΠ·Β» Π² структурном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² сплошноС ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅. Π‘ΡƒΡ‚ΡŒ Π΅Π΅ состояла Π² написании Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, содСрТащих ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ, подставляя Π½Π° Π²Ρ…ΠΎΠ΄ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ получая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

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

Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ Ρ‚ΠΈΠΏΠ° сортировки Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ нахоТдСния ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ идСально. Π‘Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° слоТных алгоритмичСских Π·Π°Π΄Π°Ρ‡. Появились Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΠΌΠ½ΠΈΠΊ β€œΠ˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования” Π”ΠΎΠ½Π°Π»ΡŒΠ΄Π° ΠšΠ½ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ считаСтся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ для программистов.

Однако, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ появлСнию ΠΈ Π±ΠΎΜΠ»ΡŒΡˆΠΈΡ… шансов Π½Π° внСсСниС ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ ΠΈ функциям Π²Π»Π΅ΠΊΠ»ΠΎ Π·Π° собой ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 1999 Π³ΠΎΠ΄Ρƒ космичСский Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ NASA Β«Mars Climate OrbiterΒ» ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Π» ΠΊΡ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ·-Π·Π° ошибки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ β€” подстановки Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появилась новая концСпция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎ Π³Π»Π°Π²Ρƒ ΡƒΠ³Π»Π° ставится, ΠΊΠ°ΠΊ я Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ становятся ΠΊΠ°ΠΊ Π±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ это, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… со своими функциями. Π’ ООП вводятся ограничСния Π½Π° доступ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ Β«Ρ‡ΡƒΠΆΠΈΠΌΒ» Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ измСнСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π΅Π·ΠΊΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ПослС появлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘++, Object Pascal, Java, Π‘#, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… возмоТностСй ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для Π½ΠΈΡ… ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, Ссли Π½Π΅ Π½Π° порядки, Ρ‡Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ хотя Π±Ρ‹ ΠΏΠΎ объСмам дистрибутивов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСстали ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ сначала Π½Π° дискСты, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚ диски. А ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ снова ΠΊΠ°ΠΊ Π±Ρ‹ встало с Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π½Π° Π½ΠΎΠ³ΠΈ.

Update 24.02.2021
Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎ-Π²Π΅Ρ€ΡΠΈΡŽ этой Π³Π»Π°Π²Ρ‹.

7. Π‘ΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ (Frameworks), Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ языком программирования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связана тСхнологичСская Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΈΠ»ΠΈ цСлая систСма программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ .Net. Π―Π·Ρ‹ΠΊΠΈ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C#, F#, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ особСнностСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π²Π°ΠΆΠ½ΠΎ для понимания Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° этих языках.

Для использования языка Π‘++ ΠΎΡ‚ Microsoft для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 32-Ρ… Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсий Windows программистам для создания ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ MVC ΠΎΡ‚ Microsoft программистам Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Π΅Π±-страниц Razor.

Для создания соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Microsoft ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ XAML.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
Ruby on Rails β€” сСрвСрная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Unity, Cocos, Unreal Engine.
Для 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ: OpenGL, DirectX.

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

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Ρ‡Π΅ΠΌ большС языков Π·Π½Π°Π΅Ρ‚ программист, Ρ‚Π΅ΠΌ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Π΅Π΅ сСбя чувствуСт ΠΊΠ°ΠΊ профСссионал. Но Π² нашС скоростноС врСмя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ вСрсия языка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ свою Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π° ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π°-Π΄Π²Π° Π³ΠΎΠ΄Π°. НапримСр, Ρƒ языка TypeScript c 2015 ΠΏΠΎ 2019 Π³ΠΎΠ΄, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° 5 Π»Π΅Ρ‚, Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ 20-Ρ‚ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

Если Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΡƒΠΆΠ΅ опрСдСлился с ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ языка программирования упрощаСтся. ΠŸΡ€Π°Π²Π΄Π°, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ довольно экзотичСскиС трСбования, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ просто Ρ€ΡΠ±ΠΈΡ‚ΡŒ Π² Π³Π»Π°Π·Π°Ρ…. НапримСр, Ρ‚Π°ΠΊΠΎΠΉ стСк языков ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π² описании вакансии ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… российских ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ: .Net Core 3.1, Java 14, Kotlin, ElasticSearch, Lucene, Kafka, Redis, PostgreSQL, MSSQL, Airflow, Spark, Kubernetes, GitLab CI, Prometheus, Graylog, Jaeger, Grafana. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ языка программирования: Java, Kotlin, SQL ΠΈ Lua.

Если ΠΆΠ΅ с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… языков программирования. Из-Π·Π° повсСмСстного проникновСния ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, для программиста ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ язык HTML, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ языки описания Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° XML ΠΈ JSON. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС ΠΎ языкС управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL.

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

И напослСдок, Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π° нСсколько Π»Π΅Ρ‚ ΠΊΠ°ΠΊ Π³Ρ€ΠΈΠ±Ρ‹ послС доТдя стали ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ систСмы Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π±Π΅Π· программистов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для создания Π²Π΅Π±-сайтов, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ WordPress, Wix, Bitrix24. Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ самому Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-процСссы.

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

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

Автор Π‘Π΅Ρ€Π³Π΅ΠΉ Π’ΠΈΠΌΠΎΡ„Π΅Π΅Π² На Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ 10 ΠΌΠΈΠ½ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 1.8ΠΊ. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ОбновлСно

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки?

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

Π’ послСдниС Π³ΠΎΠ΄Ρ‹ появились языки свСрхвысокого ΠΈ ΡƒΠ»ΡŒΡ‚Ρ€Π°Π²Ρ‹ΡΠΎΠΊΠΎΠ³ΠΎ уровня, содСрТащиС мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ структур. Они Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ настроСк ΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ транслятор ПП-1 (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°) Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈ использована Π² 1954 Π³ΠΎΠ΄Ρƒ. Π£ΠΆΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° создана ПП-2 с собствСнным Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ стандартных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Π’ 1957 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ компилятор для Fortran ΠΈ послС этого высокоуровнСвыС языки стали Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ программистами. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ послСднСго являСтся Π³Ρ€ΡƒΠΏΠΏΠ° спСциалистов ΠΈΠ· IBM Π²ΠΎ Π³Π»Π°Π²Π΅ с Π”ΠΆΠΎΠ½ΠΎΠΌ Бэкусом.

Π”ΠΆΠΎΠ½ Бэкус – Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² IBM создатСлСй компилятора для FORTRAN

Π’ настоящСС врСмя Π² срСдС спСциалистов принята ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ классификация высокоуровнСвых языков ΠΏΠΎ способу выполнСния:

  • ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅. К этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ относятся языки C, C++, Object Pascal ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ для прСобразования Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-компиляторы. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС исходный ΠΊΠΎΠ΄ пСрСводится Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ происходит ΠΈΡ… сборка Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°.
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅. Π”Π°Π½Π½ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ языки Ρ‚ΠΈΠΏΠ° Forth, Basic ΠΈ ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ считываСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ выполняСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ шаг Π·Π° шагом.

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

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

  1. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки
  2. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки
  3. Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования
  4. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки
  5. ΠžΠ±Π»Π°ΡΡ‚ΠΈ примСнСния
  6. Π’Π°ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

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

БлуТСбная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-компилятор, ΠΎΠ±Ρ€Π°Π·Π½ΠΎ говоря, обСспСчиваСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ высокоуровнСвого языка Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трансформируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоит ΠΈΠ· понятных процСссору инструкций.
  2. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… записываСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ идСнтифицируСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΊΠ°ΠΊ исполняСмый.
  3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, записанная Π² этом Ρ„Π°ΠΉΠ»Π΅ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, считываСтся ΠΈ выполняСтся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссором.
Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-компиляции исходного ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ:Β Π² случаС внСсСния ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² исходный ΠΊΠΎΠ΄ описанный процСсс повторяСтся. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° снова компилируСтся Π² Π½Π°Π±ΠΎΡ€ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций, происходит Π΅Π΅ запись Π² исполняСмый Ρ„Π°ΠΉΠ». Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ исправлСний оцСниваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования высокого уровня Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

  • Ada, Algol (Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ вСрсии Algol 60 ΠΈ 68, Π° Ρ‚Π°ΠΊΠΆΠ΅ SMALL).
  • BASIC ΠΈ PureBasic.
  • C ΠΈ Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ C++, Objective-C.
  • COBOL, Delphi ΠΈ Fortran.
  • Pascal ΠΈ Turbo Pascal.
  • Visual Basic Π² ΡˆΠ΅ΡΡ‚ΠΈ вСрсиях.
  • ML ΠΈ Standard ML.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ языков, исходный ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ, этим Π½Π΅ ограничиваСтся. Бписок ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ популярными: Sather, Common Lisp, Swift, CLEO, LabVIEW, Ocaml, Haskell, Eiffel, Ubercode, Go, JOVIAL, Lush, Alice, Rust, Visual Foxpro ΠΈ Visual Prolog.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄

Помимо Π½Π°Π·Π²Π°Π½Π½Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ высокоуровнСвых языки программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄:

  1. Java (Scala, Kotlin, Groovy, Clojure, Jython).
  2. ВСхнология .NET (C#, Visual Basic, F#, Cobra).
  3. Erlang.

Помимо Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-компиляторов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΡ… Ρ‚ΠΈΠΏ – транспайлСры (transpiler). Они ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° исходного ΠΊΠΎΠ΄Π°, написанного Π½Π° Emscripten , kPHP, Closure Compiler, coffeescript, Dart, Haxe, TypeScript ΠΈΠ»ΠΈ Coccinelle, Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ высокоуровнСвыС языки программирования Ρ‚ΠΈΠΏΠ° ActionScript , C++, Lua Π»ΠΈΠ±ΠΎ Python. ВранспайлСры Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° старого исходного ΠΊΠΎΠ΄Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ вСрсии, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² совмСстимыС с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ интСрфСйсами API. ΠŸΡ€ΠΈ этом происходит Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-транспилятора

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² исходный ΠΊΠΎΠ΄, Π² Ρ…ΠΎΠ΄Π΅ ΠΈΡ… исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ .

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² высокоуровнСвых языков программирования выглядСл Ρ‚Π°ΠΊ:

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

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  • Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаС соврСмСнныС высокоуровнСвыС языки ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡˆΠΈΡ‚Ρ‹ΠΉ ΠΈΠ»ΠΈ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄.
  • По сути это комбинация ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня. Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой нСбольшиС ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСскольким ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машина ΠΈΠ»ΠΈ Assembler.
  • Π­Ρ‚ΠΈ инструкции ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ процСссором.

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

Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… высокоуровнСвых языков наибольшСС распространСниС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • APL (J), BASIC, Forth, Lisp, Python, Excel, Logo Perl, Visual Basic for Applications ΠΈ PHP.
  • Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹Π΅: JavaScript, Madness Script, VBScript, PostScript ΠΈ F-Script.
  • БистСмы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ матСматичСских ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ: Mathematica, GNU Octave, TK Solver, Interactive Data Language (IDL) ΠΈ MATLAB.
  • Π“Ρ€ΡƒΠΏΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков: Smalltalk Π² вСрсиях Dolphin ΠΈ Little, Π° Ρ‚Π°ΠΊΠΆΠ΅ VisualAge ΠΈ VisualWorks.

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

Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

ИспользованиС Π² качСствС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° классификации ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ процСссором позволяСт Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ. ΠœΠ΅ΠΆΠ΄Ρƒ компиляциСй ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π·Π½ΠΈΡ†Π° состоит Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

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

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· высокоуровнСвых языков Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° (ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ свойствами. Π­Ρ‚ΠΎ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ относится ΠΈ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅. К достоинствам ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков относят:

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

Одним ΠΈΠ· основных нСдостатков ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков являСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСвысокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния написанных Π½Π° Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. По ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ спСциалистов прилоТСния Π½Π° Python ΠΈΠ»ΠΈ PHP ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях Π½Π° Π΄Π²Π° порядка ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈ Π½Π° C++.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков

Π―Π·Ρ‹ΠΊΠΈ высокого уровня, относящиСся ΠΊ классу ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ…, наряду с Π±ΠΎΠ»ΡŒΡˆΠΎΠΉΒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ряд ΠΈΠ½Ρ‹Ρ… прСимущСств:

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

Π―Π·Ρ‹ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈ ряд нСдостатков:

  • ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ скомпилированного прилоТСния. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ внимания со стороны программиста.
  • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скомпилированный для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° Linux ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ОБ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» с использованиСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ слуТСбного ПО.

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

ΠžΠ±Π»Π°ΡΡ‚ΠΈ примСнСния

По подсчСтам спСциалистов сущСствуСт порядка 10 тысяч языков программирования высокого уровня. Π§Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… устарСли ΠΈ практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ Π² сфСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО Π½Π° Π΄Π΅Π»Π΅ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ. РассматриваСмыС Π² ΠΎΠ±Π·ΠΎΡ€Π΅ высокоуровнСвыС языки находят ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… областях:

  • ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Windows ΠΈ Linux ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅. Π’Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, созданиС кроссплатформСнных ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ матСматичСскиС вычислСния.
Π‘Ρ„Π΅Ρ€Ρ‹ примСнСния языков программирования: классификация

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ языки программирования Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C, C++, C#, Java ΠΈΠ»ΠΈ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² любой ΠΈΠ· пСрСчислСнных сфСр. Π’Ρ‹Π±ΠΎΡ€ языка для написания Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ опрСдСляСтся срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π’Π°ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

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

  1. Для создания слоТных ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для матСматичСских вычислСний ΠΈ выполнСния логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки: Mathematica , MATLAB, JavaScript ΠΈΠ»ΠΈ PHP.
  2. Если трСбуСтся нСбольшая компактная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с высокой ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки: Object Pascal, C ΠΈΠ»ΠΈ C++.
Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ языка программирования

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

Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΈ Ρ‡Ρ‚ΠΎ это β€” ΠœΠΈΡ€Π”ΠΎΡΡ‚ΡƒΠΏΠ°

Π£Π·Π½Π°Π΅ΠΌ, какая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ интСрпрСтатором…

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ языки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСпосрСдствСнныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ЯП.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ЯП Π½Π° компиляторы ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ условноС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сформирован Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ для любого ΠΈΠ· Π½ΠΈΡ….

P-ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ нСзависимый ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ элСмСнта. Π•Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Java, Python, Perl ΠΈ Ρ‚. Π΄. Под P-ΠΊΠΎΠ΄ΠΎΠΌ Ρ‡Π°Ρ‰Π΅ всСго подразумСваСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимого ΠΊΠΎΠ΄Π°: ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ начинаСтся Π΅Π³ΠΎ интСрпрСтация. ΠŸΡ€ΠΈ этом исходный ΠΊΠΎΠ΄ автоматичСски конвСртируСтся Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ.Β 

НС стоит ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ истинный ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ P-ΠΊΠΎΠ΄. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ слоТноС устройство, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠΎΡ‰Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ концСпция Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимого P-ΠΊΠΎΠ΄Π° Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ Π³ΠΈΠ±Ρ€ΠΈΠ΄: компилятор + ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ стандартным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ распространСн. Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ada, C (Objective-C ΠΈ C++), Pascal, Swift, Fortran, Rust, Delphi, D ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π­Ρ‚ΠΈ языки Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:Β 

  1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прСобразуСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-компилятором.
  2. ΠžΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
  3. ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ заносится Π² Ρ„Π°ΠΉΠ». Π’Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±Π° сразу).
  4. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» исполняСтся ОБ.Β 

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ созданныС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° исходника. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ β€” Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠ°Ρ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ЯП ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ слоТноС устройство, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ β€” ΠΎΠ½ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ нСпосрСдствСнно Π² ΠΏΠ»Π°Π½Π΅ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°

Π’Π΅Π΄ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (сформированный Π² Ρ…ΠΎΠ΄Π΅ компиляции) Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. Π—Π°Ρ‚ΠΎ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π² Π½ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ доступны ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ компиляции для языков Π½Π° основС C. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ β€” это ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ с чСловСчСского Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ исходник (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) исполняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… языков β€” Python, PHP, Ruby, Perl. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ содСрТат инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ машиной. Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° дСлСгируСтся ΠΈΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построчно. Π­Ρ‚Π° катСгория допускаСт просчСты ΠΈ позволяСт ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π΅ пострадаСт

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅. Π›Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой машинС, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

Π’ Ρ†Π΅Π»ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ простыми Π² написании ΠΈ тСстировании, хотя это ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ

ДинамичСскиС области видимости, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΈ динамичСская типизация β€” Π²ΠΎΡ‚ Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Π±Ρ‹Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, сСйчас эта тСндСнция Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΠ»Π°ΡΡŒ. ΠœΠΈΠ½ΡƒΡΡ‹: Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ОБ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ….

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ЯП Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ сканируСт исходник.
  2. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ пСрСводится Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ вычислСния. ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, созданиС систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².
  3. Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊ интСрпрСтируСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ: Π² случаС с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ЯП с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ само ядро ОБ, Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ libvorbisfile для воспроизвСдСния Ρ„Π°ΠΉΠ»Π° Ogg Vorbis

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄Π²ΡƒΠΌ самым популярным вопросам, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ касаСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков

Python β€” это ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык?

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

Π”Π°, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Ρ… Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ настоящий ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык, Π½ΠΎ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ всё Ρ€Π°Π²Π½ΠΎ компилируСтся

Java β€” это ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык?

Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ всё Π½Π΅ Ρ‚Π°ΠΊ просто. Π’ΠΎΠΎΠ±Ρ‰Π΅ Java ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ компилируСтся Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, послС этот Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ конвСртируСтся ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Java. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡƒΠΆΠ΅ эта Π’Πœ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Java задСйствуСт Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, которая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для создания машинного ΠΊΠΎΠ΄Π°, хотя (Ссли Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) спСрва этот ΠΊΠΎΠ΄ конвСртируСтся Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠ΅

Π―Π·Ρ‹ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

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

  1. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования: ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки
  2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования: ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки
  3. ВступлСниС
  4. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки
  5. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки
  6. Бонус: Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄-языки
  7. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  8. Π‘Ρ‚Π°Ρ‚ΡŒΠΈ
  9. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования
  10. КакиС Π±Ρ‹Π²Π°ΡŽΡ‚ языки программирования?
  11. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ классификации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ доля ΡˆΡƒΡ‚ΠΊΠΈ: ΠœΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ популярныС языки программирования, ΠΈ Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΠ΅ ΠΈΠ· ΠΌΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ примСнСния
  12. 2. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅
  13. 3. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ спСциализированныС
  14. 4. АлгоритмичСскиС ΠΈ Π―Π·Ρ‹ΠΊΠΈ описания Π΄Π°Π½Π½Ρ‹Ρ…
  15. 5. НизкоуровнСвыС ΠΈ ВысокоуровнСвыС
  16. 6. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ языки программирования
  17. 7. Π‘ΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ (Frameworks), Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
  18. Π’Ρ‹Π²ΠΎΠ΄Ρ‹
  19. Π’ΠΈΠ΄Π΅ΠΎ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования: ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования: ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ этого Ρ†ΠΈΠΊΠ»Π°, я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° всё Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ, Π½ΠΎ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ€Π΅Π΄ΠΊΠΎ сталкиваСмся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈ поэтому Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΡ… ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ. Π’Π΅ΠΌΠ° сСгодняшнСй ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки.

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

ВступлСниС

ΠœΡ‹ полагаСмся Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ компиляция ΠΈ интСрпрСтация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ наш ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. Код ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исполнСн Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС послС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ (ΠΏΡƒΡ‚Ρ‘ΠΌ компиляции) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ построчно Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, которая Π΄Π΅Π»Π°Π΅Ρ‚ это вмСсто ОБ (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€).

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

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

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков β€” это ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ исполнСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΈ эффСктивнСС, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, особСнно Ссли ΡƒΡ‡Π΅ΡΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соврСмСнных скриптовых ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков.

НизкоуровнСвыС языки ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ставится Π²Ρ‹ΡˆΠ΅ кроссплатформСнности. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС возмоТностСй Π² ΠΏΠ»Π°Π½Π΅ контроля Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ использованиСм процСссора. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡ C, C++, Erlang, Haskell ΠΈ Π±ΠΎΠ»Π΅Π΅ соврСмСнныС языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Rust ΠΈ Go.

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ для исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄; вмСсто этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построчно исполнят ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹. РаньшС процСсс ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π» ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ с ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠ°ΠΊ JIT-компиляция, Ρ€Π°Π·Ρ€Ρ‹Π² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками сокращаСтся. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡ PHP, Perl, Ruby ΠΈ Python. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали ΠΏΡ€ΠΎΡ‰Π΅ благодаря ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языкам:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ нСдостатком ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языком являСтся ΠΈΡ… нСвысокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ исполнСния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, JIT-компиляция позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс благодаря ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ инструкции Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Бонус: Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄-языки

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

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

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

МногиС языки Π² наши Π΄Π½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, сводя Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π½Π° Π½Π΅Ρ‚. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° исполнСния ΠΊΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ прСимущСства ΠΈ нСдостатки.

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

Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄-языки, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны ΠΎΠ±ΠΎΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² языков, ΠΈ Ρƒ Π½ΠΈΡ… это Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ получаСтся.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

Π–Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ язык программирования ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚Π°ΠΊΠΈΠΌΠΈ понятиями, ΠΊΠ°ΠΊ компилятор ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ интСрпрСтация β€” это основа Ρ€Π°Π±ΠΎΡ‚Ρ‹ языков программирования.

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

ΠœΡ‹ полагаСмся Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ компиляция ΠΈ интСрпрСтация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ наш ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. Код ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исполнСн Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС послС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ (ΠΏΡƒΡ‚Ρ‘ΠΌ компиляции) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ построчно Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, которая Π΄Π΅Π»Π°Π΅Ρ‚ это вмСсто ОБ (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€).

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

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

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

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ поэтому ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для создания часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡ Pascal, C, C++, Erlang, Haskell, Rust, Go, Ada.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ языкС, Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ нСпосрСдствСнно выполняСт (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚) Π΅Π΅ тСкст Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° остаСтся Π½Π° исходном языкС ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ процСссор ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° β€” это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ машинного ΠΊΠΎΠ΄Π°. ΠšΡ€Π°Ρ‚ΠΊΠΎ говоря, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык прямо Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡ PHP, Perl, Ruby, Python, JavaScript. К ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языкам Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ отнСсти всС скриптовыС языки.

МногиС языки Π² наши Π΄Π½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, сводя Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. НСкоторыС языки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Java ΠΈ C#, находятся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° компилируСтся Π½Π΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык, Π° Π² машинно-нСзависимый ΠΊΠΎΠ΄ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄. Π”Π°Π»Π΅Π΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ выполняСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной. Для выполнСния Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСрпрСтация, хотя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΅Π³ΠΎ части для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ транслированы Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ нСпосрСдствСнно Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ компиляции Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ». Для Java Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ исполняСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java (Java Virtual Machine, JVM), для C# β€” Common Language Runtime.

ΠŸΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° ΡΡ‚Π°Ρ‚ΡŒΠΈ допускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ссылки Π½Π° сайт itmentor.by

Π₯ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ? Вступай Π² сообщСства ITmentor Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ ΠΈ Facebook

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½: 06-01-2017

28675 ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

КакиС Π±Ρ‹Π²Π°ΡŽΡ‚ языки программирования?

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Ρ‹ пСриодичСски ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ мСня ΠΊΠ°ΠΊΠΎΠΉ язык программирования ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρƒ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, я Π½Π΅ ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ‡ΠΈΡ‚Π΅ этот язык, Π° этот Π½Π΅ ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ ΡΡ‡Π°ΡΡ‚ΡŒΠ΅. Но Π·Π°Ρ‚ΠΎ ΠΌΠΎΠ³ Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ языках программирования Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот Π²Ρ‹Π±ΠΎΡ€ Π±Ρ‹Π» Π»Π΅Π³Ρ‡Π΅. ΠŸΡ€ΠΎΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ языки программирования с сСми сторон: ΠœΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π½Π΅ ΠΌΠΎΠ΄Π½Ρ‹Π΅ β€’ ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ β€’ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ спСциализированныС β€’ АлгоритмичСскиС ΠΈ языки описания Π΄Π°Π½Π½Ρ‹Ρ… β€’ НизкоуровнСвыС ΠΈ высокоуровнСвыС β€’ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ языки структурного программирования β€’ Π‘ΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ классификации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ доля ΡˆΡƒΡ‚ΠΊΠΈ: ΠœΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ популярныС языки программирования, ΠΈ Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΠ΅ ΠΈΠ· ΠΌΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ примСнСния

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки становятся ΠΌΠΎΠ΄Π½Ρ‹ΠΌΠΈ, Π° ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚? Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, смСна Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. НапримСр, Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы MS DOS, которая Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½Π° 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… процСссорах Intel, ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ пользовались языки Π’ΡƒΡ€Π±ΠΎ C ΠΈ Π’ΡƒΡ€Π±ΠΎ Паскаль. А Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠ΅ АссСмблСром программисты ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ элитой. Но, ΠΏΠΎ понятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π½ΠΈ этими ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ процСссорами, Π½ΠΈ систСмой MS DOS, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ языки ΠΎΡ‚ΠΏΠ°Π»ΠΈ сами собой. Π₯отя ΠΌΠ½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΎΡ‡Π΅Π½ΡŒ нравятся.

Другая ситуация с языком Delphi, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π’ΡƒΡ€Π±ΠΎ Паскаля, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ популярСн Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 32-Ρ… Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсий Windows, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Π» ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками программирования, Π² Ρ‚ΠΎΠΌ числС ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»ΠΈΡΡŒ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ±Π΅Π΄Π° Π² ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ Π΄Π²ΡƒΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… языков, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JScript ΠΎΡ‚ Microsoft для Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ JavaScript, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ прСдставлСнный ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Netscape. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹ΠΌ JavaScript стал Π·Π° счСт большСй открытости ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ большим числом ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

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

Π—Π° большиС возмоТности ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π‘++ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ программиста дисциплины ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ программирования, ΠΈΠ½Π°Ρ‡Π΅, ΠΊΠ°ΠΊ ΡˆΡƒΡ‚ΡΡ‚ программисты, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈΠ· языка написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² язык для написания ошибок.

НСсмотря Π½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ·Π³Π»Π°ΡˆΠ°Π΅ΠΌΡ‹ΠΉ стандарт языков C ΠΈ C++, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС для компиляторов Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΈΡ€ΠΌ Ρ€Π΅Π΄ΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимы ΠΏΠΎ исходным ΠΊΠΎΠ΄Π°ΠΌ. Π­Ρ‚Ρƒ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ.

А язык TypeScript ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² качСствС ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ слоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ написанных Π½Π° JavaScript, языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам ΠΏΠΎ сСбС достаточно популярСн.

Из соврСмСнных популярных языков стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Python ΠΈΠ·-Π·Π° ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ простоты изучСния, открытости, ΠΈ возмоТности примСнСния Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π΅Π±, искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹.

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

2. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅

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

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

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² скорости выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ написанныС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстрСС Ρ‡Π΅ΠΌ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ…. Но сам процСсс написания ΠΈ тСстирования ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Ρ‚ нСобходимости Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ шагС компиляции.

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

3. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ спСциализированныС

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ сама Π·Π° сСбя. Π•ΡΡ‚ΡŒ языки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½ΠΎ Π½Π΅ всСгда это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, быстро. Или такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ быстро Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык всСх Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΈ Π½Π°Ρ€ΠΎΠ΄ΠΎΠ²: Π‘++. И Π² этом Π΅Π³ΠΎ большой плюс. А, ΠΌΠΎΠΆΠ΅Ρ‚, Π΄Π°ΠΆΠ΅ Π΄Π²Π° плюса )).

БпСциализация Π² языках программирования касаСтся, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, матСматичСскиС вычислСния (Fortran, F#), искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ (LISP), Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (PERL, PHP), ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ (Unity, Lua), бухгалтСрия (1Π‘) ΠΈ Ρ‚.Π΄., Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π² языкС CΠΈ-ОмСга (Cw) ΠΈΠ»ΠΈ способ записи ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠ°ΠΊ Π² F#.

Для Ρ€Π°Π·Π½Ρ‹Ρ… областСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ свои языки ΠΈΠ»ΠΈ скрипты. ОсобСнно это относится ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΈΠ³Ρ€Π°ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚Π°ΡŽΡ‚ΡΡ сразу нСсколько Π²ΠΈΠ΄ΠΎΠ² искусства, Π½Π°ΡƒΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Но систСмы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈ ΡƒΠΆΠ΅ извСстныС языки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python Π² систСмС Π½Π°Ρ€Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠ³Ρ€ Ren’Py ΠΈΠ»ΠΈ язык Swift для устройств Apple.

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅: сСмСйство Pascal/Delphi, C/C++, C#, Java
Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅:
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вычислСния: Fortran, F#
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: MatLab, Wolfram (Mathematica)
Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚: LISP,
На основС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний: Small Talk,
ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ прилоТСния Cw,
Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: Perl, PHP, JavaScript
Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: SQL
ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹: Lua, Unity, Godot, Twine
ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°: MEL (Maya), MAX Script (3ds Max)
БухгалтСрия: 1Π‘

4. АлгоритмичСскиС ΠΈ Π―Π·Ρ‹ΠΊΠΈ описания Π΄Π°Π½Π½Ρ‹Ρ…

АлгоритмичСскиС: Pascal, C++, Java, C#
Π―Π·Ρ‹ΠΊΠΈ описания Π΄Π°Π½Π½Ρ‹Ρ…: XML, XAML, JSON, HTML, DDL SQL

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

Π―Π·Ρ‹ΠΊΠΈ ΠΆΠ΅ описания Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для описания Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ языки ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ алгоритмичСским языкам. НапримСр, Ссли Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ JavaScript для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ скорСС всСго Π²Π°ΠΌ придСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ синтаксис каскадных Ρ‚Π°Π±Π»ΠΈΡ† стилСй CSS ΠΈ язык описания Π΄Π°Π½Π½Ρ‹Ρ… JSON, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π±-сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.

Или, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, язык Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL, ΠΏΠΎ сути являСтся языком для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π΄Π΅Π» Data Definition Language ΠΈΠ»ΠΈ Π―Π·Ρ‹ΠΊ Описания Π”Π°Π½Π½Ρ‹Ρ….

Π’ΠΎΠΎΠ±Ρ‰Π΅, Π½Π° способы описания ΠΈ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ сСйчас Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ приходится ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ внимания, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π΅ мСньшС Ρ‡Π΅ΠΌ Π½Π° описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

5. НизкоуровнСвыС ΠΈ ВысокоуровнСвыС

НизкоуровнСвыС: Assembler, CIL,
ВысокоуровнСвыС: любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ слоТныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… язык.

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

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

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

6. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ языки программирования

ПоявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, сокращСнно ООП, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ 80-Ρ… Π³ΠΎΠ΄ΠΎΠ² 20-Π³ΠΎ Π²Π΅ΠΊΠ° стало настоящСй тСхнологичСской Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ Π±Ρ‹Π» Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€ΠΎΡ‚, сСйчас объясню ΠΏΠΎΡ‡Π΅ΠΌΡƒ. Π”ΠΎ ООП Π±Ρ‹Π»ΠΈ популярны языки структурного программирования. И программисты Π±Ρ‹Π»ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ счастливы ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° структурных языках высокого уровня, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² своС врСмя это Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ шагом Π²ΠΏΠ΅Ρ€Π΅Π΄.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС титаничСских усилий Ρ‚Π°ΠΊΠΈΡ… Π³Π΅Π½ΠΈΠ΅Π² ΠΊΠ°ΠΊ Алан Π’ΡŒΡŽΡ€ΠΈΠ½Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» свою Ρ‚Π΅ΠΎΡ€ΠΈΡŽ β€” ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всС числовыС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² наши Π΄Π½ΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти записана ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора, Π² Ρ‚ΠΎΠΌ числС ΠΊΠΎΠΌΠ°Π½Π΄ условных ΠΈΠ»ΠΈ бСзусловных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Π½Π° ассСмблСрС Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ JMP (Π°Π½Π³Π».: jump β€” ΠΏΡ€Ρ‹ΠΆΠΎΠΊ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄), Π° Π² языках высокого уровня ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ GOTO (Π°Π½Π³Π».: go to β€” ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ-Π».).

Для программирования ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сущСствовал язык АссСмблСр, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ микропроцСссора. ВСорСтичСски, Π½Π° АссСмблСрС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½ΠΎ практичСски пСрСнос абстракций ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π½Π° Π½Π΅Π³ΠΎ совсСм Π½Π΅ простоС Π΄Π΅Π»ΠΎ.

Для программирования ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с Π½Π°Ρ‡Π°Π»Π° 70-Ρ… Π³ΠΎΠ΄ΠΎΠ² 20-Π³ΠΎ Π²Π΅ΠΊΠ° ΠΈ появилось структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, для создания ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ усилия Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Π΅Π½ΠΈΠ΅Π², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Никлаус Π’ΠΈΡ€Ρ‚, ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ языка Паскаль ΠΈ ЭдсгСр ДСйкстра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ написал ΠΎ нСобходимости ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° GOTO Π² языках высокого уровня ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π²Ρ‹Π»ΠΈΠ»ΠΎΡΡŒ Π² появлСниС языков программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Basic, Π‘, Паскаль, Algol, Cobol, Fortran, PL1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ «свСрху Π²Π½ΠΈΠ·Β» Π² структурном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² сплошноС ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅. Π‘ΡƒΡ‚ΡŒ Π΅Π΅ состояла Π² написании Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, содСрТащих ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ, подставляя Π½Π° Π²Ρ…ΠΎΠ΄ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ получая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

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

Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ Ρ‚ΠΈΠΏΠ° сортировки Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ нахоТдСния ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ идСально. Π‘Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° слоТных алгоритмичСских Π·Π°Π΄Π°Ρ‡. Появились Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΠΌΠ½ΠΈΠΊ β€œΠ˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования” Π”ΠΎΠ½Π°Π»ΡŒΠ΄Π° ΠšΠ½ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ считаСтся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ для программистов.

Однако, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ появлСнию ΠΈ Π±ΠΎΜΠ»ΡŒΡˆΠΈΡ… шансов Π½Π° внСсСниС ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ ΠΈ функциям Π²Π»Π΅ΠΊΠ»ΠΎ Π·Π° собой ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 1999 Π³ΠΎΠ΄Ρƒ космичСский Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ NASA Β«Mars Climate OrbiterΒ» ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Π» ΠΊΡ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ·-Π·Π° ошибки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ β€” подстановки Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появилась новая концСпция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎ Π³Π»Π°Π²Ρƒ ΡƒΠ³Π»Π° ставится, ΠΊΠ°ΠΊ я Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ становятся ΠΊΠ°ΠΊ Π±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ это, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… со своими функциями. Π’ ООП вводятся ограничСния Π½Π° доступ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ Β«Ρ‡ΡƒΠΆΠΈΠΌΒ» Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ измСнСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π΅Π·ΠΊΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ПослС появлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘++, Object Pascal, Java, Π‘#, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… возмоТностСй ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для Π½ΠΈΡ… ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, Ссли Π½Π΅ Π½Π° порядки, Ρ‡Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ хотя Π±Ρ‹ ΠΏΠΎ объСмам дистрибутивов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСстали ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ сначала Π½Π° дискСты, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚ диски. А ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ снова ΠΊΠ°ΠΊ Π±Ρ‹ встало с Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π½Π° Π½ΠΎΠ³ΠΈ.

Update 24.02.2021
Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎ-Π²Π΅Ρ€ΡΠΈΡŽ этой Π³Π»Π°Π²Ρ‹.

7. Π‘ΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ (Frameworks), Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ языком программирования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связана тСхнологичСская Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΈΠ»ΠΈ цСлая систСма программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ.

Для использования языка Π‘++ ΠΎΡ‚ Microsoft для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 32-Ρ… Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсий Windows программистам для создания ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ MVC ΠΎΡ‚ Microsoft программистам Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Π΅Π±-страниц Razor.

Для создания соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Microsoft ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ XAML.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
Ruby on Rails β€” сСрвСрная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Unity, Cocos, Unreal Engine.
Для 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ: OpenGL, DirectX.

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

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Ρ‡Π΅ΠΌ большС языков Π·Π½Π°Π΅Ρ‚ программист, Ρ‚Π΅ΠΌ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Π΅Π΅ сСбя чувствуСт ΠΊΠ°ΠΊ профСссионал. Но Π² нашС скоростноС врСмя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ вСрсия языка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ свою Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π° ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π°-Π΄Π²Π° Π³ΠΎΠ΄Π°. НапримСр, Ρƒ языка TypeScript c 2015 ΠΏΠΎ 2019 Π³ΠΎΠ΄, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° 5 Π»Π΅Ρ‚, Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ 20-Ρ‚ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

Если ΠΆΠ΅ с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… языков программирования. Из-Π·Π° повсСмСстного проникновСния ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, для программиста ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ язык HTML, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ языки описания Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° XML ΠΈ JSON. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС ΠΎ языкС управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL.

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

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

Волько зарСгистрированныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² опросС. Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅, поТалуйста.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’ΠΈΠ΄Π΅ΠΎ

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков программирования ΠΏΠΎ поколСниям ΠΈ уровням. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ассСмблСр

ΠŸΠΈΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ…

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ языка программирования ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΈ Π½ΡƒΠ±ΠΎΠ².

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования?

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€?

15. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования #2 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ стСковыС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² языках программирования.

Как ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄ [ΠŸΠ•Π Π•Π’ΠžΠ”]

1.5.ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€, классификация ΠΈ характСристика языков программирования

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€, классификация ΠΈ характСристика языков программирования

Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚

Π―Π·Ρ‹ΠΊΠΈ программирования дСлятся Π½Π° Π΄Π²Π° класса — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅.

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

Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ языкС, Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ нСпосрСдствСнно выполняСт (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚) Π΅Π΅ тСкст Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° остаСтся Π½Π° исходном языкС ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ процСссор ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° — это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ машинного ΠΊΠΎΠ΄Π°.

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

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

Для любого ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ языка ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ компилятор — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, язык Лисп, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π‘ΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅ динамичСски ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя исполнСния.

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

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

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

Π”Π΅Π»ΠΈΡΡŒ Π΄ΠΎΠ±Ρ€ΠΎΠΌ πŸ˜‰

Internet. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎ Π²Π΅Π±-страницС, Π²Π΅Π±-сайтС, адрСсС сайта. НазначСниС ΠΈ элСмСнты интСрфСйса Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

3. Π―Π·Ρ‹ΠΊΠΈ

Π‘Π²ΠΎΠ±ΠΎΠ΄Π° доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ рСсурсам Π½Π΅ ограничиваСтся государствСнными Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΈ/ΠΈΠ»ΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ, Π½ΠΎ языковыС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. ΠŸΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ языком Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° являСтся английский язык…

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

1.1 Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

1.2 ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования—язык программирования, исходный ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСобразуСтся компилятором Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ записываСтся Π² Ρ„Π°ΠΉΠ», с особым Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ/ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ этого Ρ„Π°ΠΉΠ»Π°…

ΠžΡΠ½ΠΎΠ²Ρ‹ web-Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ГрафичСскиС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹

1.3 Π―Π·Ρ‹ΠΊΠΈ

ΠžΡΠ½ΠΎΠ²Ρ‹ web-Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ГрафичСскиС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹

1.3.2 БСрвисныС языки

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π°Π΅Ρ‚ запрос Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ страницу (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π½Π΅Ρ‘ ΠΏΠΎ ссылкС ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ адрСс Π² адрСсной строкС своСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°), Ρ‚ΠΎ вызванная страница сначала обрабатываСтся Π½Π° сСрвСрС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹…

ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ

1.4 Π―Π·Ρ‹ΠΊΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅

Π‘Π²ΠΎΠ±ΠΎΠ΄Π° доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ рСсурсам Π½Π΅ ограничиваСтся государствСнными Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΈ/ΠΈΠ»ΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ, Π½ΠΎ языковыС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. ΠŸΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ языком Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° являСтся английский язык. ..

ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°Π»Π° Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MS SharePoint

1.3 Π―Π·Ρ‹ΠΊΠΈ программирования

Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Π±-частями достаточно знания языка XML ΠΈ языка ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ XSLT. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ основываСтся Π² основном Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСйчас я расскаТу ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этих языках…

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создания Web-страниц

1. Π―Π·Ρ‹ΠΊΠΈ программирования

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° для Π²Π΅Π±-сайта коммСрчСской Ρ„ΠΈΡ€ΠΌΡ‹

1.2 Π―Π·Ρ‹ΠΊΠΈ web-программирования

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°Π»Π° прСдприятия ПО ВотСмскиС элСктричСскиС сСти

4.3 Π―Π·Ρ‹ΠΊΠΈ программирования

Π Π°Π±ΠΎΡ‚Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π° состоит ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π°Π²Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… частСй: сСрвСрной ΠΈ клиСнтской. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ язык программирования Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ это являСтся самым Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ[8]. ..

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² сСти Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

2.1 Π―Π·Ρ‹ΠΊΠΈ программирования

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°. 1 класс»

1.1 Π―Π·Ρ‹ΠΊΠΈ программирования

ΠžΠΏΠΈΡΠ°Ρ‚ΡŒ языки…

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ комплСкса с Ρ†Π΅Π»ΡŒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ способа хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± измСрСниях счСтчиков

2.1 Π―Π·Ρ‹ΠΊΠΈ программирования

Π‘Π΅Ρ‚ΡŒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

4. Π―Π·Ρ‹ΠΊΠΈ

Π‘Π²ΠΎΠ±ΠΎΠ΄Π° доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ рСсурсам Π½Π΅ ограничиваСтся государствСнными Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΈ/ΠΈΠ»ΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ, Π½ΠΎ языковыС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. ΠŸΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ языком Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° являСтся английский язык…

Π―Π·Ρ‹ΠΊΠΈ программирования

1. Π―Π·Ρ‹ΠΊΠΈ программирования

Π―Π·Ρ‹ΠΊ программирования — это систСма ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, слуТащая для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Π­Π’Πœ. Π―Π·Ρ‹ΠΊΠΈ программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ искусствСнными языками…

ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования β€” C, C++, Rust, Go, Haskell, C#, Java, Python, Ruby, Javascript β€” Finematics

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ компиляции ΠΈ выполнСния ΠΊΠΎΠ΄Π°, Π½Π΅ всС языки программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Один ΠΈΠ· распространСнных, хотя ΠΈ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… способов ΠΈΡ… различСния β€” Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° 2 Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков.

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

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

Java ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ языка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ исходный ΠΊΠΎΠ΄ Java компилируСтся Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ интСрпрСтируСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java (JVM). Π­Ρ‚ΠΎ стандартный процСсс, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΎ всСх популярных рСализациях Java.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык β€” это язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСализуСтся с использованиСм компиляторов, Π° Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, написанныС Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ языкС программирования, Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ компилятор вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Π»Π΅Ρ‚Ρƒ, Π΄Π΅Π»Π°Π΅Ρ‚ всю свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΎ выполнСния.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ языка являСтся C++.

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ нСдостатками ΡΠ²Π»ΡΡŽΡ‚ΡΡ плохая ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ приходится ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ЦП ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся для фактичСской компиляции.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ популярных ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΡΠ²Π»ΡΡŽΡ‚ΡΡ C, Go, Haskell ΠΈΠ»ΠΈ Rust.

Π―Π·Ρ‹ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°

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

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

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

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ довольно слоТно Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ популярный язык Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… мноТСство Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Java, C#, Python ΠΈΠ»ΠΈ Ruby.

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

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

Золотая сСрСдина? ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ JIT

Пока Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° языка, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, ΠΈΠΌΠ΅ΡŽΡ‚ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы.

Π§Ρ‚ΠΎ, Ссли я скаТу Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ скорости ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скомпилированного языка, Π½Π΅ ТСртвуя ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрым Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ компиляции? Π—Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ? Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚-Ρ‚ΠΎ ΠΈ вступаСт Π² ΠΈΠ³Ρ€Ρƒ JIT-компиляция.

JIT ΠΈΠ»ΠΈ своСврСмСнная компиляция прСдставляСт собой Π³ΠΈΠ±Ρ€ΠΈΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ компиляции, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°ΡŽΡ‰Π΅ΠΉ компиляциСй, ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ. ВмСсто ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт собой Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄) JIT ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ скомпилированный ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, поэтому Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

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

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

ПолноС объяснСниС процСсса JIT-компиляции Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этого Π²ΠΈΠ΄Π΅ΠΎ, Π½ΠΎ я ΠΏΠΎΠ΄ΡƒΠΌΡ‹Π²Π°ΡŽ ΠΎ создании Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, посвящСнного JIT-компиляции, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΎΡ‡Π΅Π½ΡŒ интСрСсный процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ всС Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚.

НСкоторыС ΠΈΠ· языков, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, β€” это Java, C#, Pypy (Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ рСализация Python) ΠΈ V8 (Π΄Π²ΠΈΠΆΠΎΠΊ Javascript).

РСзюмС

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сравним нСсколько основных характСристик ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ…, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ JIT-COPPILED
БКОРОБВЬ FAST SLOSE ΠžΠ±Ρ‹Ρ‡Π½ΠΎ FAST (DEPEND ON THE JUTENTATION) ΠžΠ±Ρ‹Ρ‡Π½ΠΎ (DEPEND ON THE GIT Reparation). Ρ…ΠΎΡ€ΠΎΡˆΠΎ
врСмя компиляции ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ быстро (Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄) быстро (Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄)

ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ популярных языков программирования Π² наши Π΄Π½ΠΈ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄ ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих Ρ‚Ρ€Π΅Ρ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ компиляция, компиляция Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈ интСрпрСтация ΠΈ компиляция Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈ интСрпрСтация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JIT-компиляции.

Extra

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ, Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ интСрСсный Ρ„Π°ΠΊΡ‚.

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ языков программирования с мноТСством Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, Python являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.

Π­Ρ‚ΠΎ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Python 9.0003

  • IronPython (Python, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° .NET)
  • Jython (Python, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Java)
  • PyPy (Python с JIT-компилятором)

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках ΠΈΠ»ΠΈ прСдлоТСния ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, поТалуйста, ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½ΠΈΠΆΠ΅.

Π―Π·Ρ‹ΠΊΠΈ сцСнариСв ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Π² WebAssembly

ΠžΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅ WebAssembly состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅ΠΉ срСдой выполнСния для всСх Π²ΠΈΠ΄ΠΎΠ² языков. Но Π΅ΡΡ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ пишСм Π½Π° скриптовых языках (JavaScript, Python, Ruby) ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками (C/C++, Go, Rust). Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ скомпилированныС языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Java, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Π² JVM. Π’ этом постС ΠΌΡ‹ рассмотрим Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚ WebAssembly, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит Π½Π° этих Ρ„Ρ€ΠΎΠ½Ρ‚Π°Ρ….

Взгляд Π½Π° языки программирования с высоты ΠΏΡ‚ΠΈΡ‡ΡŒΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Ρ‚Π°

Взглянув Π½Π° самыС популярныС языки программирования, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° языков программирования:

 1 JavaScript
2 ΠΏΠΈΡ‚ΠΎΠ½Π°
2 Π―Π²Π°
4 PHP
5 Π‘Π‘Π¦
5 Π‘++
5 Π‘#
8 машинопись
9 Ρ€ΡƒΠ±ΠΈΠ½
10 Π‘
 

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ дСсяткС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ нСсколько ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков, ΠΏΠ°Ρ€Ρƒ языков Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈ ΠΏΡΡ‚ΡŒ языков сцСнариСв.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ дСсятку списка C++ (β„–5) ΠΈ C (β„–10) входят языки, скомпилированныС Π² Ρ€ΠΎΠ΄Π½Ρ‹Π΅. Rust ΠΈ Go β€” Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… популярных ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Ρ‚ΠΎΠΏ-10. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, эти языки ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, спСцифичный для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ языку Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ€Π°Π½Π½ΡŽΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ WebAssembly. На самом Π΄Π΅Π»Π΅ всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ (C, C++, Rust ΠΈ Go) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² WebAssembly. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти языки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ОБ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° C ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ скомпилирована ΠΎΠ΄Π½ΠΈΠΌ способом для запуска Π½Π° ARM ΠΈ Linux ΠΈ скомпилирована Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² macOS с процСссором Intel (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹). Но ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ скомпилированы Π² WebAssembly, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² любой срСдС выполнСния WebAssembly нСзависимо ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня.

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ компиляторов WebAssembly, Rust ΠΈ C ΠΈΠ΄ΡƒΡ‚ дальшС всСх, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° C++ обСспСчиваСтся компиляторами C ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ поддСрТиваСтся. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ дистрибутив Go (ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Google) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отстаСт, Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ TinyGo компСнсируСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ. ВсС эти языки Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ использованию Π² WebAssembly.

По сути, компиляция ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих Β«Ρ€ΠΎΠ΄Π½Ρ‹Ρ…Β» языков Π² WebAssembly ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²Π΅Π΄ΡƒΡ‚ сСбя большС ΠΊΠ°ΠΊ языки Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин.

Π―Π·Ρ‹ΠΊΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ дСсятку вошли Π΄Π²Π° языка Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин: Java (β„–2) ΠΈ C# (β„–5). Π”Ρ€ΡƒΠ³ΠΈΠ΅ популярныС языки Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Scala, F# ΠΈ Kotlin. Π­Ρ‚ΠΈ языки ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π² собствСнный ΠΊΠΎΠ΄. Они ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Β«Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Β». Π—Π°Ρ‚Π΅ΠΌ этот ΠΊΠΎΠ΄ загруТаСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ срСду выполнСния ΠΈΠ»ΠΈ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ (JVM для Java ΠΈΠ»ΠΈ CLR для C#).

.NET (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ C#, F# ΠΈ ASP.net) ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ WebAssembly Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΈ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Microsoft Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Kotlin развиваСтся быстро, ΠΈ Π΅ΡΡ‚ΡŒ ряд ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² для Java ΠΈ Scala.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти языки пСрСнСсСны Π² WebAssembly, ΠΈΠΌ большС Π½Π΅ понадобятся срСды выполнСния для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… языков. НапримСр, Kotlin Π½Π΅ понадобится JVM. Он Π±ΡƒΠ΄Π΅Ρ‚ скомпилирован нСпосрСдствСнно Π² WebAssembly, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ нСпосрСдствСнно Π²ΠΎ врСмя выполнСния WebAssembly.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° этих языков ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Π°, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрСли Π²Ρ‹ΡˆΠ΅ (хотя всС ΠΎΠ½ΠΈ быстро ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ΡΡ). Но Ссли Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° сохранится, ΠΊΠ°ΠΊ сСгодня, ΠΌΡ‹ скоро ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ языки Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² WebAssembly.

Π―Π·Ρ‹ΠΊΠΈ сцСнариСв (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅)

ΠŸΡΡ‚ΡŒ языков сцСнариСв вошли Π² дСсятку Π»ΡƒΡ‡ΡˆΠΈΡ… языков программирования: JavaScript (β„–1), Python (β„–2), PHP (β„–4), TypeScript (β„–8) ΠΈ Ruby (β„–9). Π―Π·Ρ‹ΠΊΠΈ сцСнариСв ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ВмСсто этого ΠΊΠΎΠ΄ пСрСдаСтся нСпосрСдствСнно Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π²ΠΎ врСмя выполнСния. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π»Π΅Ρ‚Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ΄ загруТаСтся ΠΈ выполняСтся Π² Ρ‚Π°Π½Π΄Π΅ΠΌΠ΅, срСды языков сцСнариСв ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки. НапримСр, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ части исходного ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя выполнСния являСтся Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ это Π½Π΅ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков.

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

Из языков сцСнариСв, входящих Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ дСсятку, JavaScript находится Π² стадии Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ SpiderMonkey, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² основС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ JavaScript Π² Firefox, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ компилируСтся Π² WebAssembly.

По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΡΠ½Π²Π°Ρ€ΡŒ 2022 Π³ΠΎΠ΄Π° ΠΈ Ruby, ΠΈ Python Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ срСды выполнСния Π² WebAssembly. Π₯отя Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Wasm находится Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии, ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° самая слоТная Ρ‡Π°ΡΡ‚ΡŒ сдСлана, ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ быстро ΡΠΎΠ·Ρ€Π΅ΡŽΡ‚. (На Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько сообщСний Π² Π±Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ruby ΠΈ Python Π² дСйствии!)

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

НаконСц, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PHP Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отстаСт ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков сцСнариСв. НСсколько Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ выполнСния PHP Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, загруТая ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP, скомпилированный WebAssembly, Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ выполняя Ρ‚Π°ΠΌ ΠΊΠΎΠ΄. НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΡ€Π°ΠΆΠ°ΡŽΡ‚. PHP с Π΅Π³ΠΎ модСлью запрос/ΠΎΡ‚Π²Π΅Ρ‚ Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ языком для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ WebAssembly. ΠœΡ‹ Π²ΠΎΠΎΠ΄ΡƒΡˆΠ΅Π²Π»Π΅Π½Ρ‹ пСрспСктивами Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

Π―Π·Ρ‹ΠΊΠΈ сцСнариСв ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками

И послСднСС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² языках. Π‘ WebAssembly ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C, Rust ΠΈ Go, фактичСски становятся языками Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин. МоТСм Π»ΠΈ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΈ Π² ΠΌΠΈΡ€Π΅ сцСнариСв? Π‘ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ языки сцСнариСв ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ WebAssembly?

Π•ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основания ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

  • ΠžΠ±Ρ‰Π°Ρ модСль выполнСния ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с WebAssembly. А Π΄Π²ΡƒΡ…ΡΡ‚Π°ΠΏΠ½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ скриптовых языков ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ одноэтапной.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ΄ вопросом. Π’Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ двухстадийный процСсс Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, насколько ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ одностадийный процСсс.
  • Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° β€” Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°: прямо сСйчас ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сцСнарий Python, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° WebAssembly, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ срСды Python. ΠŸΡ€ΠΈ компиляции ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Python Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ части срСды Python ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π²ΠΎ врСмя компиляции, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° прилоТСния
  • .
  • AssemblyScript ΡƒΠΆΠ΅ Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚, раздСляя Π΄ΠΈΠ·Π°ΠΉΠ½ TypeScript, Π½ΠΎ компилируя нСпосрСдствСнно Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ WebAssembly.

JavaScript, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ самым популярным языком программирования, вСроятно, являСтся Ρ‚Π΅ΠΌ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ языков сцСнариСв Π² WebAssembly. Но Π² настоящСС врСмя ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ модСль двухэтапного ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° являСтся основным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ выполнСния языков сцСнариСв Π² WebAssembly.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выполнСния популярных языков Π² WebAssembly быстро растСт. ΠœΡ‹ исслСдовали 10 самых популярных языков, Π½ΠΎ Ссли Π±Ρ‹ ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΈΡΡŒ Π΄ΠΎ 20 самых популярных, ΠΌΡ‹ Π±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. МногиС языки, популярныС ΠΈ малоизвСстныС, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ WebAssembly. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сам WebAssembly ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρƒ нас Π΅ΡΡ‚ΡŒ всС основания ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ WebAssembly станСт популярной Ρ†Π΅Π»ΡŒΡŽ для растущСго числа языков.

ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков! | CodeWithHarry

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Java + Установка Java JDK ΠΈ IntelliJ IDEA для Java

Базовая структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java: ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ нашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Hello World Π½Π° Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java: Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π² Java

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 1: ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ‹ CBSE

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java. Π“Π»Π°Π²Π° 1. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ | ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Java с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ выраТСния Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ увСличСния/ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 1 — Solutions + Shoutouts

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java: Π“Π»Π°Π²Π° 2 — ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ (вопросы ΠΏΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Java)

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java: Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² строки

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вопросы ΠΏΠΎ Java ΠΏΠΎ строкам: практичСский Π½Π°Π±ΠΎΡ€ ΠΏΠΎ строкам Π² Java (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ!)

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Switch Case Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вопросы ΠΏΠΎ условным выраТСниям ΠΈ рСгистру Switch0003

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π¦ΠΈΠΊΠ» do-while Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π¦ΠΈΠΊΠ» for Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java.

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π² Java

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Java

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вопросы ΠΏΠΎ массивам Π² Java

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ IntelliJ IDEA выглядСла ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅!

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (VarArgs) Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. РСкурсия Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вопросы ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java.

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнного класса Java

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ вопросы ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа, Π³Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2. РСшСниС ΠΈ ΠΊΡ€ΠΈΠΊΠΈ

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π² Java

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Java 3. Π£Π³Π°Π΄Π°ΠΉ число (ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ OOPs) Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа ΠΈ конструкторы

НаслСдованиС в Java

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π² наслСдовании Π² Java

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this ΠΈ super Π² Java

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Java

ДинамичСская ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 3. РСшСния ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4. Онлайн-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. УпраТнСния ΠΈ практичСскиС вопросы ΠΏΠΎ наслСдованию

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java.

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: абстрактныС классы ΠΈ интСрфСйсы

ΠŸΠΎΡ‡Π΅ΠΌΡƒ мноТСствСнноС наслСдованиС Π½Π΅ поддСрТиваСтся Π² java?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ интСрфСйсов Java ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

НаслСдованиС Π² интСрфСйсах

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π² интСрфСйсах

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ вопросы ΠΏΠΎ абстрактным классам ΠΈ интСрфСйсам ΠΏΠΎ Java

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Java 4: РСшСниС ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ!

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки!

Java интСрпрСтируСтся ΠΈΠ»ΠΈ компилируСтся?

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Java

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Java. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Java

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа Π² Java

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ Java ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ доступа

Java-ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 5: созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π² Java

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ класса Thread

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Java с использованиСм интСрфСйса Runnable

Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΠΎΡ‚ΠΎΠΊΠ° Java

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΠ· класса Thread Π² Java

3

2 ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Java

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Java: практичСскиС вопросы ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 5: РСшСниС ΠΈ привСтствиС!

Ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Java

БинтаксичСскиС ошибки, ошибки выполнСния ΠΈ логичСскиС ошибки Π² Java (дСмонстрация)

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π±Π»ΠΎΠΊ Try-Catch Π² Java

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Try-Catch Π² Java

Класс Exception в Java Thr

3 9 vs Броски Π² Java

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π² Java ΠΈ Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ!

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠΎ ошибкам ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ

Java-ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ | ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ вопрос ΠΏΠΎ Java

Java Collections Framework

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² Java

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Java

ArrayList Π² Java: дСмонстрация ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

LinkedList Π² Java: дСмонстрация ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π”Π°Ρ‚Π° ΠΈ врСмя Π² Java

Класс Date в Java

Класс Calendar в Java

Класс GregorianCalendar и TimeZone в Java

java. time API β€” ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

DateTimeFormatter Π² Java

Advanced Java Practice Set

Java Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6: РСшСниС | ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ Java 7: БистСма управлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Π² ​​Java

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² JavaDocs для нашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Java: Ρ‚Π΅Π³ΠΈ для докумСнтирования классов

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Java: Ρ‚Π΅Π³ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Java

Аннотации Π² Java

ΠšΠ»Π°ΡΡΡ‹ Java & Лямбда-выраТСния

Java Generics

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Java

Advanced Java 2 β€” практичСский Π½Π°Π±ΠΎΡ€

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 7: РСшСния + ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ЯвляСтся Π»ΠΈ Java ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком?

Написано Π’ΠΈΠΌΠΎΠΌ Π‘Ρ‚Π°Ρ‚Π»Π΅Ρ€ΠΎΠΌ Π½Π° Java


Π― ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽ Π½Π° Java ΡƒΠΆΠ΅ нСсколько Π»Π΅Ρ‚, ΠΈ Π½ΠΎΠ²Ρ‹Π΅ студСнты часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ мСня: «ЯвляСтся Π»ΠΈ Java ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком программирования?Β»

ΠžΡ‚Π²Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ Ρ€Π°Π·Π²Π΅ΡΡ‚ΡŒ ваши заблуТдСния.

Java являСтся ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком. Код Java записываСтся Π² Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ . ява . Π­Ρ‚ΠΎΡ‚ исходный Ρ„Π°ΠΉΠ» компилируСтся javac, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ компилятором Java Π² Ρ„Π°ΠΉΠ» класса. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C ΠΈΠ»ΠΈ C++, компилятор Java Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ вмСсто собствСнного машинного ΠΊΠΎΠ΄Π°.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Java

JAVA β€” это язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Sun Microsystems Π΅Ρ‰Π΅ Π² 1991 Π³ΠΎΠ΄Ρƒ.

Основная Ρ†Π΅Π»ΡŒ JAVA β€” Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Π‘ 2006 Π³ΠΎΠ΄Π° JAVA доступна ΠΏΠΎΠ΄ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ общСствСнной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ OpenJDK.

Java содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ состоит ΠΈΠ· языка программирования, компилятора, Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java срСды выполнСния.

Π‘Ρ€Π΅Π΄Π° выполнСния позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° языках, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ языка программирования Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Java.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ языка Java

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… особСнностСй языка программирования Java:

  1. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: Java являСтся Π»Π΅Π³ΠΊΠΎ пСрСносимым языком, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π±Π΅Π· прямого доступа ΠΊ опСрационная систСма.
  2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования: Java считаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… языков ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, всС элСмСнты Π² Java Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.
  3. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ: ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Java Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π² основном выполняСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  4. АвтоматизированноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ: Java извСстСн прСвосходным ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Он автоматичСски выдСляСт ΠΈ освобоТдаСт ΠΏΠ°ΠΌΡΡ‚ΡŒ для Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора автоматичСски удаляСт любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π΅Π· Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ указатСля.

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, являСтся Π»ΠΈ Java ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала посмотрим, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки β€” это языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ процСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ прямой ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ быстрыми ΠΈ эффСктивными ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм с Ρ‚Π°ΠΊΠΈΠΌΠΈ языками Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ программисту ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚Π°ΠΊΠΈΠΌΠΈ аспСктами, ΠΊΠ°ΠΊ использованиС ЦП, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ Ρ‚. Π΄.

Одна ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Β«ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΒ», Ρ‚. Π΅. ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Β«ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΒ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выполняСт всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построчно ΠΈ выполняСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π‘Π½Π°Ρ‡Π°Π»Π° считываСтся каТдая строка ΠΊΠΎΠ΄Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

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

Π’Π΅Ρ€Π΄ΠΈΠΊΡ‚ Java: скомпилировано ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ?

МногиС языки программирования ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚. Π΅. ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ. Π‘Π°ΠΌ язык Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ компилируСтся ΠΈΠ»ΠΈ интСрпрСтируСтся, Π½ΠΎ для простоты упоминаСтся ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ. Аналогично Π² случаС с Java.

Π’ Java становится слоТно Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΡΠ²Π½ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ, ΠΊΠ°ΠΊ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ C++. Java Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ машинного языка послС компиляции исходного Ρ„Π°ΠΉΠ»Π° ΠΈ Π½Π΅ выполняСт Π΅Π³ΠΎ построчно.

Java являСтся ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком. Код Java записываСтся Π² Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ . ява . Π­Ρ‚ΠΎΡ‚ исходный Ρ„Π°ΠΉΠ» компилируСтся javac, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ компилятором Java Π² Ρ„Π°ΠΉΠ» класса.

Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C ΠΈΠ»ΠΈ C++, этот компилятор Java Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ собствСнный ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ВмСсто этого ΠΎΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ Π½Π΅Π³ΠΎ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄.

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

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ , скомпилированный javac , интСрпрСтируСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java ΠΈΠ»ΠΈ JVM Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ нашСго обсуТдСния ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Java нСльзя явно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки. Он считаСтся ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Java, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этими 10 ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠΌΠΈ Java-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. БущСствуСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ шаг Π·Π° шагом ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π‘Π•Π‘ΠŸΠ›ΠΠ’ΠΠž!

НСдавний ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚

ссылка Π½Π° ΡƒΡ€ΠΎΠ²Π½ΠΈ языка программирования (ΠΎΡ‚ самого Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Π΄ΠΎ самого высокого)

Π£Ρ€ΠΎΠ²Π½ΠΈ языка программирования (ΠΎΡ‚ самого Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Π΄ΠΎ самого высокого)

Когда я учился ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСня заинтСрСсовали, Π±Ρ‹Π»Π° Ρ€Π°Π·Π½ΠΈΡ†Π° Π² уровнях языков программирования. НСдавно я Π³Π»ΡƒΠ±ΠΎΠΊΠΎ погрузился Π² эти Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΈ собрал это. ..

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

ссылка Π½Π° ЯвляСтся Π»ΠΈ Python языком высокого уровня?

ЯвляСтся Π»ΠΈ Python языком высокого уровня?

Python β€” ΠΌΠΎΠΉ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ язык программирования, поэтому я Ρ…ΠΎΡ‚Π΅Π» ΡƒΠ·Π½Π°Ρ‚ΡŒ: Β« ЯвляСтся Π»ΠΈ Python языком высокого уровня ?Β» Π― ΠΏΡ€ΠΎΠ²Π΅Π» нСбольшоС исслСдованиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ для сСбя, ΠΈ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ я…

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

Ним Π―Π·Ρ‹ΠΊ программирования

Nim β€” это статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык систСмного программирования. Он сочСтаСт Π² сСбС ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π·Ρ€Π΅Π»Ρ‹Ρ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Python, Ада ΠΈ ΠœΠΎΠ΄ΡƒΠ»Π°.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ним 1.6.8 ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΠ½Π»Π°ΠΉΠ½

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

  • Nim Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ собствСнныС исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· зависимостСй, Π½Π΅ зависящиС ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ°Π»Ρ‹ ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π»Π΅Π³ΠΊΠΎΠ΅ пСрСраспрСдСлСниС.
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Nim ΠΈ сгСнСрированныС исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ всС основныС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Windows, Linux, BSD ΠΈ macOS.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Nim являСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ настраиваСмым с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСструкторов ΠΈ пСрСмСщСния. сСмантика, вдохновлСнная C++ ΠΈ Rust. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для встроСнных систСм ТСсткого Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π²ΠΎ врСмя компиляции опрСдСляСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² сочСтании с ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ основанных Π½Π° значСниях Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π² стСкС, приводят ΠΊ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… бэкСндов: компилируСтся Π² C, C++ ΠΈΠ»ΠΈ JavaScript, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Nim ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… потрСбностСй.

Expressive

  • Nim являСтся Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ: компилятор ΠΈ стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Nim.
  • Nim ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΡ‰Π½ΡƒΡŽ систСму макросов, которая позволяСт Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ AST, прСдлагая ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ возмоТности.

Elegant

  • ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ синтаксис Nim, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² этом Π½Π΅Ρ‚ нСобходимости β€” синтаксис достаточно Π³ΠΈΠ±ΠΊΠΈΠΉ.
  • БоврСмСнная систСма Ρ‚ΠΈΠΏΠΎΠ² с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ, обобщСниями ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ сумм.
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сгруппированы ΠΏΠΎ отступу, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько строк.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€If…else, Case switchΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌΠΈΠŸΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ стандарт/стрформат
Ρ‚ΠΈΠΏ
  Π§Π΅Π»ΠΎΠ²Π΅ΠΊ = ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
    имя: строка
    age: Natural # ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ возраст
ΠΏΡƒΡΡ‚ΡŒ люди = [
  Π§Π΅Π»ΠΎΠ²Π΅ΠΊ(имя: Β«Π”ΠΆΠΎΠ½Β», возраст: 45),
  Π§Π΅Π»ΠΎΠ²Π΅ΠΊ(имя: "ΠšΠ΅ΠΉΡ‚", возраст: 30)
]
для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² Π»ΡŽΠ΄ΡΡ…:
  # ВипобСзопасная интСрполяция строк,
  # оцСниваСтся Π²ΠΎ врСмя компиляции.
  echo(fmt"{person.name} {person.age} Π»Π΅Ρ‚")
# Благодаря конструкциям Нима iterator ΠΈ yield,
# ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅
# Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.  Они скомпилированы Π²ΠΎ встроСнныС Ρ†ΠΈΠΊΠ»Ρ‹.
ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл [Idx, T] ​​(a: массив [Idx, T]): T =
  для Ρ… Π²:
    Ссли Ρ… ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 2 == 1:
      Π²Ρ‹Ρ…ΠΎΠ΄ Ρ…
для Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… Π² Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… числах ([3, 6, 9, 12, 15, 18]):
  эхо странноС
# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ систСму макросов Нима для прСобразования ΠΏΠ»ΠΎΡ‚Π½ΠΎΠ³ΠΎ
# ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ описаниС инструкций x86
# Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ поиска, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ
# ассСмблСры ΠΈ JIT.
ΠΈΠΌΠΏΠΎΡ€Ρ‚ макросов, strutils
макрос toLookupTable (Π΄Π°Π½Π½Ρ‹Π΅: статичСскиС [строка]): Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ =
  Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π½ΠΎΠ²ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (nnkBracket)
  для w в data.split(';'):
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉLit(w)
константа
  Π΄Π°Π½Π½Ρ‹Π΅ = "mov;btc;cli;xor"
  ΠΊΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ = toLookupTable (Π΄Π°Π½Π½Ρ‹Π΅)
для o Π² ΠΎΠΏΠΊΠΎΠ΄Π°Ρ…:
  эхо ΠΎ 
 пСрСмСнная условная = 42
Ссли условно < 0:
  эхо "условноС < 0"
Π­Π»ΠΈΡ„ условноС > 0:
  эхо "условноС > 0"
Π΅Ρ‰Π΅:
  эхо "условно == 0"
var ternary = if условноС == 42: true ΠΈΠ½Π°Ρ‡Π΅: false
Π²Π°Ρ€ Π΄Ρ€ΡƒΠ³ΠΎΠΉ =
  Ссли условно == 0:
    "Π½ΡƒΠ»ΡŒ"
  Π­Π»ΠΈΡ„ условный ΠΌΠΎΠ΄ 2 == 0:
    "Π΄Π°ΠΆΠ΅"
  Π΅Ρ‰Π΅:
    "странный"
# ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ рСгистра. 
Π²Π°Ρ€ Π±ΡƒΠΊΠ²Π° = 'с'
Π±ΡƒΠΊΠ²Π°
ΠΈΠ· Β«Π°Β»:
  эхо "Π±ΡƒΠΊΠ²Π° 'Π°'"
ΠΈΠ· 'Π±', 'Π²':
  echo "Π±ΡƒΠΊΠ²Π° 'b' ΠΈΠ»ΠΈ 'c'"
ΠΈΠ· 'Π΄'..'Ρ‡':
  echo "Π±ΡƒΠΊΠ²Π° находится ΠΌΠ΅ΠΆΠ΄Ρƒ 'd' ΠΈ 'h'"
Π΅Ρ‰Π΅:
  echo "Π±ΡƒΠΊΠ²Π° являСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌ символом" 93 == 8 # ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ
assert 4 mod 2 == 0 # ΠœΠΎΠ΄ΡƒΠ»ΡŒ
assert (2 xor 4) == 6 # XOR
assert (4 shr 2) == 1 # Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ PI * 2 == TAU # PI ΠΈ TAU
assert sqrt(4.0) == 2.0 # ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ
assert round(3.5) == 4.0 # Π Π°ΡƒΠ½Π΄
assert isPowerOfTwo(16) # Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ Π΄Π²ΠΎΠΉΠΊΠΈ
assert floor(2.9) == 2.0 # Π­Ρ‚Π°ΠΆ
assert ceil(2.9) == 3.0 # Ceil
assert cos(TAU) == 1.0 # ΠšΠΎΡΠΈΠ½ΡƒΡ
assert gcd(12, 8) == 4 # Наибольший ΠΎΠ±Ρ‰ΠΈΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ
assert trunc(1.75) == 1.0 # УсСчСниС
assert floorMod(8, 3) == 2 # Π­Ρ‚Π°ΠΆ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ
assert floorDiv(8, 3) == 2 # ΠŸΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этаТа
assert hypot(4.0, 3.0) == 5.0 # Π“ΠΈΠΏΠΎΡ‚Π΅Π½ΡƒΠ·Π°
assert gamma(4.0) == 6.0 # Π“Π°ΠΌΠΌΠ°-функция
assert radToDeg(TAU) == 360.0 # Π Π°Π΄ΠΈΠ°Π½ Π² Градус
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°ΠΆΠΈΠΌ(1.4, 0.0 .. 1.0) == 1.0 # Π—Π°ΠΆΠΈΠΌ
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ€Π°Π²Π½ΠΎ (PI, 3.14159265358979)
assert euclDiv(-13, -3) == 5 # Π•Π²ΠΊΠ»ΠΈΠ΄ΠΎΠ²ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅
assert euclMod(-13, 3) == 2 # Π•Π²ΠΊΠ»ΠΈΠ΄ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 
 ΠΈΠΌΠΏΠΎΡ€Ρ‚ std/[strutils, strscans]
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "con" & "cat" == "concat"
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "a". strip == "a"
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "42".parseInt == 42
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "3.14".parseFloat == 3.14
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "0x666".parseHexInt == 1638
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "TrUe".parseBool == true
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "0o777".parseOctInt == 511
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "Π°".repeat(9) == "Π°Π°Π°Π°Π°Π°Π°Π°Π°Π°"
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "abc".startsWith("ab")
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "abc".endsWith("bc")
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ ["a", "b", "c"].join == "abc"
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "abcd".find("c") == 2
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "a x a y a z".count("a") == 3
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "A__B__C".normalize == "abc"
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "a,b".split(",") == @["a", "b"]
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "Π°".center(5) == " Π° "
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ "Π°".indent(4) == " Π°"
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ " a".unindent(4) == "a"
для слова Π² tokenize("Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€"):
  эхо слово
ΠΏΡƒΡΡ‚ΡŒ (Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π³ΠΎΠ΄, мСсяц, дСнь) = scanTuple("1000-01-01", "$i-$i-$i")
Ссли Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ:
  ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ Π³ΠΎΠ΄ == 1000
  ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ мСсяц == 1
  ΡƒΡ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ дСнь == 1 
 import std/[сахар, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π°Π±ΠΎΡ€Ρ‹, сСквСнты, струтилы]
ΠΏΡƒΡΡ‚ΡŒ пСрСмСнная0 = ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ (новая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ):
  для элСмСнта Π² @[-9, 1, 42, 0, -1, 9]:
    ΠΏΡƒΠ½ΠΊΡ‚ * 2
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ0 == @[-18, 2, 84, 0, -2, 18]
ΠΏΡƒΡΡ‚ΡŒ пСрСмСнная1 = ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ (initTable):
  для ΠΊΠ»ΡŽΡ‡Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² @[0, 5, 9]:
    {ΠΊΠ»ΡŽΡ‡: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π·Π΄Π΅Π» 2}
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ1 == {0:0, 1:2, 2:4}. toTable
ΠΏΡƒΡΡ‚ΡŒ пСрСмСнная2 = ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ (initHashSet):
  для элСмСнта Π² @[-9, 1, 42, 0, -1, 9]:
    {элСмСнт + элСмСнт}
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ2 == [2, 18, 84, 0, -18, -2].toHashSet
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ toSeq(1..15).mapIt(
    Ссли мод 15 == 0: "FizzBuzz"
    elif it mod 5 == 0: "Π–ΡƒΠΆΠΆΠ°Π½ΠΈΠ΅"
    elif it mod 3 == 0: "Π¨ΠΈΠΏΠ΅Π½ΠΈΠ΅"
    Π΅Ρ‰Π΅: $это
  ).join(" ").strip == "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz" 

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π° RosettaCode…