ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков программирования

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

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

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков программирования (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Машинно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки

Машинно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки — это языки, Π½Π°Π±ΠΎΡ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сущСствСнно зависят ΠΎΡ‚ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚Π΅ΠΉ Π­Π’Πœ (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ языка, структуры памяти ΠΈ Ρ‚. Π΄.).

Машинно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС возмоТности ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ машинно-зависимых языков:

  • — Π²Ρ‹ΡΠΎΠΊΠΎΠ΅ качСство создаваСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния);
  • — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсов;
  • — ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ² памяти;
  • — Π΄Π»Ρ составлСния эффСктивных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ систСму ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ функционирования Π΄Π°Π½Π½ΠΎΠΉ Π­Π’Πœ;
  • — Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ процСсса составлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (особСнно Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… языках ΠΈ Π―БК), ΠΏΠ»ΠΎΡ…ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ошибок;
  • — Π½ΠΈΠ·ΠΊΠ°Ρ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ программирования;
  • — Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ нСпосрСдствСнного использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, составлСнных Π½Π° ΡΡ‚ΠΈΡ… языках, Π½Π° Π­Π’Πœ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ².

Машинно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки ΠΏΠΎ ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ автоматичСского программирования ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° ΠΊΠ»Π°ΡΡΡ‹.

Π’ΠΈΠ΄Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языков программирования ΠΈ ΠΈΡ… Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

Python.

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

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

Π­Ρ‚Π°Π»ΠΎΠ½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Python являСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ CPython, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Он Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚раняСтся ΠΏΠΎΠ΄ свободной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Python Software Foundation License, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² Π»ΡŽΠ±Ρ‹Ρ… прилоТСниях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅. Π•ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² для JVM (с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ компиляции), MSIL (с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ компиляции), LLVM ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ PyPy ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Python Π½Π° ΡΠ°ΠΌΠΎΠΌ Python, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ языка ΠΈ ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΡƒ экспСримСнтов Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями.

Python — Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ язык программирования, Π½ΠΎΠ²Ρ‹Π΅ вСрсии (с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языковых свойств) выходят ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π· Π² Π΄Π²Π° с ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ Π³ΠΎΠ΄Π°. ВслСдствиС этого ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π½Π° Python ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ стандарт ANSI, ISO ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ стандарты, ΠΈΡ… Ρ€ΠΎΠ»ΡŒ выполняСт CPython.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° языка Python Π±Ρ‹Π»Π° Π½Π°Ρ‡Π°Ρ‚Π° Π² ΠΊΠΎΠ½Ρ†Π΅ 1980;Ρ… Π³ΠΎΠ΄ΠΎΠ² сотрудником голландского института CWI Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россумом. Для распрСдСлённой ΠžΠ‘ Amoeba трСбовался Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ скриптовый язык, ΠΈ Π“Π²ΠΈΠ΄ΠΎ Π½Π°Ρ‡Π°Π» ΠΏΠΈΡΠ°Ρ‚ΡŒ Python Π½Π° Π΄ΠΎΡΡƒΠ³Π΅, позаимствовав Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для языка ABC (Π“Π²ΠΈΠ΄ΠΎ участвовал Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ этого языка, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ). Π’ Ρ„Π΅Π²Ρ€Π°Π»Π΅ 1991 Π³ΠΎΠ΄Π° Π“Π²ΠΈΠ΄ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» исходный тСкст Π² Π½ΡŒΡŽΡΠ³Ρ€ΡƒΠΏΠΏΠ΅ alt.sources. Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»Π° Python проСктировался ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык.

Pascal.

Паскаль (Π°Π½Π³Π». Pascal) -высокоуровнСвый язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных языков программирования, ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Π²Ρ‹ΡΡˆΠ΅ΠΉ школС, являСтся Π±Π°Π·ΠΎΠΉ для большого числа Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Π‘Ρ‹Π» создан Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌ Π² 1968/9 Π³ΠΎΠ΄Π°Ρ… (ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1970;ΠΌ) послС Π΅Π³ΠΎ участия Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стандарта языкаАлгол-68.

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

Паскаль Π±Ρ‹Π» создан Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌΠ² 1968/9 Π³ΠΎΠ΄Π°Ρ… послС Π΅Π³ΠΎ участия Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стандарта языкаАлгол-68. Он Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1970 Π³ΠΎΠ΄Ρƒ Π’ΠΈΡ€Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ нСбольшой ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ язык, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Паскаля Π±Ρ‹Π» написан Π½Π° ΡΠ°ΠΌΠΎΠΌ ПаскалС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ «ΠΌΠ΅Ρ‚ΠΎΠ΄ раскрутки», ΠΊΠΎΠ³Π΄Π° создаСтся ядро языка, с ΠΏΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½Ρ‹ΠΌ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй.

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

НаиболСС извСстной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Паскаля, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²ΡˆΠ°Ρ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка являСтся Turbo Pascal Ρ„ΠΈΡ€ΠΌΡ‹ Borland, Π²Ρ‹Ρ€ΠΎΡΡˆΠ°Ρ Π·Π°Ρ‚Π΅ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Паскаль для DOS (начиная с Π²Π΅Ρ€ΡΠΈΠΈ 5.5) ΠΈ Windows ΠΈ Π΄Π°Π»Π΅Π΅ Π² Delphi, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ использовались Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка.

Π”ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ Паскаля, примСняСмыС Π² Turbo Pascal для DOS ΠΈ Delphi для Windows, ΠΈΠ·-Π·Π° отсутствия Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… коммСрчСских Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ стали популярны.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Паскаль ΠΎΡ‚ Borland ΠΈ Π² ΠΎΡ‚сутствиС отраслСвой стандартизации стал сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎ Паскаля.

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

C.

Π‘ΠΈ (Π°Π½Π³Π». C) — стандартизированный ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ 1970;Ρ… Π³ΠΎΠ΄ΠΎΠ² сотрудниками Bell Labs КСном Вомпсоном ΠΈ Π”Снисом Π ΠΈΡ‚Ρ‡ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка Π‘ΠΈ. Π‘ΠΈ Π±Ρ‹Π» создан для использования Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС UNIX. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΎΠ½ Π±Ρ‹Π» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈ ΡΡ‚Π°Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования. Π‘ΠΈ Ρ†Π΅Π½ΡΡ‚ Π·Π° Π΅Π³ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ; ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся самым популярным языком для создания систСмного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для создания ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π‘ΠΈ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚ывался для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², ΠΎΠ½ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ синтаксис языка Π‘ΠΈ ΡΡ‚Π°Π» основой для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков (см.: Π‘ΠΈ-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксис).

Для языка Π‘ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, соврСмСнный Π½Π°Π±ΠΎΡ€ конструкций управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ выполнСния, структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ ΠΎΡ‚личаСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠΎΠΌ. Авторы языка Ρ…ΠΎΡ‚Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½Ρ‘ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ компилятора, послС компиляции ΠΊΠ°ΠΆΠ΄ΠΎΠΉ элСмСнтарной ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ соотвСтствовало вСсьма нСбольшоС число ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… элСмСнтов языка Π½Π΅ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Π»ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. ΠžΠ΄Π½ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ компилятор ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ Π½Π°Π·Π°Π΄, ΠΊ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ тСксту. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ использованию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅. Код Π½Π° Π‘ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции, ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΊ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅. Иногда Π‘ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ассСмблСром» ΠΈΠ»ΠΈ «Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€ΠΎΠΌ высокого уровня», Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ языков ассСмблСра для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ Π΅Π΄ΠΈΠ½ΡΡ‚Π²ΠΎ стандарта Π‘ΠΈ, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилирован Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ практичСски Π½Π° Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π‘ΠΈ Ρ‡Π°ΡΡ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языком срСднСго уровня ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, учитывая Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ устройствам.

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

Π‘ΠΈ (ΠΊΠ°ΠΊ ΠΈ ΠžΠ‘ UNIX, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π±Ρ‹Π» связан) создавался программистами ΠΈ Π΄Π»Ρ программистов, ΠΊΡ€ΡƒΠ³ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π» Π±Ρ‹ Π½Π΅Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠΈΡ€Π΅ ΠΊΡ€ΡƒΠ³Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² языка. НСсмотря Π½Π° ΡΡ‚ΠΎ, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ использования языка Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡˆΠΈΡ€Π΅ Π·Π°Π΄Π°Ρ‡ систСмного программирования.

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

Π‘ ΡΡ‚ΠΎΠΉ стороны Π‘ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ особСнности:

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

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π‘ΠΈ:

  • * автоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ;
  • * ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ΠΏΡ€ΠΈ этом ΠΏΠ΅Ρ€Π²Ρ‹Π΅ вСрсии C++ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈ);
  • * Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ компиляторы языка Π‘ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ компилятор GNU);
  • * ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²;
  • * встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° многозадачности ΠΈ ΡΠ΅Ρ‚ΠΈ
  • * Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка
  • * ΠΊΠ°Ρ€Ρ€ΠΈΠ½Π³.

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

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки программирования ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования (ОО-язык) — язык, построСнный Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Π’ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π»Π΅ΠΆΠΈΡ‚ понятиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° — Π½Π΅ΠΊΠΎΠ΅ΠΉ субстанции, которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² ΡΠ΅Π±Π΅ поля (Π΄Π°Π½Π½Ρ‹Π΅) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (выполняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ дСйствия).

НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ поля «ΠΈΠΌΡ», «Ρ„амилия» ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ «Π΅ΡΡ‚ΡŒ» ΠΈ «ΡΠΏΠ°Ρ‚ΡŒ» .БоотвСтствСнно, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π§Π΅Π»ΠΎΠ²Π΅ΠΊ. Имя: ="Иван" ΠΈ Π§Π΅Π»ΠΎΠ²Π΅ΠΊ. Π•ΡΡ‚ΡŒ (ΠΏΠΈΡ‰Π°).

C++.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования, Π½ΠΎ, Π² ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ с Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠΌ — языком Π‘ΠΈ, — наибольшСС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ программирования. [1].

Π’ 1990;Ρ… Π³ΠΎΠ΄Π°Ρ… язык стал ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСмых языков программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.

Π―Π·Ρ‹ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊ Π² Π½Π°Ρ‡Π°Π»Π΅ 1980;Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° сотрудник Ρ„ΠΈΡ€ΠΌΡ‹ Bell Laboratories Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ·Ρ‹ΠΊΡƒ Π‘ΠΈ ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стандартизации язык развивался Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ силами Бтрауструпа Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€ΠΎΡΡ‹ программистского сообщСства. Π’ 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» Ρ€Π°Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ стандарт языка Π‘ΠΈ++: ISO/IEC 14 882:1998 «Standard for the C++ Programming Language»; послС принятия тСхничСских исправлСний ΠΊ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρƒ Π² 2003 Π³ΠΎΠ΄Ρƒ — Π½Ρ‹Π½Π΅ΡˆΠ½ΡΡ вСрсия этого стандарта — ISO/IEC 14 882:2003. Π Π°Π½Π½ΠΈΠ΅ вСрсии языка, извСстныС ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ «C Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ», Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ с 1980 Π³ΠΎΠ΄Π°. ИдСя создания Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‚ ΠΎΠΏΡ‹Ρ‚Π° программирования Бтрауструпа для диссСртации. Он ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ язык модСлирования Π‘ΠΈΠΌΡƒΠ»Π° (Simula) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя язык BCPL достаточно быстр, Π½ΠΎ ΡΠ»ΠΈΡˆΠΊΠΎΠΌ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡΠ·Ρ‹ΠΊΠ°ΠΌ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Бтрауструп Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Bell Labs Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ примСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ языков модСлирования оказались нСэффСктивными. Вспоминая ΠΎΠΏΡ‹Ρ‚ своСй диссСртации, Бтрауструп Ρ€Π΅ΡˆΠΈΠ» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ язык Π‘ΠΈ (ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ BCPL) возмоТностями, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π² ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈΠΌΡƒΠ»Π°. Π―Π·Ρ‹ΠΊ Π‘ΠΈ, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком систСмы UNIX, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Bell, являСтся быстрым, ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹ΠΌ. Бтрауструп Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ Π½Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, практичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ модСлирования оказались доступными для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (благодаря использованию Π‘ΠΈΠΌΡƒΠ»Π°-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… классов) Ρ‚Π°ΠΊ ΠΈ Ρ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вычислСний (благодаря Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Π‘ΠΈ). Π’ Π½Π°Ρ‡Π°Π»Π΅ Π² Π‘ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ классы (с ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΠ΅ΠΉ), ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы, строгая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ², inline-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Разрабатывая Π‘ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ (ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π‘ΠΈ++), Бтрауструп Ρ‚Π°ΠΊΠΆΠ΅ написал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ cfront — транслятор, ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ Π‘ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ простого Π‘ΠΈ. Новый язык, Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ для Π°Π²Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈΠΎΠ±Ρ€Ρ‘Π» Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ срСди ΠΊΠΎΠ»Π»Π΅Π³ ΠΈ Π²ΡΠΊΠΎΡ€Π΅ Бтрауструп ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³ Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, отвСчая Π½Π° Ρ‚ысячи вопросов. Π’ 1983 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ языка ΠΈΠ· Π‘ΠΈ с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π² Π‘ΠΈ++. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ссылки, константы, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ свободной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (//). Π•Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ коммСрчСский выпуск состоялся Π² ΠΎΠΊΡ‚ябрС1985 Π³ΠΎΠ΄Π°. Π’ 1985 Π³ΠΎΠ΄Ρƒ Π²Ρ‹ΡˆΠ»ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ «Π―Π·Ρ‹ΠΊΠ° программирования Π‘ΠΈ++», ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ описаниС этого языка, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° отсутствия ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ стандарта. Π’ 1989 Π³ΠΎΠ΄Ρƒ состоялся Π²Ρ‹Ρ…ΠΎΠ΄ Π‘ΠΈ++ вСрсии 2.0. Π•Π³ΠΎ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ мноТСствСнноС наслСдованиС, абстрактныС классы, статичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-константы ΠΈ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹.

Π’1990 Π³ΠΎΠ΄Ρƒ Π²Ρ‹ΡˆΠ»ΠΎ «ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ справочноС руководство ΠΏΠΎ C++», ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ впослСдствии Π² ΠΎΡΠ½ΠΎΠ²Ρƒ стандарта. ПослСдниС обновлСния Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, пространства ΠΈΠΌΡ‘Π½, Π½ΠΎΠ²Ρ‹Π΅ способы привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π±ΡƒΠ»Π΅Π²ΡΠΊΠΈΠΉ Ρ‚ΠΈΠΏ.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘ΠΈ++ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ вмСстС с Π½ΠΈΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π‘ΠΈ++ стали ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ срСдства для Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘ΠΈ printf ΠΈ scanf. ПозднСС самым Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стало Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Π½Π΅Ρ‘ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ шаблонов.

ПослС ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ совмСстный ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ANSI-ISO стандартизировал Π‘ΠΈ++ Π² 1998 Π³ΠΎΠ΄Ρƒ (ISO/IEC 14 882:1998 — Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ++). Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚ послС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° стандарта ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ выпустил ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ стандарта Π‘ΠΈ++ Π² 2003 Π³ΠΎΠ΄Ρƒ. Π’ Π½Π°ΡΡ‚оящСС врСмя рабочая Π³Ρ€ΡƒΠΏΠΏΠ° МОБ (ISO) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ вСрсиСй стандарта ΠΏΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌC++09 (Ρ€Π°Π½Π΅Π΅ извСстный ΠΊΠ°ΠΊ C++0X), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΉΡ‚ΠΈ Π² 2009 Π³ΠΎΠ΄Ρƒ.

Никто Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° ΡΠ·Ρ‹ΠΊ Π‘ΠΈ++, ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся свободным. Однако сам Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ стандарта языка (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΎΠ²) Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ΅Π½ бСсплатно. НазваниС «Π‘ΠΈ++» Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ΠΎ Π ΠΈΠΊΠΎΠΌ ΠœΠ°ΡΡΠΈΡ‚Ρ‚ΠΈ (Rick Mascitti) ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π»ΠΎ использовано Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅1983 Π³ΠΎΠ΄Π°. Π Π°Π½Π΅Π΅, Π½Π° ΡΡ‚Π°ΠΏΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎΠ²Ρ‹ΠΉ язык назывался «Π‘ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ» .

Имя, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ Π² ΠΈΡ‚ΠΎΠ³Π΅, происходит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π‘ΠΈ «++» (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ). Имя «C+» Π½Π΅ Π±Ρ‹Π»ΠΎ использовано ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ являСтся синтаксичСской ошибкой Π² Π‘ΠΈ ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, это имя Π±Ρ‹Π»ΠΎ занято Π΄Ρ€ΡƒΠ³ΠΈΠΌ языком. Π―Π·Ρ‹ΠΊ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π½Π°Π·Π²Π°Π½ «D», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ «ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Π‘ΠΈ ΠΈ Π½Π΅ пытаСтся ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡƒΡ‚Ρ‘ΠΌ удалСния элСмСнтов Π‘ΠΈ». Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π‘ΠΈ++ Π½Π° 1998 Π³ΠΎΠ΄ состоит ΠΈΠ· Π΄Π²ΡƒΡ… основных частСй: ядра языка ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘ΠΈ++ Π²ΠΎΠ±Ρ€Π°Π»Π° Π² ΡΠ΅Π±Ρ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π²ΡˆΡƒΡŽΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ шаблоновSTL. БСйчас Π½Π°Π·Π²Π°Π½ΠΈΠ΅ STL ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ ΡƒΠΏΠΎΡ‚рСбляСтся, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΡ€ΡƒΠ³Π°Ρ… программистов Π½Π° Π‘ΠΈ++ это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния части стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, содСрТащСй опрСдСлСния шаблонов ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΎΠ². Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π‘ΠΈ++ содСрТит Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ссылку Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π‘ΠΈ ΠΎΡ‚ 1990 Π³ΠΎΠ΄Π° ΠΈ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΈΠΌΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘ΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π‘ΠΈ++, Π½Π΅ Π²Ρ…одящих Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘ΠΈ++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘ΠΈ.

Бтандартизация ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π° язык программирования Π‘ΠΈ++, ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π° ΡΡ‚ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Π΅, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅, достандартныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ языка. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ врСмя язык развивался Π²Π½Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°ΠΌΠΎΠΊ, спонтанно, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΡΡ‚Π°Π²ΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π·Π°Π΄Π°Ρ‡. Π Π°Π·Π²ΠΈΡ‚ΠΈΡŽ языка сопутствовало Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ кросс-компилятора cfront. ΠΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° Π² ΡΠ·Ρ‹ΠΊΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии кросс-компилятора. Π­Ρ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсий кросс-компилятора Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ»ΠΈΡΡŒ ΠΈ Π½Π° ΡΠ°ΠΌ язык, Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π½Π°ΡΡ‚оящСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π΅Ρ‡ΡŒ ΠΎ Π²Π΅Ρ€ΡΠΈΡΡ… языка Π‘ΠΈ++ Π½Π΅ Π²Π΅Π΄ΡƒΡ‚.

Java.

Java — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Java ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, поэтому ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Java-машинС (JVM) нСзависимо ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π”Π°Ρ‚Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ выпуска — 23 ΠΌΠ°Ρ 1995 Π³ΠΎΠ΄Π°.

Java — Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам язык, Π½ΠΎ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для создания ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка.

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

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

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

Часто ΠΊ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠ°ΠΌ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ относят Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ исполнСниС Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Java. Π”Π°Π½Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ справСдливо для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсий Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя ΠΎΠ½ΠΎ практичСски потСряло Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π­Ρ‚ΠΎΠΌΡƒ способствовал ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ:

  • * ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ трансляции Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ нСпосрСдствСнно Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (JIT-тСхнология) с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ сохранСния вСрсий класса Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅,
  • * ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ использованиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (native-ΠΊΠΎΠ΄) Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…,
  • * Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΡΠΊΠΎΡ€Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСхнология Jazelle, поддСрТиваСмая Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ процСссорами Ρ„ΠΈΡ€ΠΌΡ‹ ARM).

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

Ruby — динамичСский, Ρ€Π΅Ρ„Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ высокоуровнСвый язык программирования для быстрого ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π―Π·Ρ‹ΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ нСзависимой ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ многопоточности, строгой динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, сборщиком мусора ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ возмоТностями. По ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ям синтаксиса ΠΎΠ½ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡΠ·Ρ‹ΠΊΠ°ΠΌ Perl ΠΈ Eiffel, ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ — ΠΊ Smalltalk. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ языка взяты ΠΈΠ· Python, Lisp, Dylan ΠΈ ΠšΠ»Ρƒ.

ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Π°Ρ рСализация ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° языка являСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободной.

Ruby — ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык. Π’ Π½Ρ‘ΠΌ всС Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π³Π΄Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹.

КаТдая функция — ΠΌΠ΅Ρ‚ΠΎΠ΄.

Ruby ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎ ΡΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡŽ (call-by-sharing), хотя Π² ΡΠΎΠΎΠ±Ρ‰Π΅ΡΡ‚Π²Π΅ Ruby часто говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅. Для программиста, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠ΅Π³ΠΎ ΠΊ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½Ρ‹ΠΌ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΌ языкам программирования, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ эффСкты Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌΠΈ.

НапримСр:

a = «abcdefg» .

b = a.

b #=> «abcdefg» .

a[4] = 'R'.

b #=> «abcRefg» .

Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a, нСявно измСнилось ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ содСрТат ссылку Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ присваивания дСйствуСт ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΡΠ·Ρ‹ΠΊΠΎΠ² Ρ‚ΠΈΠΏΠ° C, Object Pascal, Π³Π΄Π΅ присваиваниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ значСния, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ссылки Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Ruby Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС, Π½ΠΎ Π²ΠΌΠ΅ΡΡ‚ΠΎ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ примСсСй.

ВозмоТности Ruby.

  • — Π˜ΠΌΠ΅Π΅Ρ‚ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ синтаксис, частично Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ влияниСм Ада, Eiffel ΠΈ Python.
  • — ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΡΡ‚ΠΈΠ»Π΅ Java ΠΈ Python.
  • — ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.
  • — ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования. ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ruby ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Smalltalk. ЕдинствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ — ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Ruby, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Smalltalk, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. НапримСр, число «1» — это экзСмпляр класса Fixnum. Π’Π°ΠΊΠΆΠ΅ поддСрТиваСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΠΊΠ»Π°ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ экзСмпляр Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • — ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС, Π½ΠΎ Π²ΠΌΠ΅ΡΡ‚ΠΎ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ концСпция «ΠΏΡ€ΠΈΠΌΠ΅ΡΠ΅ΠΉ», основанная Π² Π΄Π°Π½Π½ΠΎΠΌ языкС Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.
  • — Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ автоматичСский сборщик мусора. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ruby, Π² Ρ‚ΠΎΠΌ числС для Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • — Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для Ruby Π½Π° Π‘ΠΈ ΠΎΡ‡Π΅Π½ΡŒ просто частично ΠΈΠ·-Π·Π° сборщика мусора, частично ΠΈΠ·-Π·Π° нСслоТного ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ API.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ замыкания с ΠΏΠΎΠ»Π½ΠΎΠΉ привязкой ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ