Π Π°Π·Π½ΠΎΠ΅

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ языки программирования: Π―Π·Ρ‹ΠΊΠΈ программирования Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ БСйсик Π‘ΠΈ Паскаль

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

Π―Π·Ρ‹ΠΊΠΈ программирования Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ БСйсик Π‘ΠΈ Паскаль

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” тСорСтичСская ΠΈ практичСская Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, связанная с созданиСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ называСтся трансляциСй.

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»Π΅Π½ΠΈΠ΅ трансляции силами Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° β€” Π·Π°Π΄Π°Ρ‡Π° ΠΎΡ‡Π΅Π½ΡŒ слоТная Π² силу большого объСма Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ слоТности систСмы ΠΊΠΎΠΌΠ°Π½Π΄ соврСмСнных Π­Π’Πœ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² цСлях облСгчСния Π·Π°Π΄Π°Ρ‡ΠΈ трансляции появились ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ способы задания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ языков программирования.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ появились ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, пСрСводящиС символичСскиС ΠΈΠΌΠ΅Π½Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹. Π—Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π»ΠΈ созданы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ арифмСтичСскиС выраТСния ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² 1958 Π³ΠΎΠ΄Ρƒ появился транслятор Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° β€” ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ языка программирования. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π±Ρ‹Π»ΠΎ создано мноТСство языков программирования.

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

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

Π―Π·Ρ‹ΠΊΠΈ программирования, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ понятиями матСматичСской ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΠΈΠ»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈΠΌΠΈ ΠΊ Π½ΠΈΠΌ) Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ языками высокого уровня. Π―Π·Ρ‹ΠΊΠ°ΠΌΠΈ высокого уровня ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ Паскаль, C++, БСйсик, Java ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π―Π·Ρ‹ΠΊΠΈ высокого уровня ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для написания слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΠ½ΠΈ Π½Π΅ привязаны ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π­Π’Πœ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³Ρ‡Π΅ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ рассчитаны Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΊΡ€ΡƒΠ³ Π·Π°Π΄Π°Ρ‡.

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

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ряд ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй;

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° машинном языкС, получСнная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора, исполняСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Π½ΠΎ Π΅Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅. Π’ соврСмСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ всС Ρ‡Π°Ρ‰Π΅ примСняСтся ΠΏΡ€ΠΈΠ΅ΠΌ псСвдо компиляции, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° компилируСтся Π² Π½Π΅ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ псСвдокод, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ исполняСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ срСдой исполнСния. К Ρ‚Π°ΠΊΠΈΠΌ языкам относятся Java, Visual Bask, языки сСмСйства .NET.

Π€ΠΎΡ€Ρ‚Ρ€Π°Π½

Π―Π·Ρ‹ΠΊ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ„ΠΈΡ€ΠΌΠΎΠΉ IBM. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΎΡ€ Π”ΠΆ. Букс ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ° амСриканских спСциалистов Π² области программирования Π² 1954 Π³ΠΎΠ΄Ρƒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ сообщСниС ΠΎ языкС. Дословно Π½Π°Π·Π²Π°Π½ΠΈΠ΅ языка FORmula TRANslator β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ».

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

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

БСйсик

БСйсик являСтся сокращСниСм ΠΎΡ‚ Β«Beginner’s All-purpose Symbolic Instruction CodeΒ» (BASIC)Β β€” ΠœΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²ΠΎΠΉ БимволичСский ΠžΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ Код для ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

БСйсик Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³Ρ‡Π΅ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки, с Π½ΠΈΠΌ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½Π΅ΠΌ ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования высокого уровня. Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя БСйсик Π±Ρ‹Π» встроСн Π² ΠŸΠ—Π£ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

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

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ БСйсик ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСализовался ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Однако сСйчас сущСствуСт мноТСство Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ БСйсика, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ компиляции ΠΈ псСвдо компиляции.

ВСрсия БСйсика ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft β€” Visual BasicΒ β€” являСтся самым распространСнным срСдством программирования Π² ΠΌΠΈΡ€Π΅. Π•Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ 20 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² программистов.

Π‘ΠΈ

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

Π―Π·Ρ‹ΠΊ Π‘ΠΈ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π²ΡˆΠΈΠΉΡΡ для написания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX Π½Π° Π­Π’Πœ DEC PDP-11, Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° этой систСмС ДСннисом Π ΠΈΡ‡ΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма, компилятор с языка Π‘ΠΈ ΠΈ всС ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ систСмы UNIX написаны Π½Π° Π‘ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСмного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния соврСмСнных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² разрабатываСтся Π½Π° Π‘ΠΈ ΠΈ Π΅Π³ΠΎ разновидности Π‘ΠΈ++.

Паскаль

Π―Π·Ρ‹ΠΊ Паскаль Π±Ρ‹Π» создан Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅ 60-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΈ Π½Π°Π·Π²Π°Π½ Π² Ρ‡Π΅ΡΡ‚ΡŒ французского ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π‘Π»Π΅Π·Π° Паскаля. Паскаль ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками программирования ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ синтаксис. Однако Паскаль Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ алгоритмичСскому ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌΡƒ языку. Π­Ρ‚ΠΎΡ‚ язык ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ структурного программирования.

РСализация Паскаля ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Object Pascal ΠΈ срСда программирования Delphi ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных систСм программирования Π² ΠΌΠΈΡ€Π΅.

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ Π½Π° Ρ‚Π΅ΠΌΡƒ «Π―Π·Ρ‹ΠΊΠΈ программирования»

ГосударствСнноС Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Ρ‰Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅

Ростовской области

«Волгодонский пСдагогичСский ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΒ»

(Π“Π‘ΠŸΠžΠ£ РО Β«Π’ΠŸΠšΒ»)

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

По дисциплинС: Β«Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ИКВ»

Π½Π° Ρ‚Π΅ΠΌΡƒ: Β«Π―Π·Ρ‹ΠΊΠΈ программирования»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°:

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ΠΊΠ° Π³Ρ€ΡƒΠΏΠΏΡ‹ ПНК-2

ЧСлюк Анастасия Π’Π°Π»Π΅Ρ€ΡŒΠ΅Π²Π½Π°

ΠŸΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ:

ΠœΠ°ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠΎΠ²Π° Инна Ивановна

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

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

Π―Π·Ρ‹ΠΊ программирования — это систСма ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, слуТащая для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Π­Π’Πœ. Π―Π·Ρ‹ΠΊΠΈ программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ искусствСнными языками. ΠžΡ‚ СстСствСнных языков ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ числом β€œΡΠ»ΠΎΠ²β€ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ строгими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ записи ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ… ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ свободного толкования Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ для СстСствСнного языка.

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ трСбования, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΊ языкам программирования:

  • Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ — использованиС Π² языкС ΠΏΠΎ возмоТности ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… символов, Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстных ΠΈ понятных ΠΊΠ°ΠΊ программистам, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π­Π’Πœ;

  • Сдинство — использованиС ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ символов для обозначСния ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΈΠ»ΠΈ родствСнных понятий Π² Ρ€Π°Π·Π½Ρ‹Ρ… частях Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ этих символов Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎ возмоТности ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ;

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

  • ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ описания слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² Π²ΠΈΠ΄Π΅ совокупности простых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ составлСны ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…;

  • ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ — Π½Π΅Π΄Π²ΡƒΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ записи любого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π΅Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ привСсти ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ .

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

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

По этому ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ языков программирования:

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

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

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

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

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

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

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

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ основныС прСимущСства языков высокого уровня ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ:

  • Π°Π»Ρ„Π°Π²ΠΈΡ‚ языка высокого уровня Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡˆΠΈΡ€Π΅ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° машинного языка, Ρ‡Ρ‚ΠΎ сущСствСнно ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

  • Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, допустимых для использования, Π½Π΅ зависит ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° выбираСтся ΠΈΠ· сообраТСний удобства формулирования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса;

  • Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ достаточно Π³ΠΈΠ±ΠΎΠΊ ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ для использования, Ρ‡Ρ‚ΠΎ позволяСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСдлоТСния Π·Π°Π΄Π°Ρ‚ΡŒ достаточно ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;

  • Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ общСпринятых матСматичСских ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

  • Π΄Π°Π½Π½Ρ‹ΠΌ Π² языках высокого уровня ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Π΅ программистом;

  • Π² языкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдусмотрСн Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ алгоритмичСского языка:

  • Π°Π»Ρ„Π°Π²ΠΈΡ‚,

  • синтаксис,

  • сСмантика.

Алфавит β€” это фиксированный для Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка Π½Π°Π±ΠΎΡ€ основных символов, Ρ‚.Π΅. «Π±ΡƒΠΊΠ² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°», ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ любой тСкст Π½Π° этом языкС β€” Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы Π² тСкстС Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.

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

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

Π―Π·Ρ‹ΠΊΠΈ высокого уровня дСлятся Π½Π°:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ языки ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ описания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². ΠŸΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ языки Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ явно Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

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

Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ классов Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° сСгодняшний дСнь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ нСсколько сотСн алгоритмичСских языков. ΠŸΡ€Π°Π²Π΄Π°, ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС ΠΈ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ лишь 10-15 языков. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ: Fortran ΠΈ Algol — языки, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π°ΡƒΡ‡Π½ΠΎ-тСхничСских Π·Π°Π΄Π°Ρ‡, Cobol – для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ экономичСских Π·Π°Π΄Π°Ρ‡, Basic – для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих языков ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π½Π΅ своСго класса. Однако, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ оказываСтся Π½Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π² сСрСдинС 60-Ρ… Π³ΠΎΠ΄ΠΎΠ² Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ алгоритмичСскиС языки ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ – ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ языки. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ ΡΡ‚Ρ€ΠΎΠΈΠ»ΠΈΡΡŒ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ объСдинСния возмоТностСй ΡƒΠ·ΠΊΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстны PL/1, Pascal, C, C+ , Modula, Ada. Однако, ΠΊΠ°ΠΊ любоС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ срСдство, Ρ‚Π°ΠΊΠΈΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… случаях ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Π½Π΅Π΅ эффСктивными .

ЛогичСскиС языки- (Prolog, Lisp, Mercury, KLO ΠΈ Π΄Ρ€.) ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ Π½Π° запись Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π½Π° систСматичСскоС ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ описаниС Π·Π°Π΄Π°Ρ‡ΠΈ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ слСдовало ΠΈΠ· составлСнного описания. Π’ этих языках указываСтся Ρ‡Ρ‚ΠΎ Π΄Π°Π½ΠΎ ΠΈ Ρ‡Ρ‚ΠΎ трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. ΠŸΡ€ΠΈ этом поиск Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ возлагаСтся нСпосрСдствСнно Π½Π° Π­Π’Πœ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки (Object Pascal, C++, Java, Objective Caml. ΠΈ Π΄Ρ€.). Руководящая идСя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² стрСмлСнии ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ понятия:

  • ΠΎΠ±ΡŠΠ΅ΠΊΡ‚;

  • свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°;

  • ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

  • событиС;

  • класс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ β€” ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ свойств (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сущностСй ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств).

Бвойство β€” это характСристика ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ свойствами, ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ (ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠœΠ΅Ρ‚ΠΎΠ΄ β€” это Π½Π°Π±ΠΎΡ€ дСйствий Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ Π΅Π³ΠΎ свойствами.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ β€” это характСристика измСнСния состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Класс β€” это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒΡŽ примСняСмых ΠΊ Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ свойств.

Π‘Ρ€Π΅Π΄ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… языков программирования Π² настоящСС врСмя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСны:

2.1 Π‘ΠΈ ΠΈ Π΅Π³ΠΎ разновидности.

  • Π‘ΠΈ [C] — ΠœΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²ΠΎΠΉ язык программирования высокого уровня, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ДСнисом Π ΠΈΡ‚Ρ‡ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π³Π³. Π½Π° Π±Π°Π·Π΅ языка BCPL. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° ΠΌΠΈΠ½ΠΈΠ­Π’Πœ ΠΈ ΠŸΠ­Π’Πœ. ЯвляСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix, ΠΎΠ΄Π½Π°ΠΊΠΎ примСняСтся ΠΈ Π²Π½Π΅ этой систСмы, для написания Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈ эффСктивных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы. Для IBM PC имССтся ряд популярных вСрсий языка Π‘ΠΈ, Π² Ρ‚ΠΎΠΌ числС — Turbo C (Ρ„ΠΈΡ€ΠΌΡ‹ Borland), Microsoft C ΠΈ Quick C (Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft ), Π° Ρ‚Π°ΠΊΠΆΠ΅ Zortech C (Ρ„ΠΈΡ€ΠΌΡ‹ Symantec). МногиС ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… вСрсий ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π‘ΠΈ ΠΈ Π‘ΠΈ++.

  • Π‘ΠΈ++ [C++] — Π―Π·Ρ‹ΠΊ программирования высокого уровня, созданный Π‘ΡŒΡΡ€Π½ΠΎΠΌ Бтраустрапом Π½Π° Π±Π°Π·Π΅ языка Π‘ΠΈ. ЯвляСтся Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ вСрсиСй, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Для IBM PC Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярной являСтся систСма Turbo C++ Ρ„ΠΈΡ€ΠΌΡ‹ Borland (БША).

  • C# (C Sharp) – β€œ Π‘ΠΈ Π¨Π°Ρ€ΠΏ ”: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² 2000 Π³. объявила Ρ„ΠΈΡ€ΠΌΠ° Microsoft . По своСму Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Ρƒ ΠΎΠ½ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ языки C++ ΠΈ Java ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… языки C ΠΈ Π‘++ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-прилоТСния. УказываСтся, Ρ‡Ρ‚ΠΎ C # Π±ΡƒΠ΄Π΅Ρ‚ тСсно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ с языком XML.

2.2 Паскаль

Паскаль [PASCAL — Π°ΠΊΡ€ΠΎΠ½ΠΈΠΌ с французского — Program Applique a la Selection et la Compilation Automatique de la Litterature] — ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования высокого уровня, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ 1960-Ρ… Π³Π³. Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² унивСрситСтах. Назван Π² Ρ‡Π΅ΡΡ‚ΡŒ французского ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° XVII Π²Π΅ΠΊΠ° Π‘Π»Π΅Π·Π° Паскаля.

Π’ своСй Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии Паскаль ΠΈΠΌΠ΅Π» довольно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ возмоТности, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСдназначался для ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² Ρ‚ΠΎΠΌ числС для написания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. БущСствуСт ряд вСрсий языка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ETH Pascal, USD Pascal, Turbo Pascal ) ΠΈ систСм программирования Π½Π° этом языкС для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π­Π’Πœ. Для IBM PC Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярной являСтся систСма Turbo Pascal Ρ„ΠΈΡ€ΠΌΡ‹ Borland (БША).

Delphi являСтся «наслСдником» языка Паскаль; основныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² этих языках ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹. Но Delphi ΠΈΠΌΠ΅Π΅Ρ‚ срСдство для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ графичСскими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ (создания Ρ„ΠΎΡ€ΠΌ, ΠΊΠ½ΠΎΠΏΠΎΠΊ, мСню), Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ популярСн ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Windows- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ [1].

2.3 Π€ΠΎΡ€Ρ‚Ρ€Π°Π½.

Π’ 1954 Π³ΠΎΠ΄Ρƒ Π² Π½Π΅Π΄Ρ€Π°Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ IBM Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²ΠΎ Π³Π»Π°Π²Π΅ с Π”ΠΆΠΎΠ½ΠΎΠΌ Бэкусом (John Backus) Π±Ρ‹Π» создан язык программирования Fortran.

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

Π’ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конструкция описываСт β€œΡ†ΠΈΠΊΠ» for Π΄ΠΎ ΠΌΠ΅Ρ‚ΠΊΠΈ 10 ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ индСкса ΠΎΡ‚ 1 Π΄ΠΎ 100”: DO 10 I=1,100. Если ΠΆΠ΅ здСсь Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ, Ρ‚ΠΎ получится ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания: DO10I = 1. 100 Говорят, Ρ‡Ρ‚ΠΎ такая ошибка заставила Ρ€Π°ΠΊΠ΅Ρ‚Ρƒ Π²Π·ΠΎΡ€Π²Π°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя старта.

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

ПоявлСниС Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π±Ρ‹Π»ΠΎ встрСчСно Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ яростной ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠΉ, Ρ‡Π΅ΠΌ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ассСмблСра. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΠΎΠ² ΠΏΡƒΠ³Π°Π»ΠΎ сниТСниС эффСктивности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π° счСт использования ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ компилятора. И эти опасСния ΠΈΠΌΠ΅Π»ΠΈ ΠΏΠΎΠ΄ собой основания: Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ программист, скорСС всСго, ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ нСбольшой Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ быстрСС, Ρ‡Π΅ΠΌ ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции. Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΏΡ€ΠΈΡˆΠ»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ рСализация Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· примСнСния языков высокого уровня. ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… машин росла, ΠΈ с Ρ‚Π΅ΠΌ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ эффСктивности, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΡΡ‡ΠΈΡ‚Π°Π»ΠΎΡΡŒ ΡƒΠ³Ρ€ΠΎΠΆΠ°ΡŽΡ‰ΠΈΠΌ, стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΡΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΆΠ΅ языков высокого уровня стали Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ созданию Π½ΠΎΠ²Ρ‹Ρ… языков, всС Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… [1].

2.4 БСйсик.

БСйсик [BASIC — Beginner’s All-purpose Symbolic Instruction Code] — Π―Π·Ρ‹ΠΊ программирования высокого уровня , Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² 1963 — 1964 Π³Π³. Π² Дартмутском ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅ Вомасом ΠšΡƒΡ€Ρ‚ΠΎΠΌ ΠΈ Π”ΠΆΠΎΠ½ΠΎΠΌ КСмСни.

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

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ вСрсий БСйсика ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ трансляции. НСкоторыС Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ вСрсии БСйсика ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этой Ρ†Π΅Π»ΠΈ трансляторы. На IBM PC ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Quick Basic Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft, Turbo Basic Ρ„ΠΈΡ€ΠΌΡ‹ Borland ΠΈ Power Basic (ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Π°Ρ вСрсия Turbo Basic, распространяСмая Ρ„ΠΈΡ€ΠΌΠΎΠΉ Spectra Publishing ). Π’ Π½Π°Ρ‡Π°Π»Π΅ 1999 Π³. Ρ„ΠΈΡ€ΠΌΠ° Microsoft выпустила Π²Π΅Ρ€ΡΠΈΡŽ языка Visual Basic 6.0 (VB 6.0), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для создания ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для систСм уровня прСдприятий .

НапримСр, язык Lisp ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания экспСртных систСм. Π―Π·Ρ‹ΠΊ Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСтСвых (Web)- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ нСсколько этапов.

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

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

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя:

  • тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ – для Π½Π°Π±ΠΎΡ€Π° тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

  • компилятор (ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€) — для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

  • ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ — для объСдинСния ΠΏΡ€ΠΈ нСобходимости Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€œΠ·Π°ΠΏΡƒΡΠΊΠ°Ρ‚Π΅Π»ΡŒ программ”, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ выходя ΠΈΠ· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

  • ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ особСнности ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка.

Для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ языка ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НапримСр, для языка Π‘ Π΅ΡΡ‚ΡŒ срСда Turbo C ΠΈ Borland C .

2.5 Java.

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

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

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

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

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

  • ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ использованиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (native-ΠΊΠΎΠ΄) Π² стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…,

  • Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΡΠΊΠΎΡ€Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСхнология Jazelle, поддСрТиваСмая Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ процСссорами Ρ„ΠΈΡ€ΠΌΡ‹ ARM).

По Π΄Π°Π½Π½Ρ‹ΠΌ сайта shootout.alioth.debian.org, для сСми Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ врСмя выполнСния Π½Π° Java составляСт Π² срСднСм Π² ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π°-Π΄Π²Π° Ρ€Π°Π·Π° большС, Ρ‡Π΅ΠΌ для C/C++, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Java быстрСС, Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях Π² 7 Ρ€Π°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Java-машиной Π±Ρ‹Π»ΠΎ Π² 10-30 Ρ€Π°Π· большС, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° C/C++. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ исслСдованиС, ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ отмСчаСтся сущСствСнно Π±ΠΎΠ»Π΅Π΅ низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ бо́льшСС ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Π² тСстовых ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½Π° Java Π² сравнСнии с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° C++.

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

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Java

  • Java SE β€” Java Standard Edition, основноС ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Java, содСрТит компиляторы, API, Java Runtime Environment; ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ β€” для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… систСм.

  • Java EE β€” Java Enterprise Edition, прСдставляСт собой Π½Π°Π±ΠΎΡ€ спСцификаций для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния уровня прСдприятия.

  • Java ME β€” Java Micro Edition, создана для использования Π² устройствах, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, КПК, встроСнных систСмах;

  • JavaFX β€” тСхнология, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π² ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Java ΠΊΠ°ΠΊ Rich Client Platform; ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для создания графичСских интСрфСйсов ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ бизнСса.

  • Java Card β€” тСхнология прСдоставляСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ срСду для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° смарт-ΠΊΠ°Ρ€Ρ‚Π°Ρ… ΠΈ ​​других устройствах с ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом памяти ΠΈ возмоТностями ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ с ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Java (J2EE) Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ: RuneScape, Amazon, eBay, Yandex (нСоднозначная информация Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Java), LinkedIn, Yahoo!.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π² основном Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° Java (J2EE) тСхнологиях: SAP, IBM, Oracle. Π’ частности, Π‘Π£Π‘Π” Oracle Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ JVM ΠΊΠ°ΠΊ свою ΡΠΎΡΡ‚Π°Π²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ нСпосрСдствСнного программирования Π‘Π£Π‘Π” Π½Π° языкС Java, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° Java, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Π΅ΠΌ написанныС Π½Π° языкС Π‘ΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° языкС Java, Π±Ρ‹Π»Π° сущСствСнно ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° с выпуском Π² 1997β€”1998 Π³ΠΎΠ΄Π°Ρ… Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ JIT-компилятора Π² вСрсии 1.1 Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ особСнностям языка для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ классы, класс StringBuffer, ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ логичСскиС вычислСния ΠΈ Ρ‚. Π΄.). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° оптимизация Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java β€” с 2000 Π³ΠΎΠ΄Π° для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина HotSpot. Π’ настоящСС врСмя[ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ], ΠΊΠΎΠ΄ Java 2.0 ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ лишь Π² 2 Ρ€Π°Π·Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΊΠΎΠ΄Π°, написанного Π½Π° языкС CΠΈ.

НСкоторыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ выполнСния для Java. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄ Java Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ обСспСчСнии вмСсто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ JVM, Π° Ρ‚Π°ΠΊΠΆΠ΅ основанныС Π½Π° ARM процСссоры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Java Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΡŽ Jazelle.

3.Π Π΅ΠΉΡ‚ΠΈΠ½Π³ языков программирования Π·Π° 2016-2017 Π³Π³.

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

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

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

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°:

  1. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°/ΠšΡƒΡ€Π½ΠΎΡΠΎΠ² А.П., ΠšΡƒΠ»Π΅Π² Π‘.А., УлСзько А.Π’. ΠΈ Π΄Ρ€.; Под Ρ€Π΅Π΄. А.П. ΠšΡƒΡ€Π½ΠΎΡΠΎΠ²Π°.-М.: КолосБ, 2005.-272 с

  2. ΠœΠ°Π»Ρ‹ΡˆΠ΅Π² Π .А. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСти: Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС/ РГАВА. – Рыбинск, 2005. – 83 с.

  3. Π‘Π΅ΠΌΠ°ΠΊΠΈΠ½ И.А., Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°: Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ курс /Π‘Π΅ΠΌΠ°ΠΊΠΈΠ½ И.А., Π—Π°Π»ΠΎΠ³ΠΎΠ²Π° Π›., Русаков Π‘. , ШСстакова Π›. – Москва: Π‘Π˜ΠΠžΠœ.,2005. – 105с.

Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурсы:

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

  2. http://www.bourabai.kz/alg/classification04.htm

  3. http://www.studfiles.ru/preview/5333895/

Π›ΡƒΡ‡ΡˆΠΈΠΉ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° Ρ‚Π΅ΠΌΡƒ «ΠœΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ языки программирования»

Β   БущСствуСт ΠΎΠΊΠΎΠ»ΠΎ 8 500 языков программирования , ΠΎΠ΄Π½Π°ΠΊΠΎ, нСсмотря Π½Π° Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅, число языков, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΈΡˆΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ, с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²Π°Π»ΠΈΠ²Π°Π΅Ρ‚ Π·Π° дСсяток. ΠŸΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ язык Π½Π΅ стал популярным, Π½ΠΈΡ‡ΡƒΡ‚ΡŒ Π½Π΅ мСньшС, Ρ‡Π΅ΠΌ самих языков. Π­Ρ‚ΠΎ ΠΈ распри ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΡ… создатСлями, ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, ΠΈ появлСниС Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈ просто откровСнная Β«ΠΊΡ€ΠΈΠ²ΠΈΠ·Π½Π°Β».Β 

Β  Β Π’ этом Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΌΡ‹ рассмотрим 12 языков программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ этой «нСлюбви».Β 

ALGOL 68 : ALGOrithmic Language 1968Β 

Β  Β Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π·Π²Π°Π½ΠΈΠ΅ «самой Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ успСха Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π°Π»Π° Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅Β» срСди языков программирования. ALGOL 68 — язык, созданный Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅ΠΌΡƒ ΡƒΠΆΠ΅ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ALGOL 60. Π­Ρ‚ΠΎ Π΄Π΅Ρ‚ΠΈΡ‰Π΅ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстного сообщСства Β«Π±ΡƒΠ½Ρ‚Π°Ρ€Π΅ΠΉΒ», Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² программистской срСдС сплСтни ΠΈ Π°Π³Ρ€Π΅ΡΡΠΈΡŽ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ сСбС. Π₯отя язык сам ΠΏΠΎ сСбС сСйчас практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΎΠ½ слуТит Π²Π΅Ρ‡Π½Ρ‹ΠΌ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π΅ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Β«ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Β». ALGOL 68 Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ языком (ΠΈ, Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒΡΡ, ΠΈ ΠΏΠΎ сСй дСнь остаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ…), ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ спСцификация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ появилась Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ рСализация. ΠŸΡ€Π°Π²Π΄Π°, спСцификация эта Π±Ρ‹Π»Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ принСсла ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ чСрСсчур Β«Π½Π°Π²ΠΎΡ€ΠΎΡ‡Π΅Π½Π½ΠΎΠ³ΠΎΒ».Β 

Π’ΠΎ, Ρ‡Ρ‚ΠΎ ALGOL 68 ΠΈ Π² самом Π΄Π΅Π»Π΅ Π±Ρ‹Π» слоТным, Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΈ содСрТал Π² сСбС мноТСство Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π΅Ρ€Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык. ИмСнно ΠΎΠ½ стал Β«ΠΈΠ΄Π΅ΠΉΠ½Ρ‹ΠΌ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΡ‚Π΅Π»Π΅ΠΌΒ» для создатСлСй Π‘ ΠΈ Bourne Shell. Благодаря ALGOL 68 ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΠ»Π°ΡΡŒ Π΄ΠΎ Ρ‚Π°ΠΊΠΎΠΉ стСпСни, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ соврСмСнныС языки Ρ‚ΠΈΠΏΠ° Java ΠΈ Π‘ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ Π΅Π³ΠΎ уровня. Β 

ALGOL 68 скоропостиТно скончался, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ успСв Ρ‚ΠΎΠ»ΠΊΠΎΠΌ ΠΏΠΎΠΆΠΈΡ‚ΡŒ. Благодаря нСвнятности спСцификации Ρ‡Π»Π΅Π½Π°ΠΌ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ стоило ΡƒΡ‚ΠΎΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ люди смогли Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ достоинства ΠΈ нСдостатки.Β 

brainfuckΒ 

Β   НС ΡƒΠ΄ΠΈΠ²Π»ΡΠΉΡ‚Π΅ΡΡŒ, это Π½Π΅ Ρ€ΡƒΠ³Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ языка программирования, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ это имя собствСнноС, Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Π½Π΅Ρ‚ Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ². Brainfuck ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ самым Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠ· ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ созданных языков. ЦСлью создатСлСй Π±Ρ‹Π»ΠΎ Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² программистам, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π² язык с самым малСньким компилятором (Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π»ΠΈ экзСмпляры Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΅ 200 Π±Π°ΠΉΡ‚).Β 

Π‘Π°ΠΌ язык состоял ΠΈΠ· восьми ΠΊΠΎΠΌΠ°Π½Π΄ (> > >Β 

> <<<<-]> .> . .. .Β 

> .<< .>. .—.Β 

—-.> .>.Β 

Β   НС Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ brainfuck Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π» ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠΌ Java ΠΈΠ»ΠΈ Π‘ (ΠΏΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ). Если Π²Ρ‹ мазохист, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° brainfuck. <Β 

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

Β 

REBOL: Relative Expression Based Object LanguageΒ 

Β   Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ пСснями «Livin La Vida Loca», «Mambo No. 5 » ΠΈ языком REBOL? ВсС ΠΎΠ½ΠΈ Π²Π·Π»Π΅Ρ‚Π΅Π»ΠΈ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ славы Π² 1999 Π³ΠΎΠ΄Ρƒ, ΠΏΡ€ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ Ρ‚Π°ΠΌ ΠΎΠΊΠΎΠ»ΠΎ мСсяца ΠΈ Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎ потСряли Π·Π²Π°Π½ΠΈΠ΅ Β«ΠΊΡ€ΡƒΡ‚Ρ‹Ρ…Β».Β 

REBOL ворвался Π½Π° Π°Ρ€Π΅Π½Ρƒ программирования ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° Π½Π΅ΠΌ, Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ ΠΈΠ·- ΠΏΠΎΠ΄ 38 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΎΠ½ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π» с Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-прилоТСниями. Плюс ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΎΠ½ стартовал с Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠ΅ΠΉ. Π§Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ дальшС?Β 

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

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

Β 

ColdFusionΒ 

Β  Β ColdFusion (ΠΎΠ½ ΠΆΠ΅ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ColdFusion ΠΈΠ»ΠΈ CFML) Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²ΠΎΠ·Π³Π»Π°ΡˆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΌ Π³Ρ€Π°Π½Π΄ΠΈΠΎΠ·Π½Ρ‹ΠΌ языком Web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, ставящим сСбя Π² ΠΎΠ΄ΠΈΠ½ ряд с ASP.NET ΠΈ Java Enterprise. ОТидалось, Ρ‡Ρ‚ΠΎ ColdFusion станСт вСсьма популярным благодаря своСй простотС ΠΈ доступности для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов. CFML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Π³ΠΈ (Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ HTML). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π½Π΅ΠΌ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ написания, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ программистам, постоянно Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³Π°Ρ… ΠΈ Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ²Π°Ρ….Β 

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ColdFusion Ρ‚Π°ΠΊ быстро потСрял ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, учитывая простоту использования ΠΈ, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, HTML-Π½Π°ΡΠ»Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π“ΠΈΠ±Π΅Π»ΡŒ ColdFusion ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Π½Π΅ ΠΈΠ·-Π·Π° ошибки Π² ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π΅Π³ΠΎ ΠΊΠ°ΠΊ языка программирования, ΠΈ Π½Π΅ ΠΈΠ·-Π·Π° ΠΊΠ°ΠΊΠΈΡ…- Ρ‚ΠΎ особСнных нСдостатков ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Он просто Π±Ρ‹Π» вытСснСн ASP.NET ΠΈ PHP (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» людям ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с MySQL ΠΈ, Ρ‡Ρ‚ΠΎ сыграло Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΡƒΡŽ халяву).Β 

Java2kΒ 

Β  Β Java2k — это вСроятностный, Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования. По ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ Π΅Π³ΠΎ создатСля, ΠΎΠ½ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ всСлСнной, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достовСрности, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ (гСниальноС заявлСниС!). Говоря попросту, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² Π΄Π°ΠΆΠ΅ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ лишь 90% вСроятности, Ρ‡Ρ‚ΠΎ функция Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ трСбуСтся. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сущСствуСт Π΄Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, какая ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ задСйствована, Ρƒ вас Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ возмоТности. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ разработанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ- Ρ€Π°Π·Π½ΠΎΠΌΡƒ.Β 

Π—Π°Ρ‡Π΅ΠΌ, ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ Π²Ρ‹Π΄Π°Π΅Ρ‚ случайныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΌ нСльзя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ сущСствСнного. Цитируя создатСлСй языка, ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ Java2 k, Β«ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ обычная java — это Π½Π΅ ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½ΠΎΒ». На самом ΠΆΠ΅ Π΄Π΅Π»Π΅ язык появился Π½Π° свСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ программистов ΠΏΠΎΡˆΠ΅Π²Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ·Π³Π°ΠΌΠΈ, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Java2k ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π΄Π°ΡŽΡ‰ΡƒΡŽ прСдсказуСмый Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Β 

Учитывая Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ придётся Π² условиях ΠΏΠΎΠ»Π½ΠΎΠΉ нСпрСдсказуСмости, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΠ° Β«Hello WorldΒ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΊΡ€ΡƒΡ‚ΠΎ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅.Β 

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

INTERCALΒ 

Β  Β Π’ Ρ„ΠΈΠ»ΡŒΠΌΠ΅ «ГоворящиС с Π²Π΅Ρ‚Ρ€ΠΎΠΌΒ» с Николосом КСйдТСм амСриканскиСморскиС ΠΏΠ΅Ρ…ΠΎΡ‚ΠΈΠ½Ρ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠ² с языка Π½Π°Π²Π°Ρ…ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сСкрСтных сообщСний, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° этом языкС ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ — Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ письмСнной Ρ„ΠΎΡ€ΠΌΡ‹. Π’ΠΎ ΠΆΠ΅ ΠΈ с INTERCAL — ΠΏΡ€Π°Π²Π΄Π°, с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.Β 

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΈΡ‡Π½Ρ‹ΠΉ язык — сплошная мистика. Он создавался ΠΊΠ°ΠΊ насмСшка Π½Π°Π΄ нСбСзызвСстными FORTRAN ΠΈ COBOL (Π΄Π°, язык достаточно Π΄Ρ€Π΅Π²Π½ΠΈΠΉ). Руководство ΠΊ языку содСрТало Π² сСбС Ρ€Π°Π·Π΄Π΅Π» «Миндалина». Как пояснялось Π² ссылкС ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ, всС ΠΌΠ°Π½ΡƒΠ°Π»Ρ‹ содСрТат Ρ€Π°Π·Π΄Π΅Π» Β«ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» (ΠΏΠΎ-английски «аппСндикс»), поэтому создатСли приняли Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² свою Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΡƒΠ΄Π°Π»ΡΠ΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ чСловСчСского Ρ‚Π΅Π»Π° — скаТСм, ΠΌΠΈΠ½Π΄Π°Π»ΠΈΠ½Ρ‹.Β 

Π’ языкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠ° Β«ΠŸΠžΠ–ΠΠ›Π£Π™Π‘Π’ΠΒ». Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ достаточно часто, ΠΎΠ½Π° Π½Π΅ принимаСтся компилятором ΠΊΠ°ΠΊ «нСдостаточно вСТливая». Если ΠΆΠ΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΠΎΠ½ появляСтся слишком часто, компилятор ΠΎΡ‚Π²Π΅Ρ€Π³Π°Π΅Ρ‚ Π΅Ρ‘ ΠΊΠ°ΠΊ «чСрСсчур Π²Π΅ΠΆΠ»ΠΈΠ²ΡƒΡŽΒ». Но самоС ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π² этой истории Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ, нСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ вСТливости, эта ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π΅ Π±Ρ‹Π»Π° Π½ΠΈΠ³Π΄Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°.Β 

INTERCAL, Π² соотвСтствии с ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, достаточСн для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ практичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языком программирования. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, язык Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Ссли Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° Π½Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ сразу ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ психиатру. Если окаТСтся, Ρ‡Ρ‚ΠΎ с рассудком Ρƒ вас всё Π² порядкС, ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ΡΡŒ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π—Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΎ ЭратосфСна, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² качСствС Β«ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉΒ» Π·Π°Π΄Π°Ρ‡ΠΈ, Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции SPARCStation-1 Ρ„ΠΈΡ€ΠΌΡ‹ SUN. ВыполнСнная Π½Π° языкС C, эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ Π·Π° полсСкунды. Π£ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° INTERCAL Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΡƒΡˆΠ»ΠΎ 17 часов.Β 

VRML: Virtual Reality Modeling LanguageΒ 

Β   Дословно пСрСводится ΠΊΠ°ΠΊ «язык модСлирования Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» (читаСтся Β«Π²Π΅Ρ€ΠΌΠ°Π»Β»). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ SGI, VRML Π±Ρ‹Π» призванпринСсти Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΡƒΡŽ линию Π½Π΅Π²ΠΈΠ΄Π°Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΡƒΡŽ срСду — графичСский эквивалСнт Nintendo 64. ΠžΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΡΡ‚ΠΎΠ»ΡŒ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ NASA ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠ»Π° ΠΈ приняла этот язык. Π’ связи с этим ΠΎΠ½ ΠΈ Π½Π΅ ΡƒΡˆΠ΅Π» Π² ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ массы. Π’ΠΎΠΎΠ±Ρ‰Π΅, Ссли Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ, это Π±Ρ‹Π»Π° Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя — Π½Π΅ Π΄Π°Ρ‚ΡŒ VRML ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒΡΡ. ΠšΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ»ΠΈ Π»ΠΈ Π±Ρ‹ ΠΌΡ‹ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ для Π°Ρ€ΠΌΠΈΠΈ Π»Π°ΠΌΠ΅Ρ€ΠΎΠ², Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ халявных ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² 1997 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΊΠ°Ρ‡Π°Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.Β 

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языков ΠΈΠ· нашСго списка, VMRL ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊ достаточно Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΠΎ сСй дСнь ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» для Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. На ΠΏΠΈΠΊΠ΅ своСй популярности Π² 1997 Π³ΠΎΠ΄Ρƒ VMRL использовался Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… страничках ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 3D- сайтах Π²Ρ€ΠΎΠ΄Π΅ Β«CyberTownΒ». Π§Ρ‚ΠΎ ΡƒΠ±ΠΈΠ»ΠΎ VRML, Ρ‚Π°ΠΊ это Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ SGI рСструктурировал ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, занимавшССся этими Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ, ΠΈ ΠΏΡ€ΠΎΠ΄Π°Π» Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Computer Associates, которая Π½Π΅ стала ΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ.Β 

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

SMIL: Synchronized Multimedia Integration LanguageΒ 

Β  Β SMIL (произносится ΠΊΠ°ΠΊ «смайл») Π±Ρ‹Π» создан Π² основном для прСдставлСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠ³ΠΎ (Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ) ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Компания Real Networks создала этот язык для обСспСчСния Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… Π½ΡƒΠΆΠ΄, ΠΊΠ°ΠΊ синхронизация тСкста ΠΈ Π²ΠΈΠ΄Π΅ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, субтитры Π² ΠΊΠ°Ρ€Π°ΠΎΠΊΠ΅) ΠΈΠ»ΠΈ Π·Π²ΡƒΠΊΠ° ΠΈ Flash-изобраТСния. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ SMIL стала Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ (хотя ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡ΠΈΡΡ‚ΡƒΡŽ) ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π²ΠΈΠ΄Π΅ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ лишь ΡΠΊΡƒΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ кабСля.Β 

НСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² ΠΎΡ‚ Microsoft, SMIL оставался всС-Ρ‚Π°ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ. Но Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ SMIL второстСпСнноС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ срСди языков, это появлСниС ΡˆΠΈΡ€ΠΎΠΊΠΎΠΏΠΎΠ»ΠΎΡΠ½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚- соСдинСния. Π‘ распространСниСм ΡˆΠΈΡ€ΠΎΠΊΠΎΠΏΠΎΠ»ΠΎΡΠ½Ρ‹Ρ… сСтСй ΠΈ с ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΎΠΌ ΠΈΡ… Π² срСднСстатистичСскиС Π΄ΠΎΠΌΠ° ΠΏΡ€ΠΎΠΏΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² языкС, способном ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ±ΠΎΠ³ΠΈΠΉ эквивалСнт ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ. Β 

ΠžΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΡΡŒ ΠΏΠ»Ρ‹Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ, SMIL стал Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ Π² Ρ‚ΠΎ врСмя ΠΈ Π½Π΅ Π² Ρ‚ΠΎΠΌ мСстС. Если Π±Ρ‹ SMIL появился Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΌΡƒΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ доступ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π» ΠΏΠΎΠΊΠΎΡ€ΡΡ‚ΡŒ АмСрику, Ρƒ Π½Π΅Π³ΠΎ Π±Ρ‹Π» Π±Ρ‹ шанс ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρƒ долю популярности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½, ΠΊΠ°ΠΊ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π΅Ρ€, бСзусловно, заслуТиваСт. Π’ настоящСС врСмя SMIL Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… устройствах, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° MMS (ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Π°Ρ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° тСкстовым сообщСниям).Β 

HaskellΒ 

Β   По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Β«ΠΏΡ€ΠΎΠ²Π°Π»ΡŒΠ½Ρ‹Ρ…Β» прСдставитСлСй нашСго списка, Haskell ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ довольно популярным языком. Но нСсмотря Π½Π° Ρ‚ΠΎΠ»ΠΏΡƒ Π΅Π³ΠΎ Ρ„Π°Π½Π°Ρ‚ΠΎΠ² (ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ, Π½ΠΎ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈ, Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΎΡ‡Π΅Π½ΡŒ Π³Ρ€ΠΎΠΌΠΊΡƒΡŽ), Haskell всю свою Тизнь Π±Ρ‹Π» языком-Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΈΠΊΠΎΠΌ.Β 

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

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

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

DelphiΒ 

Β  Β Delphi — это «паскализированная» вСрсия Visual Basic. ΠžΡ‚Π΄Π°Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ популярности Delphi- программирования, Π±Ρ‹Π»ΠΎ Π±Ρ‹ нСчСстно Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² наш список языков- ΠΏΡ€ΠΈΠ·Ρ€Π°ΠΊΠΎΠ². Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Delphi Π·Π° Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ свалился с Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ славы Π² ΠΏΡƒΡ‡ΠΈΠ½Ρƒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ забвСния, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ нСчСстно ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Delphi достиг-Ρ‚Π°ΠΊΠΈ прСдсказанной Π΅ΠΌΡƒ Π² сСрСдинС-ΠΊΠΎΠ½Ρ†Π΅ 90-Ρ… Π³ΠΎΠ΄ΠΎΠ² популярности.Β 

Π―Π·Ρ‹ΠΊ программирования Delphi — это прямой ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Turbo Pascal (Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ Pascal). Для всСх, ΠΏΠΈΡΠ°Π²ΡˆΠΈΡ… Π½Π° Visual Basic 3.0, инструмСнты Delphi Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π² Π½ΠΎΠ²ΠΈΠ½ΠΊΡƒ.Β 

Учитывая, Ρ‡Ρ‚ΠΎ это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ- ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, созданный с Ρ†Π΅Π»ΡŒΡŽ облСгчСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄ Windows, ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Delphi с ΠΏΡŒΠ΅Π΄Π΅ΡΡ‚Π°Π»Π° славы Π½Π΅ стало послСдствиСм ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ слоТности языка для программистов Π±Π΅Π· ΠΎΠΏΡ‹Ρ‚Π°. НС ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«Hello WorldΒ» Π½Π° Delphi Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Π½Π° любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈ Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ слоТно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ стоило ΠΈΠ·- Π·Π° этого ΠΎΡ‚Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ. Β 

Β   Настоящим ΡƒΠ±ΠΈΠΉΡ†Π΅ΠΉ Delphi стал Visual Basic 6 . Π‘ 4 -ΠΉ ΠΈ 5 -ΠΉ вСрсиями, Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Π΅Ρ‰Π΅ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сущСствовал ряд Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° Delphi Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ Π½Π° Visual Basic. Но 2003 Π³ΠΎΠ΄ стал Π³ΠΎΠ΄ΠΎΠΌ восхоТдСния ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.NET, ΠΈ Delphi Π½Π°Ρ‡Π°Π» своС ΠΏΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ ΠΌΡ€Π°ΠΊ. VB просто-напросто Π½Π΅ нуТдался Π² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π΅, ΠΈ поэтому ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ падСния Delphi оказалось Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ.Β 

PowerBuilderΒ 

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

PowerBuilder Π±Ρ‹Π» Π°Ρ‚Π°ΠΊΠΎΠ²Π°Π½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Ρ‚Ρ€Π΅Ρ… сторон. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±ΡƒΠΌ, появлСниС Delphi ΠΈ Π²ΠΎΠ·Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Visual Basic — это Ρ‚Ρ€ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°, ΡΡ‚Π°Π²ΡˆΠΈΡ… Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π°.БрСдства Π½Π°Ρ‡Π°Π»ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° web- ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° Visual Basic, Β«Π΄Π΅Π»ΡŒΡ„ΠΈΠΉΡ†Π΅Π²Β» стало Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС, Ρ‡Π΅ΠΌ людСй, Π·Π½Π°ΡŽΡ‰ΠΈΡ… PowerBuilder… ΠŸΡ€ΠΈΠ³ΠΎΠ²ΠΎΡ€ Π±Ρ‹Π» подписан.Β 

Β  Β Π’ ΠΊΡ€Π°Ρ…Π΅ PowerBuilder Π½Π΅ стоит ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ для сСбя ΡƒΡ€ΠΎΠΊΠ°. Π­Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто Π±Ρ‹Π» вытСснСн с Ρ€Ρ‹Π½ΠΊΠ° Π½ΠΎΠ²Ρ‹ΠΌΠΈ тСхнологиями ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ условиями выТивания.Β 

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

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

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ языки программирования

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

Π―Π·Ρ‹ΠΊ Python
Π―Π·Ρ‹ΠΊ программирования Python являСтся самым Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ срСди языков Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния. Π•Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π΅Ρ‰Ρ‘ Π² ΠΊΠΎΠ½Ρ†Π΅ дСвяностых Π³ΠΎΠ΄ΠΎΠ², Π° ΡƒΠΆΠ΅ Π² 2010 Π³ΠΎΠ΄Ρƒ Π²Ρ‹ΡˆΠ»Π° пСрвая вСрсия языка. БСйчас Π½Π° языкС ΠΏΠΈΡˆΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-прилоТСния ΠΈ систСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° языка:
Β Β· ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ
Β Β· ΠΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°
Β Β· НаличиС встроСнных ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
Β Β· НаписаниС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ нагляднСС, Ρ‡Π΅ΠΌ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.
 Но Π΅ΡΡ‚ΡŒ ΠΈ сущСствСнный нСдостаток Ρƒ языка. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ отступы. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° для Π½ΠΎΠ²ΠΎΠΉ строки. Из-Π·Π° этого ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ затягиваСтся Π½Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя.

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

Π‘ΠΈ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки
Π›ΡŽΠ±ΠΎΠΉ си-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, Π±ΡƒΠ΄ΡŒ-Ρ‚ΠΎ Β«Π‘++Β», Β«Π‘#Β», Β«objective-cΒ», ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ популярными ΠΈ вострСбованными языками. Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· пСрСчислСнных языков ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для программирования систСмных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ основном это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ клиСнтской Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π£ языков, практичСски, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ синтаксис, Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» языка различаСтся. Π“Π»Π°Π²Π½Ρ‹ΠΌ достоинством Ρ‚Π°ΠΊΠΈΡ… языков являСтся простота синтаксиса, Π° нСдостаток Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

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

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ языки программирования

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 1

Π―Π·Ρ‹ΠΊ программирования (ЯП) — способ записи инструкций для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ…ΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ срСдствами (ассСмблСр, компилятор, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€) Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ процСссором ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ВСкст, написанный программистом ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ называСтся исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° процСссором называСтся Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ — основной Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° — способСн Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ мноТСство Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… дСйствий: арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти ΠΈ Ρ‚.ΠΏ. Они Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ процСссора. КаТдой ΠΈΠ· Π½ΠΈΡ… присвоСн Π½ΠΎΠΌΠ΅Ρ€. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Π±Ρ‹Π»ΠΎ Π±Ρ‹ слоТно ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΡ… всС Π² Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для чСловСчСского восприятия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π―Π·Ρ‹ΠΊΠΈ программирования Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ «ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅» Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ развития языков программирования

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

Рисунок 1. Рукописный справочник ΠΊΠΎΠ΄ΠΎΠ² Π­Π’Πœ «ΠœΠΈΠ½ΡΠΊ». 1960-Π΅ Π³Π³. Автор24 β€” ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±ΠΈΡ€ΠΆΠ° студСнчСских Ρ€Π°Π±ΠΎΡ‚

К сСрСдинС 1950-Ρ… Π³Π³., ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ услоТнСния Π·Π°Π΄Π°Ρ‡ ΠΈ количСства Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Π² процСсс написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ спСциалистов, языки программирования ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ понимания исходных ΠΊΠΎΠ΄ΠΎΠ². ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Ρ‹Π»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ мнСмоничСскиС Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ сочСтания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MOV для пСрСмСщСния ADD для слоТСния ΠΈ Ρ‚.ΠΏ. Π’Π°ΠΊΠΈΠ΅ ЯП ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ассСмблСров. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языками программирования Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния.

Рисунок 2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ассСмблСрС. Автор24 β€” ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±ΠΈΡ€ΠΆΠ° студСнчСских Ρ€Π°Π±ΠΎΡ‚

Π‘ сСрСдины 1950-Ρ… Π³Π³. Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ Π±ΡƒΡ€Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ЯП Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ поколСния (Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, Кобол, Лисп), всё Π±ΠΎΠ»Π΅Π΅ абстрактных ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ…, хотя Π΅Ρ‰Π΅ сильно Π·Π°Π²ΠΈΡΠ΅Π²ΡˆΠΈΡ… ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ машин, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹.

К Π½Π°Ρ‡Π°Π»Ρƒ 1970-Ρ… Π³Π³. появились ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ сСти ΠΈ встал вопрос ΠΎΠ± ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠŸΡ€ΠΎΡ€Ρ‹Π²ΠΎΠΌ Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ стало появлСниС языка C (Π‘ΠΈ), созданного ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ Π² 1969-1973 Π³Π³. Π―Π·Ρ‹ΠΊΠΈ, возникшиС Π² 1970-1980-Π΅ Π³Π³., ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ языков высокого уровня. ΠžΡ‚ Π½ΠΈΡ… Π²Π΅Π΄ΡƒΡ‚ своС происхоТдСниС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных ЯП.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ состояниС языков программирования

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ языков программирования мСняСтся со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π² зависимости ΠΎΡ‚ потрСбностСй Ρ€Ρ‹Π½ΠΊΠ° IT.

Рисунок 3. НаиболСС популярныС языки программирования ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° 2018 Π³. Автор24 β€” ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±ΠΈΡ€ΠΆΠ° студСнчСских Ρ€Π°Π±ΠΎΡ‚

НаиболСС вострСбованныС Π² настоящСС врСмя ЯП ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. Π“Ρ€ΡƒΠΏΠΏΠ° языков, Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… своС происхоТдСниС ΠΎΡ‚ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ³ΠΎ языка Π‘ΠΈ — C, C++, C#, Objective-C, Java, всСгда Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° ΠΈ вострСбована. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° этих языках, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ высокой ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. Они ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства), ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НСдостаток этой Π³Ρ€ΡƒΠΏΠΏΡ‹ языков — высокий ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния. C# ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² срСдС ОБ Windows, Objective-C — для iOS ΠΈ MacOS. C, C++ ΠΈ Java ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для всСх популярных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.
  2. К Π³Ρ€ΡƒΠΏΠΏΠ΅ Π‘ΠΈ-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков ΠΏΡ€ΠΈΠΌΡ‹ΠΊΠ°Π΅Ρ‚ ΠΈ JavaScript, созданный ΠΊΠ°ΠΊ язык с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ вхоТдСния для нСспСциалистов. К настоящСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ развился Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ инфраструктуру со мноТСством Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ написания ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ слоТных сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (срСда node.js).
  3. Python — скриптовой ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Он Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ компиляции, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅, Ρ‚.Π΅. ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ процСссора Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ исполнСния. Π­Ρ‚ΠΎΡ‚ ЯП ΠΎΡ‡Π΅Π½ΡŒ популярСн благодаря своСму Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ большого количСства Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠŸΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ для написания ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΡ‚ дСсктопных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… вСбсСрвСров.
  4. Ruby — скриптовой язык, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Python, Π°ΠΊΡ†Π΅Π½Ρ‚ сдСлан Π½Π° прСдставлСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… сущностСй ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ высокой Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° экономию чСловСчСских рСсурсов. Π¨ΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠΉ инфраструктурой (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΌΠΌΡŽΠ½ΠΈΡ‚ΠΈ).
  5. PHP — скриптовой язык, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, исполняСмый Π½Π° сторонС сСрвСра, встраиваСтся нСпосрСдствСнно Π² Ρ‚Π΅Π»ΠΎ Π²Π΅Π±-страницы ΠΈ исполняСтся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΅Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Π­Ρ‚ΠΎ избавляСт программиста ΠΎΡ‚ нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ части Π²Π΅Π±-прилоТСния.

Π’ послСдниС Π³ΠΎΠ΄Ρ‹ появилось Π½Π΅ΠΌΠ°Π»ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ЯП, ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… быстро растСт. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Go ΠΎΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ Alphabet, Swift ΠΎΡ‚ Apple, Rust ΠΎΡ‚ Mozilla Fundation. Из российских Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ заслуТиваСт внимания Kotlin — язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всё ΡˆΠΈΡ€Π΅ примСняСтся для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ОБ Android. ВмСстС с Ρ‚Π΅ΠΌ, Π½Π΅ ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки, возникшиС ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Perl, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎ сих ΠΏΠΎΡ€ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ эффСктивныС Π²Π΅Π±-прилоТСния, Ρ‚Π°ΠΊ ΠΈ скрипты для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π”ΠΎΠΊΠ»Π°Π΄-сообщСниС Π―Π·Ρ‹ΠΊΠΈ программирования (описаниС для Π΄Π΅Ρ‚Π΅ΠΉ)

Π―Π·Ρ‹ΠΊΠΈ программирования – Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² программирования (станков, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², смартфонов). Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка программирования Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ свой синтаксис, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов, опрСдСляСтся Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° выполняСт. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ языка программирования ΠΎΡ‚ СстСствСнного языка состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ посрСдством Π½Π΅Π³ΠΎ вСдСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ машиной, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ.

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

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

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ высокоуровнСвым языком программирования стал план­кал­кюль (Π½Π΅ΠΌ. PlankalΒ­kΓΌl), ΠΎΠ½ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡƒΠΆΠ΅ для элСктронных машин.  На Π·Π°Ρ€Π΅ программирования всС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΠ»ΠΈΡΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ – ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Π½ΡƒΠ»Π΅ΠΉ.Β  Π‘ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΈ языки программирования, ΠΎΠ½ΠΈ мСнялись, ΠΎΠ΄Π½ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Π² Π½Π΅Π±Ρ‹Ρ‚ΠΈΠ΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ появлялись.

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

Π‘++  являСтся Ρ‚Π°ΠΊΠΆΠ΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования, особоС мСсто Π² Π½Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎΡ‚ язык являСтся ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π‘ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ дСвяностых Π³ΠΎΠ΄ΠΎΠ² ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π° Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования. ПослСднСй вСрсиСй этого языка являСтся C++11.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ Π―Π·Ρ‹ΠΊΠΈ программирования

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ сСгодня Ρ‚Π΅ΠΌΡ‹

  • ΠžΠ΄ΡƒΠ²Π°Π½Ρ‡ΠΈΠΊ

    ΠžΠ΄ΡƒΠ²Π°Π½Ρ‡ΠΈΠΊ – это травянистоС, ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½Π΅Π΅ растСниС. Бостоит ΠΈΠ·: Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠΈ; Π±Π°Π·Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡΡ‚ΡŒΠ΅Π²; Ρ€Π΅Π΄ΠΊΠΈΡ… Ρ†Π²Π΅Ρ‚ΠΊΠΎΠ²Ρ‹Ρ… стСблСй.

  • Жуковский Тизнь ΠΈ творчСство

    Π–ΠΈΠ·Π½ΡŒ ΠΈ творчСство Π²Π΅Π»ΠΈΠΊΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ дСятСля, писатСля, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° Π’. А. Жуковского ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ интСрСс, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΅Π³ΠΎ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ — это своСобразный ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€ΠΎΡ‚ Π² рус

  • ЗагрязнСниС Π²ΠΎΠ·Π΄ΡƒΡ…Π°

    НаличиС атмосфСры — основноС условиС сущСствования чСловСчСства. Π‘Π΅Π· Π²ΠΎΠ·Π΄ΡƒΡ…Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΆΠΈΡ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ пяти ΠΌΠΈΠ½ΡƒΡ‚, поэтому чистота Π²ΠΎΠ·Π΄ΡƒΡ…Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ Π½Π°

  • Π₯Ρ€Π°ΠΌ АртСмиды ЭфСсской

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

  • Π‘Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Π›Π΅Π΄ΠΎΠ²ΠΈΡ‚Ρ‹ΠΉ ΠΎΠΊΠ΅Π°Π½

    Π‘Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Π›Π΅Π΄ΠΎΠ²ΠΈΡ‚Ρ‹ΠΉ ΠΎΠΊΠ΅Π°Π½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ послСднСС мСсто ΠΏΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π΅ ΠΈ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ срСди всСх ΠΎΠΊΠ΅Π°Π½ΠΎΠ² нашСй ΠΏΠ»Π°Π½Π΅Ρ‚Ρ‹. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ€Ρ‹ Π΅Π³ΠΎ Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ располоТСны Π² сСвСрном ΠΏΠΎΠ»ΡƒΡˆΠ°Ρ€ΠΈΠΈ нашСго Π·Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Π° ΠΈ раздСля

  • ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹ Π² Π²ΠΎΠ»Π΅ΠΉΠ±ΠΎΠ»

    Π‘Π°ΠΌΠ° ΠΈΠ³Ρ€Π° прСдставляСт собой ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² спорта, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² составС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ мяча. ЦСль ΠΈΠ³Ρ€Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΡ‚Π±ΠΈΠ²Π°Π½ΠΈΠΈ мяча ΡƒΠ΄Π°Ρ€Π°ΠΌΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΡ… частСй Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π°

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ языков программирования

Рассмотрим основныС этапы Π² истории языков программирования ΠΈ коснСмся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… языков, ΡΡ‹Π³Ρ€Π°Π²ΡˆΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ программирования.

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

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

Π’Π΅Ρ€ΠΌΠΈΠ½ Β«Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒΒ» Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ»ΠΎΡ…ΠΎΠ΅ качСство языка, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ подчСркиваСтся Π΅Π³ΠΎ нСразрывная связь с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык.

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

  • ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° машинно-зависимой, Ρ‚. ΠΊ. Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ процСссоров ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΈΡΡŒ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΈ систСмой ΠΊΠΎΠΌΠ°Π½Π΄;
  • Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ поиск ошибок Π² Π½Π΅ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ трудности.

АссСмблСр.

Π’ Π½Π°Ρ‡Π°Π»Π΅ 1950-Ρ… Π³ΠΎΠ΄ΠΎΠ² Π±Ρ‹Π»Π° осущСствлСна идСя использования ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ вмСсто адрСсов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° мнСмоничСскиС (словСсныС) обозначСния. Π―Π·Ρ‹ΠΊ программирования, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ АссСмблСр (ΠΎΡ‚ Π°Π½Π³Π». assembler β€” сборщик).

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

Вранслятор — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰Π°Ρ тСкст, прСдставлСнный Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· языков программирования, Π² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° машинном языкС.

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

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

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

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ языков программирования ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ появлСнию языков высокого уровня, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΎΡ‚Π²Π»Π΅Ρ‡ΡŒΡΡ ΠΎΡ‚ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° процСссора. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… языков (источник: Π‘. Бтрауструп Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования Π‘++Β»)

Π’Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для развития высокоуровнСвых языков программирования ΠΈΠΌΠ΅Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ 1950-Ρ… Π³ΠΎΠ΄ΠΎΠ² Ρ‚Ρ€Π΅Ρ… языков – Fortran, COBOL, Lisp. Ѐилософия, стоящая Π·Π° этими языками, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании высокоуровнСвой систСмы ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰Π΅ΠΉ программисту написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

Fortran (Formula Translation — трансляция Ρ„ΠΎΡ€ΠΌΡƒΠ») — Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1956 Π³ΠΎΠ΄Ρƒ сотрудниками ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ IΠ’M ΠΏΠΎΠ΄ руководством Π”ΠΆΠΎΠ½Π° Бэкуса. ПоявлСниС Fortran — ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… событий Π² истории языков программирования.

Fortran прСдназначался для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… вычислСний. Он ΠΎΠ±Π»Π°Π΄Π°Π» достаточно машинно-нСзависимой систСмой ΠΊΠΎΠΌΠ°Π½Π΄: ΠΊΠΎΠ΄ Π½Π° языкС Fortran ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями, Ρ‡Ρ‚ΠΎ явилось ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ достиТСниСм для своСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. По этим ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Fortran считаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ высокоуровнСвым языком программирования.

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

COBOL (Common Business-Oriented Language — язык программирования для коммСрчСских ΠΈ Π΄Π΅Π»ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡) Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ CODASYL Π² 1959-60 Π³ΠΎΠ΄Π°Ρ… ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π΅ ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²Π° ΠΎΠ±ΠΎΡ€ΠΎΠ½Ρ‹ БША ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ основных ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ бизнСс-Π΄Π°Π½Π½Ρ‹Ρ…. Основной ΡƒΠΏΠΎΡ€ Π² этом языкС Π±Ρ‹Π» сдСлан Π½Π° манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ поиск, Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹).

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

Lisp (LISt Processing – ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° списков) Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1958 Π³ΠΎΠ΄Ρƒ Π”ΠΆΠΎΠ½ΠΎΠΌ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ связанных списков ΠΈ символьной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Lisp Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ языком, Π½Π΅ зависСвшим ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния. Π’ настоящСС врСмя сущСствуСт мноТСство Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠ² языка. Π­Ρ‚ΠΎ сСмСйство языков нашло ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² области модСлирования искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°.

Как Π±Ρ‹ выглядСл язык программирования, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° сообщСния?

Алан КСй сказал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β»:

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π΅Π³ΠΎ концСпция состояла ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частСй.

  • Π― Π΄ΡƒΠΌΠ°Π» ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° биологичСскиС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈ / ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² сСти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сообщСний (Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями появился Π² самом Π½Π°Ρ‡Π°Π»Π΅ — ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ сообщСния Π½Π° языкС программирования достаточно эффСктивно. Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ).
  • Π― Ρ…ΠΎΡ‚Π΅Π» ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. B5000 ΠΏΠΎΡ‡Ρ‚ΠΈ добился этого благодаря своСй ΠΏΠΎΡ‡Ρ‚ΠΈ нСвСроятной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ HW. Π― понял, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π° ячСйка / вСсь ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‡Ρ‚ΠΎ Β«<-Β» Π±ΡƒΠ΄Π΅Ρ‚ просто Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ сообщСния (ΠΌΠ½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΄ΡƒΠΌΠ°Ρ‚ΡŒ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΡƒΠΌΠ°Π» ΠΎΠ±ΠΎ всСх этих символах ΠΊΠ°ΠΊ ΠΎ названиях для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. )

Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сократил это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния.

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

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ сообщСния?

Если Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π»ΠΈ этот Π±Π»ΠΎΠ³ с самого Π½Π°Ρ‡Π°Π»Π°, Ρ‚ΠΎ навСрняка ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΌΠΎΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ пост Β«Π”Π°Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ошибки Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Β».
Основная идСя здСсь просто Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ основныС языки Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ для прСдставлСния Π±ΠΎΠ³Π°Ρ‚Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, отчасти ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

ПослС этого я написал ΡΠ΅Ρ€ΠΈΡŽ ΠΈΠ· Π΄Π²ΡƒΡ… частСй ΠΏΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ выраТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ фиксированный интСрфСйс ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ….
  • Π”Π°Π½Π½Ρ‹Π΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ фиксированный Π½Π°Π±ΠΎΡ€ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ….
  • ADT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΡ€Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π² ΠΎΠ±ΠΎΠΈΡ….

Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ — ΠΎΠ½ ΠΏΡ€ΠΎΠ½ΠΈΠ·Ρ‹Π²Π°Π΅Ρ‚ всС аспСкты ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.
Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ случайно ΠΈ отбросим, ​​когда Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
Π­Ρ‚ΠΎ.

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

Π—Π΄Π΅ΡΡŒ Π΄Π²Π΅ основныС ошибки:

  1. «ВсС Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°ΡˆΡƒ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
  2. БообщСния ΠΏΠΎ своСй сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ , Π½ΠΎ КСй Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΠ± Β«ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…Β».

О ΠΏΠ΅Ρ€Π²ΠΎΠΌ я ΡƒΠΆΠ΅ писала.Но Π²Ρ‚ΠΎΡ€ΠΎΠ΅ — это Π³Π»Π°Π²Π½ΠΎΠ΅ наблюдСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² сСгодняшнСм постС.

КСй Π»ΡŽΠ±ΠΈΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎ своСй сути ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ этого слова.
Но Π² основС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π»Π΅ΠΆΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅: IP, TCP, UDP, HTTP, DNS, BGP — всС это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ с ΠΎΡ‡Π΅Π½ΡŒ строгими схСмами.
ВсС Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ — ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ сообщСниС — это Π΄Π°Π½Π½Ρ‹Ρ…, , Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π’Π°ΠΊ Π²ΠΎΡ‚, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ слово Β«Π΄Π°Π½Π½Ρ‹Π΅Β» Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни своСобразно.Π’Π°ΠΊΠΎΠΉ способ понимания Π΄ΠΈΠ·Π°ΠΉΠ½Π° — Ρ‡Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² этом ΠΊΠ½ΠΈΠΆΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
Π― Π²Π΅Ρ€ΡŽ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π² Π²ΠΈΠ΄Ρƒ Алан КСй, ΠΊΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Β«Π΄Π°Π½Π½Ρ‹Π΅Β» — это измСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ — ΠΎΠ±Ρ‰Π΅Π΅ состояниС.
(Π­Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ основано Π½Π° Π΅Π³ΠΎ настоянии Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Β«Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡΒ», Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π² Π²ΠΈΠ΄Ρƒ ΠΎΠ±Ρ‰ΠΈΠ΅ измСняСмыС Π΄Π°Π½Π½Ρ‹Π΅.
Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.)
Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹ΠΌ ΠΏΠΎ своСй сути, это большС соотвСтствуСт Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ говорят Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ программисты.

Π― Π½Π΅ совсСм ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ с ΠΎΠ±Ρ‰ΠΈΠΌ состояниСм, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² смыслС КСя.Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ старыС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Π΅ сСти с ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠ°Π½Π°Π»ΠΎΠ², Π° Π½Π΅ соврСмСнныС сСти с ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вСсь ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ состояниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС.
(Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ — это Π½Π΅ Π°ΠΏΠ°Ρ‚Ρ€ΠΈΠ΄, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.
Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ BGP ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ?)

Π§Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π² «всС Π΅ΡΡ‚ΡŒ _Β»?

Когда-Ρ‚ΠΎ Алонзо Π§Π΅Ρ€Ρ‡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» лямбда-исчислСниС.
Основная идСя Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ лямбда-исчислСния состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС вычислСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Ρ‹ этим языком, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
ВсС Π΅ΡΡ‚ΡŒ функция.
Число 1 — это функция, ΠΏΠ°Ρ€Ρ‹ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π’ΠΎΡ‚ рСализация ΠΏΠ°Ρ€ с использованиСм синтаксиса псСвдо-Haskell:

  ΠΏΠ°Ρ€Π° = \ fst -> \ snd -> \ selector -> сСлСктор fst snd

fst = \ ΠΏΠ°Ρ€Π° -> ΠΏΠ°Ρ€Π° (\ fst -> \ snd -> fst)
snd = \ ΠΏΠ°Ρ€Π° -> ΠΏΠ°Ρ€Π° (\ fst -> \ snd -> snd)

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ = ΠΏΠ°Ρ€Π° x y
x == fst ΠΏΡ€ΠΈΠΌΠ΅Ρ€
y == snd ΠΏΡ€ΠΈΠΌΠ΅Ρ€
  

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

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… языков программирования ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Π΅Ρ‚Ρ‚Π΅Ρ€ΠΎΠ² ΠΈ шаблона посСтитСля.
Или ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с замыканиями ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½, Π²Π΅Ρ€Π½ΠΎ?
Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ «всС Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β» нас Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ тСряСт, Π²Π΅Ρ€Π½ΠΎ?

Но Π½Π΅Ρ‚. Абсурдная идСя — ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ настоящим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ с использованиСм чистого Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ лямбда-исчислСния.
ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это способно Π½Π° Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Π½ΠΎ бСсполСзно.
ΠŸΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числа Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π½Π΅Ρ‚ чисСл, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ числа.
НС говоря ΡƒΠΆΠ΅ ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ.

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

И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, я соТалСю ΠΎ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ видят Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΠΎΠΈΠΌΠΈ.

БообщСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Но Ρ€Π°Π·Π²Π΅ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ΄Π΅ΠΈ Π§Π΅Ρ€Ρ‡Π°?
Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΏΠ°Ρ€Π΅ с , ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΏΡƒΡ‚Π΅ΠΌ получСния сообщСния ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎ?
Π Π°Π·Π²Π΅ это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ рСализация описанных Π²Ρ‹ΡˆΠ΅ fst ΠΈ snd ?
ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… сообщСний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ?

Π­Ρ‚ΠΎ всСго лишь иллюзия.
По сути, всС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ссылок ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это, ΠΏΠΎΠ΄ΡƒΠΌΠ°Π² ΠΎ рСкурсивных функциях.
Если Π±Ρ‹ ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ вмСсто ссылок, каТдая рСкурсивная функция ΠΈΠΌΠ΅Π»Π° Π±Ρ‹ бСсконСчный Ρ€Π°Π·ΠΌΠ΅Ρ€.
На самом Π΄Π΅Π»Π΅ ΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ смогли Π±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ для исполнСния.
(Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сюда ΠΏΡ€ΠΈΠ΄ΠΈΡ€ΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ порядка ΠΎΡ†Π΅Π½ΠΊΠΈ.)
РСкурсивная функция — это, ΠΏΠΎ сути, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ со ссылкой Π½Π° сСбя, , Ссли Π±Ρ‹ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ содСрТала саму вмСсто ссылки, ΠΌΡ‹ Π±Ρ‹ просто ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅.

И ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚β€¦ это Π΄Π°Π½Π½Ρ‹Π΅.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎ послСдствиях этого.
Как ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ Π²Π΅Ρ‰ΠΈ Π² памяти?
Как ΠΌΡ‹ записываСм Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° диск?
Как ΠΌΡ‹ отправляСм сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ ΠΏΠΎ сСти?
ВсС это Π΄Π°Π½Π½Ρ‹Π΅.
Если всС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ?
Π•ΡΡ‚ΡŒ Π»ΠΈ Ρƒ нас Π·Π°Π΄Π°Ρ‡Π° изобрСсти ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ сСриализации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ всСми?
И Ссли Π΄Π°, Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ соотвСтствуСт нашим трСбованиям?

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ выглядит язык, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° сообщСния?

Ну, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π­Ρ€Π»Π°Π½Π³.

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

Erlang удаСтся Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π±Π»ΠΈΠ·ΠΊΠΈΡ… ΠΊ идСям Алана КСя ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ ΠΎΠ½ сдСлал это Π·Π° счСт… , Π° Π½Π΅ «избавлСния ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…Β».”
ВсС Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π­Ρ‚ΠΈ соврСмСнныС языки программирования заставят вас ΡΡ‚Ρ€Π°Π΄Π°Ρ‚ΡŒ | Илья Π‘ΡƒΠ·Π΄Π°Π»ΡŒΠ½ΠΈΡ†ΠΊΠΈΠΉ | Π›ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Эликсир, вСроятно, самый популярный язык Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π² ΠΌΠΈΡ€Π΅. Как ΠΈ ReasonML, Elixir Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Π½ΠΎΠ²Ρ‹ΠΉ язык. ВмСсто этого Elixir основываСтся Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Ρ‚Ρ€Π΅Ρ… дСсятилСтиях успСха Erlang.

Эликсир — Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΡƒΠ·Π΅Π½ Π“ΠΎ. Как ΠΈ Go, Elixir ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ разрабатывался для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСимущСства Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ядСр процСссора.

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

БСмСйство языков: ML .

πŸ‘ πŸ‘ ЭкосистСма

Π§Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Elixir ΡΠΈΡΡŽΡ‰ΠΈΠΌ, Ρ‚Π°ΠΊ это Π΅Π³ΠΎ экосистСма. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков Π΅ΡΡ‚ΡŒ язык ΠΈ экосистСма — Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ .Π’ Elixir основныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ экосистСмы Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ основной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Elixir. Π₯осС Π’Π°Π»ΠΈΠΌ, ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Elixir, Ρ‚Π°ΠΊΠΆΠ΅ являСтся основным участником Phoenix ΠΈ Ecto — супСр ΠΊΡ€ΡƒΡ‚Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² экосистСмС Elixir.

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Elixir ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ с мноТСством ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°.

πŸ‘ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Phoenix

Π‘Π»ΠΎΠ³Π°Π½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Phoenix — Β«Phoenix просто чувствуСт сСбя подходящим». Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Phoenix ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ WebSockets, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, язык шаблонов HTML, ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ / Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Ρ‹ JSON, Π±Π΅ΡΡˆΠΎΠ²Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ORM (Ecto), сСансы, Π½Π°Π±ΠΎΡ€ инструмСнтов SPA ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

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

πŸ‘ Fullstack Elixir

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Phoenix Π½Π΅Π΄Π°Π²Π½ΠΎ прСдставил LiveView, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Π±-интСрфСйсы Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прямо Π² Elixir (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, одностраничныС прилоТСния). НС трСбуСтся Π½ΠΈ JavaScript, Π½ΠΈ React!

LiveView Π΄Π°ΠΆΠ΅ заботится ΠΎ синхронизации состояния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ REST / GraphQL API.

πŸ‘ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

Elixir ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Python для мноТСства Π·Π°Π΄Π°Ρ‡, связанных с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Π² Π²Π΅Π±-парсСр Π½Π° Python ΠΈ Elixir, Elixir ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ язык ΠΈ экосистСму для этой Π·Π°Π΄Π°Ρ‡ΠΈ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Broadway, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ΅ΠΌΠ° / ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Elixir.

πŸ‘Œ БистСма Ρ‚ΠΈΠΏΠΎΠ²

На ΠΌΠΎΠΉ взгляд, отсутствиС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ — самый большой нСдостаток Elixir. Π₯отя Elixir Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, компилятор (вмСстС с Π΄ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ) сообщит ΠΎ мноТСствС ошибок Π²ΠΎ врСмя компиляции.Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСвосходит языки с динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, JavaScript, Python ΠΈ Clojure).

πŸ‘ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ

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

πŸ‘πŸ‘ ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ

Эликсир основан Π½Π° Erlang, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался Π±ΠΎΠ»Π΅Π΅ 30 Π»Π΅Ρ‚ для создания самого Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² ΠΌΠΈΡ€Π΅. НСкоторыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Erlang, смогли Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ 99.ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ 9999999%. Ни ΠΎΠ΄Π½Π° другая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π² ΠΌΠΈΡ€Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ…Π²Π°ΡΡ‚Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ надСТности.

πŸ‘ πŸ‘ ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ

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

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

ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, модСль Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π½Π° самом Π΄Π΅Π»Π΅ являСтся ООП, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π» Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ, Алан КСй, Π³Π΄Π΅ Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ совмСстно, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ быстроС сравнСниС ΠΌΠ΅ΠΆΠ΄Ρƒ Эликсиром ΠΈ Π΅Π³ΠΎ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΊΡƒΠ·Π΅Π½ΠΎΠΌ Π“ΠΎ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Go, Elixir ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создавался для обСспСчСния отказоустойчивости. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Π° Π΄Π°Π΅Ρ‚ сбой, вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Go ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ . Π’ Elixir, ΠΊΠΎΠ³Π΄Π° ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚ процСсс, ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот СдинствСнный процСсс , Π½Π΅ затрагивая ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΡƒΠ΄Π°Π²ΡˆΠΈΠΉΡΡ процСсс Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡ‰Π΅Π½ супСрвизором. Π­Ρ‚ΠΎ позволяСт Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌΡƒ процСссу ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Elixir Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сотни тысяч процСссов Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС.

πŸ‘ πŸ‘ ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ сравнСниС с Go. ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΊΠ°ΠΊ Π² Go, Ρ‚Π°ΠΊ ΠΈ Π² Elixir ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ процСссами. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Go Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ машинС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Go компилируСтся Π² собствСнный ΠΊΠΎΠ΄.

Однако, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Go Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Elixir Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с нуля для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ….Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Erlang, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Elixir, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ распространСния ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Он Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ кластСризация, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ RPC ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π² сСти.

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

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Π±Π΅Π· слоТности Kubernetes? ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚ΠΎ, для Ρ‡Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Elixir.

πŸ‘ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

Elixir ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ошибок. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ чистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ языки (Haskell / Elm) ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ вСроятности ошибок, Elixir ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ошибок Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄ΡƒΡ‚.

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

πŸ‘Œ Усилия ΠΏΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ

Эликсир — это простой язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· мСсяц ΠΈΠ»ΠΈ Π΄Π²Π°. Π§Ρ‚ΠΎ нСсколько услоТняСт ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ это OTP.

OTP — убийствСнная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Эликсира. OTP — это Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Erlang, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… основан Elixir. Π­Ρ‚ΠΎ сСкрСтный соус, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ распрСдСлСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π₯отя сам Elixir довольно прост, рассмотрСниС OTP ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя — для мСня это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ сработало.

πŸ‘ Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ рСсурсы

Elixir, являясь самым популярным языком Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… рСсурсов. Π•ΡΡ‚ΡŒ дюТина Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Эликсиру ΠΎ ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… программистах. Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ рСсурсы ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

πŸ‘ БопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ

Эликсир ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сопоставлСния с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ.

πŸ‘Ž ΠŸΠΎΠ΄Π±ΠΎΡ€ чисСл

Elixir ΠΏΠ»ΠΎΡ…ΠΎ справляСтся с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов. ВмСсто этого для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ слСдуСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ язык с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ компиляции (Go / Rust — Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹).

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π° Π² Ρ‡Π΅ΠΌ Π΄Π΅Π»ΠΎ с Erlang?

По сути, Elixir ΠΈ Erlang ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ. Π­Ρ€Π»Π°Π½Π³ — ΠΌΠΎΡ‰Π½Ρ‹ΠΉ язык со странным синтаксисом. Elixir ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ приятный ΠΈ соврСмСнный синтаксис для Erlang (наряду с ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ экосистСмой ΠΈ сообщСством).

Π’Π΅Ρ€Π΄ΠΈΠΊΡ‚

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

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΠΌ ΠΎΠ± эликсирС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС.

Награды

Эликсир ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π²Π΅ Π½Π°Π³Ρ€Π°Π΄Ρ‹.

Π•Π³ΠΎ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π°Ρ экосистСма Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΌ языком для создания Π²Π΅Π±-API .

OTP ΠΈ модСль Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π΄Π΅Π»Π°ΡŽΡ‚ Elixir Π»ΡƒΡ‡ΡˆΠΈΠΌ языком для создания ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ распрСдСлСнного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния . Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ своСго ΠΊΡƒΠ·Π΅Π½Π° Go, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, написанноС Π½Π° Elixir, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ Π΄ΠΎ тысяч сСрвСров ΠΈ поставляСтся с ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ.

Π―Π·Ρ‹ΠΊ программирования Io | ΠšΠΎΠ΄Ρ‹ Бусидо

Π― Π½Π΅ являюсь Π΄Π°Π²Π½ΠΈΠΌ энтузиастом Ио. Π― всСго лишь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ-ΠΏΠΎΠ»ΠΈΠ³Π»ΠΎΡ‚, ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ языковым экосистСмам с чувством Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚ΡΡ‚Π²Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ эквивалСнтом путСводитСля Π ΠΈΠΊΠ° Бтивса: «БСмь языков Π·Π° сСмь нСдСль» Π‘Ρ€ΡŽΡΠ° А. Π’Π΅ΠΉΡ‚Π°. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… сообщСниях я рассказал ΠΎ своих ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ… для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠ» языки программирования Ruby ΠΈ COBOL.

Наша ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ остановка — это Io, малоизвСстный язык сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сочСтаСт Π² сСбС Π³ΠΎΠΌΠΎΠΈΠΊΠΎΠ½Π½ΠΎΡΡ‚ΡŒ LISP (вСсь ΠΊΠΎΠ΄ — это Π΄Π°Π½Π½Ρ‹Π΅) с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π° основС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈ простой модСлью ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний.Π₯отя Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС, ΠΎΠ½ дСмонстрируСт силу Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, основанного Π½Π° простых конструкциях. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Io — Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ ΠΏΠΎΠ½ΡΡ‚ΡŒ основы языков, основанных Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°Ρ… (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JavaScript), ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ ΡΡ‚Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ программистом.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΈ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ, ΠΏΠΎΠΊΠ° я ΠΈΠ·ΡƒΡ‡Π°ΡŽ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Prolog, Scala, Erlang, Clojure ΠΈ Haskell, ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° мСня Π² Twitter.

Π€ΠΎΠ½

МногиС программисты Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² своСй ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π·ΡƒΠ΄ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ абстракции, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ зависят, Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.Π’ 2002 Π³ΠΎΠ΄Ρƒ Π‘Ρ‚ΠΈΠ² Π”Π΅ΠΊΠΎΡ€Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Π³ΠΎ страстным ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ стал язык программирования Ио. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈΠ³Ρ€ΡƒΡˆΠ΅Ρ‡Π½ΠΎΠ³ΠΎ языка для изучСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, Π‘Ρ‚ΠΈΠ² ΠΏΠΎΠ½ΠΈΠΌΠ°Π» Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ языков программирования, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΅ΠΌΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π» большиС пСрспСктивы ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Он смСшал LISP, состоящий ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ части, с Smalltalk, состоящий ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ части, ΠΈ создал Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставил Π±ΠΎΡ‚Π°Π½ΠΈΠΊΠΎΠ² языка программирования ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ слюни.

Π‘Ρ‚ΠΈΠ² выпустил ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Io Π² Π°ΠΏΡ€Π΅Π»Π΅ 2002 Π³ΠΎΠ΄Π°, привлСкая сообщСство ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставили ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΈ эргономикС ΠΈ написали Π² Π±Π»ΠΎΠ³Π°Ρ… ΠΎΠ± этом языкС.Π’ 2005 Π³ΠΎΠ΄Ρƒ всплСск интСрСса Π²Ρ‹Π·Π²Π°Π»ΠΈ Π΄Π²Π° события. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π‘Ρ‚ΠΈΠ² ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ACM SIGPLAN, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ проСктирования. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²ΠΎ врСмя ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π½Π° RubyConf 2005 ΠœΠ°Ρ† (ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Ruby) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Ио ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рубисты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π² Π½Π°ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅ΠΌ Π³ΠΎΠ΄Ρƒ.

Будя ΠΏΠΎ ΡƒΡ‡Π°ΡΡ‚ΠΈΡŽ Π² Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… Ио, язык достиг ΠΏΠΈΠΊΠ° Π² 2005 Π³ΠΎΠ΄Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ постСпСнно сниТался Π΄ΠΎ 2008 Π³ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΉ Rubyist _why Π½Π°Ρ‡Π°Π» ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ± этом языкС Π² Π±Π»ΠΎΠ³Π΅.

Β«Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ самоанализ ΠΈ ΠΌΠ΅Ρ‚Π°-ΡƒΠ»ΠΎΠ²ΠΊΠΈ Ио ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΏΠΎΠ·ΠΎΡ€ΠΈΠ»ΠΈ Π ΡƒΠ±ΠΈ? Π’Π°ΠΌ, Π³Π΄Π΅ Π ΡƒΠ±ΠΈ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ ΡƒΡ‡ΠΈΠ»Π° Java, Ио Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡˆΠ΅Π».»~ _why

ВлияниС Ио Π½Π° сообщСство Ruby ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ»ΠΎ Π‘Ρ€ΡŽΡΠ° А. Π’Π΅ΠΉΡ‚Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот язык Π² свой БСмь языков Π·Π° сСмь нСдСль , Π½ΠΎ ΠΎΠ½ описал Π΅Π³ΠΎ ΠΊΠ°ΠΊ «самый ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ [ΠΎΠ½] Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»Β», ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ², Ρ‡Ρ‚ΠΎ это Π½Π΅ язык. коммСрчСски ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ, Π½ΠΎ Β«ΠΈΠΌΠ΅Π΅Ρ‚ шанс расти».

Π’ 2014 Π³ΠΎΠ΄Ρƒ энтузиасты Π½Π°Ρ‡Π°Π»ΠΈ ΠΌΠ΅Ρ‡Ρ‚Π°Ρ‚ΡŒ ΠΎ 2-ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ Ио Π½Π° доскС объявлСний Yahoo, Π½ΠΎ ΠΈΠ· этого Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹ΡˆΠ»ΠΎ, ΠΈ ΠΊ 2015 Π³ΠΎΠ΄Ρƒ язык, ΠΏΠΎΡ…ΠΎΠΆΠ΅, практичСски выровнялся.Π Π΅Π΄ΠΈΠ·Π°ΠΉΠ½ Π²Π΅Π±-сайта Π½Π° языкС Io Π²Ρ‹Π·Π²Π°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дискуссии Π² Hacker News, Π² Ρ‚ΠΎΠΌ числС мноТСство воспоминаний ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±Ρ‹Π»ΠΈ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ языка:

Как Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡŽΠ±ΠΈΡ‚ Ио, я ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽ ΠΊ ​​нСму Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

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

НСпСрСносимый способ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ Io — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ исчислСниС, ΠΊΠ°ΠΊ Lisp для лямбда-исчислСния. Π•ΡΡ‚ΡŒ части, Π³Π΄Π΅ эта аналогия Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ это Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ «.
~ Π‘ΠΌΠΎΡˆΠ΅Ρ€

Π’ этой Π²Π΅Ρ‚ΠΊΠ΅ Π‘Ρ‚ΠΈΠ² упомянул, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ Io Π½Π° JavaScript, Π½ΠΎ занят ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ.Он попросил ΠΏΠΎΠΌΠΎΡ‰ΠΈ с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ JavaScript, Π½ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚Π°. Если Π±Ρ‹ я Π±Ρ‹Π» Π½Π° мСстС Π‘Ρ‚ΠΈΠ²Π° Π² 2019 Π³ΠΎΠ΄Ρƒ, я Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π» ΠΎ пСрСносС Io Π½Π° WebAssembly. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ заинтСрСсован Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ со Π‘Ρ‚ΠΈΠ²ΠΎΠΌ Π² Twitter.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ио Π½Π΅ понял?

Π₯отя ΠΎΠ± этом слоТно Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»ΡΡ‚ΡŒ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π‘Ρ‚ΠΈΠ²Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Io, вСроятно, ΠΈΠ·ΠΎ всСх сил пытался ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с характСристиками ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Lua ΠΊΠ°ΠΊ простого встраиваСмого языка для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π· ΠΊΠΎΠ΄Π° C ΠΈΠ»ΠΈ C ++.

Β«Io ΠΈ Lua Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈ встраиваСмыС, Π½ΠΎ хотя Io Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Go (ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ), я ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Lua, вСроятно, самый быстрый язык сцСнариСв, ΠΈ LuaJIT ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ конкурСнтоспособным (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ быстрСС), Ρ‡Π΅ΠΌ систСмы сбора мусора Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ Go ΠΈ Java. ΠžΠ³Π»ΡΠ΄Ρ‹Π²Π°ΡΡΡŒ Π½Π°Π·Π°Π΄, ΠΌΠ½Π΅ Таль, Ρ‡Ρ‚ΠΎ я Π½Π΅ написал Io Π½Π° Lua Β». ~ Π‘Ρ‚ΠΈΠ²

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π‘Ρ‚ΠΈΠ² Ρ€Π΅ΡˆΠΈΠ» ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ дСцСнтрализованная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сообщСний Π½Π° основС WebrRTC Π² Π΄ΡƒΡ…Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° SOLID сэра Π’ΠΈΠΌΠ° БСрнСрса-Π›ΠΈ.Если Π±Ρ‹ Π‘Ρ‚ΠΈΠ² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Ио Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΎΠ½, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сохранил Π±Ρ‹ своС сообщСство энтузиастов, Π½ΠΎ, учитывая Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ разногласия ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй ΠΈ владСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ распрСдСляСт своС врСмя.

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ио

Учитывая ΡΠ·ΠΎΡ‚Π΅Ρ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ Io, Π½Π΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисов REPL, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… этот язык. Π― попытался Π΄ΠΎΠΊΠ΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС инструмСнты Io, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½ΠΎ, ΠΊ соТалСнию, столкнулся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ трудностями ΠΏΡ€ΠΈ установкС ΠΌΠΎΠ΅ΠΉ подсистСмы Windows для Linux.ВмСсто Docker я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСдниС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ ΠΌΠΎΠΈ шаги ΠΏΠΎ установкС Π² ΠΌΠΎΠ΅ΠΉ срСдС Π½Π° основС Debian:

  apt-get install wget unzip -y
mkdir ~ / Ρ‚Π΅ΠΌΠΏ
wget http://iobin.suspended-chord.info/linux/iobin-linux-x64-deb-current.zip - прСфикс-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ~ / temp
Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ~ / temp / iobin-linux-x64-deb-current.zip -d ~ / temp
dpkg -i ~ / temp / IoLanguage - *. deb  

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ссли Ρƒ вас Mac, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Homebrew, запустив brew install io .

ВпСчатлСния ΠΎΡ‚ языка

ВсС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ конструкция Io — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт слотов , Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

НовыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ клонирования ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ добавляСт ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π² слот proto .

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² слотах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

  ОписаниС транспортного срСдства: = "Π§Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ вас доставит"
ΠŸΡ€ΠΈΠ²ΠΎΠ΄ автомобиля: = ΠΌΠ΅Ρ‚ΠΎΠ΄ ("vroom" print Writeln)  

Π’ Io слоты Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΈ сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зарСгистрированы для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΡŽΠ±Ρ‹Ρ… сообщСний с ΠΈΠΌΠ΅Π½Π΅ΠΌ описаниС ΠΈΠ»ΠΈ диск .БообщСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ слСва ΠΎΡ‚ Π½ΠΈΡ… ΠΈ Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сообщСния print ΠΈ Writeln ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² строку "vroom"

.

  ОписаниС автомобиля
ΠŸΡ€ΠΈΠ²ΠΎΠ΄ автомобиля  

ВсС ΠΈΠΌΠ΅Π½Π° слотов ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slotNames

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

  ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ: = Клон автомобиля
porsche: = Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½
porsche slotNames
porsche Ρ‚ΠΈΠΏ  

Π˜Ρ‚Π°ΠΊ, porsche — это экзСмпляр Car, ΠΈ Π² Π½Π΅ΠΌ Π½Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… слотов.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ бСсполСзным, Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ³ΠΎ наслСдования porsche ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС повСдСния Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, транспортных срСдств ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ΅ наслСдованиС

Помимо ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… слотов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ слот ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Protos , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится список (массив), содСрТащий всС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ состояниС ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это список, Io ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС, Π° «прототипная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° наслСдования» Π½Π° самом Π΄Π΅Π»Π΅ являСтся Π½Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ, Π° Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ.

Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС, ΠΎΠ½ провСряСт Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ слоты Π½Π° соотвСтствиС. Если Π΅Π³ΠΎ Π½Π΅Ρ‚, ΠΎΠ½ запускаСт поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ для поиска ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ совпадСния. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ совпадСниС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ сообщСниС. Π­Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° для выполнСния поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ сущСствуСт Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π²ΠΏΠ΅Ρ€Π΅Π΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

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

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ пространством ΠΈΠΌΠ΅Π½ срСды выполнСния Ио являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Lobby , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Object Π² своСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ². Π›ΠΎΠ±Π±ΠΈ являСтся Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для сообщСний, ΠΊΠΎΠ³Π΄Π° Π½ΠΈ ΠΎΠ΄Π½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ явно, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  для (i, 1, 10, write (i, ""))  

БообщСния ΠΈ Π·Π²ΠΎΠ½ΠΊΠΈ

ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ сообщСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ слотами, ΠΈ Ρ‡Ρ‚ΠΎ эти слоты ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ наслСдования.Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ сами сообщСния.

На самом Π΄Π΅Π»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ сообщСниях, ΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π΄Π²ΡƒΡ… Π²Π΅Ρ‰Π°Ρ…: сообщСнии ΠΈ Π·Π²ΠΎΠ½ΠΊΠ΅. Π’ контСкстС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ письма сообщСниС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° письмо. Π’ Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ Β«Π”ΠΎΡ€ΠΎΠ³ΠΎΠΉ Π”ΠΆΠΎΠ½Β», ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ имя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ сообщСниС, ΠΈ основноС содСрТаниС сообщСния (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹). Π—Π²ΠΎΠ½ΠΎΠΊ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚. Он ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ сообщСниС ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ адрСс ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ адрСс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΡ‡Ρ‚Π°Π»ΡŒΠΎΠ½Ρƒ с доставкой.

So a Call ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ слоты:

  • ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ²ΡˆΠΈΠΉ сообщСниС
  • target — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отправляСтся сообщСниС
  • Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅

  • — сообщСниС, содСрТащССся Π² Π²Ρ‹Π·ΠΎΠ²Π΅

И сообщСниС ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ слоты:

  • name — Имя слота, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ пытаСмся ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ с
  • arguments — Бписок Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ

ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ это Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр KITT, Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ говорящСй ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠ· Knight Rider. KITT ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, скаТСм, Π½ΠΎ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ сообщСниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это сработало?

  kitt: = ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½
kitt say: = method (скаТСм, println)

ΠšΠΈΡ‚Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ("Π§Ρ‚ΠΎ Π±Ρ‹ Ρ‚Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ?")
kitt drive  

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ отправляСм Π² KITT, совпадаСт с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ KITT, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слотом . Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π²Ρ‹Π·ΠΎΠ² ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ сообщСниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  Π²Ρ‹Π·ΠΎΠ² отправитСля
Π²Ρ‹Π·ΠΎΠ² Ρ†Π΅Π»ΠΈ
имя сообщСния Π²Ρ‹Π·ΠΎΠ²Π°
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сообщСния Π²Ρ‹Π·ΠΎΠ²Π°  

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π² KITT, Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ локального слота диска , поэтому ΠΎΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ наслСдования ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Π΄ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Car .

  ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ Π·Π²ΠΎΠ½ΠΊΠ°: Β«Π’Π΅ΡΡ‚ΠΈΠ±ΡŽΠ»ΡŒΒ»
Π²Ρ‹Π·ΠΎΠ² Ρ†Π΅Π»ΠΈ: "ΠšΠΈΡ‚Ρ‚"
Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сообщСния Π²Ρ‹Π·ΠΎΠ²Π°: "drive"
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сообщСния Π²Ρ‹Π·ΠΎΠ²Π°: List ()  

Учитывая, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈ сообщСния — это просто ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ слоты с состояниями ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ — это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основы, Π½ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для отраТСния сообщСний Π±Π΅Π· нСобходимости Π·Π½Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ синтаксис.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π’ Io ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ — это Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² слотах. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ method () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сущСствуСт ΠΊΠ°ΠΊ слот Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. method () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π³Π΄Π΅ всС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ опрСдСляСмой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ опрСдСляСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π±Π»ΠΎΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. НСявно возвращаСтся послСднСС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ°.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π΅ объявляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ явно, поэтому ΠΎΠ½ добавляСтся ΠΊΠ°ΠΊ слот Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Lobby , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ составляСт глобальноС пространство ΠΈΠΌΠ΅Π½.

  Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ + Π²Ρ‚ΠΎΡ€ΠΎΠΉ)  

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ locals , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. locals ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π΅Π»ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слота self . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ porsche drive , ΠΌΡ‹ отправляСм сообщСниС с ΠΈΠΌΠ΅Π½Π΅ΠΌ drive Ρ†Π΅Π»Π΅Π²ΠΎΠΌΡƒ porsche . НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Vehicle , Π² locals ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ self установлСн Π½Π° porsche.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ сопрограмм

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Io Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ получатСлям, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ оказываСтся довольно простым.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ прСфикса @ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ прСфикса @@ отправляСт сообщСниС для выполнСния Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅.

Запуск этого

  odd: = ΠΊΠ»ΠΎΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  1 ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ
  ΡƒΡ€ΠΎΠΆΠ°ΠΉ
  3 ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ
  ΡƒΡ€ΠΎΠΆΠ°ΠΉ
)

Π΄Π°ΠΆΠ΅: = ΠΊΠ»ΠΎΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  ΡƒΡ€ΠΎΠΆΠ°ΠΉ
  2 ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ
  ΡƒΡ€ΠΎΠΆΠ°ΠΉ
  4 ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ
)

Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа
Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа

Coroutine currentCoroutine pause  

Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  io coroutine.io
1
2
3
4
ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ: Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ для возобновлСния, поэтому ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ·  

Чистый Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠ°Ρ хакСрская ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ

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

Π― ΠΌΠΎΠ³Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° XOR с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ эмодзи:

  OperatorTable addOperator ("🀣", 11)
OperatorTable println
истина 🀣: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (Π±ΡƒΠ»Π΅Π²ΠΎ, Ссли (Π±ΡƒΠ»Π΅Π²ΠΎ, лоТь, истина))
false 🀣: = method (bool, if (bool, true, false))

ΠΏΡ€Π°Π²Π΄Π° 🀣 ΠΏΡ€Π°Π²Π΄Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ
ΠΏΡ€Π°Π²Π΄Π° 🀣 лоТь ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ  

Или я ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ JSON, содСрТащий Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π°, Π² Io Maps, сдСлав : ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ:

  {
  "Π‘ΠΎΠ± Π‘ΠΌΠΈΡ‚": "5195551212",
  "ΠœΡΡ€ΠΈ Уолш": "4162223434"
}  
 
OperatorTable addAssignOperator (":", "atPutNumber")


ΠšΠ°Ρ€Ρ‚Π° atPutNumber: = method (
  я atPut (
    Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ evalArgAt (0) asMutable removePrefix ("\" ") removeSuffix (" \ ""),
    Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ evalArgAt (1)
  )
)


curlyBrackets: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  Writeln ("Π Π°Π·Π±ΠΎΡ€ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок")
  r: = ΠΊΠ»ΠΎΠ½ ΠΊΠ°Ρ€Ρ‚Ρ‹
  Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сообщСния foreach (arg,
    Writeln ("АргумСнт:", Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
    r doMessage (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
  )
  Ρ€
)

s: = Π€Π°ΠΉΠ» с ("Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ.json ") содСрТимоС openForReading

phoneNumbers: = doString (s)

phoneNumbers ΠΊΠ»ΡŽΡ‡ΠΈ println
phoneNumbers значСния println  

Или я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΉΡ‚ΠΈ дальшС ΠΈ Π·Π°Ρ‚Π΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΏΠ΅Ρ€Π΅Π΄ , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ³ΠΎ наслСдования, ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ компилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΌΠ½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡƒΠ·Π»Ρ‹ DOM с использованиСм синтаксиса, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ LISP:

Π’Π²ΠΎΠ΄:

  body ({"onfocus": "f () {}", "onredo": "g () {}"},
  Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (
    h2 ("Моя Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Π±-страница")
  ),
  ΡƒΠ» (
    ли ("Ио"),
    Π»ΠΈ ("Π›ΡƒΠ°"),
    li ("JavaScript")
  ),
  список («Ио», «Lua», «JavaScript»)
)  

Π’Ρ‹Ρ…ΠΎΠ΄:

  
  <Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ>
    

содСрТаниС

  • содСрТаниС
  • содСрТаниС
  • содСрТаниС
  • Ио
  • Lua
  • JavaScript

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

  OperatorTable addAssignOperator (":", "atPutPair");

ΠŸΠ ΠžΠ‘Π•Π›_ΠŸΠ•Π _Π˜ΠΠ”Π•ΠΠ’: = 4

SGMLBuilder: = Клон ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
SGMLBuilder indentCount: = 0

SGMLBuilder atPutPair: = method (k, v,
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚: = Map clone ();
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ atPut ("k", k);
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ atPut ("v", v);
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚);
);



SGMLBuilder curlyBrackets: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹: = список ();
    Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сообщСния foreach (attributePair, (
      ΠΏΠ°Ρ€Π°: = doString (attributePair asString ())
      Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (ΠΏΠ°Ρ€Π°)
    ));
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹;
);

ΠžΡ‚ΡΡ‚ΡƒΠΏ SGMLBuilder: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  write ("" повторяСтся (self indentCount * SPACES_PER_INDENT))
)

SGMLBuilder writeTag: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ
  Writeln ("<", Π²Ρ‹Π·ΠΎΠ² отправитСля doMessage (сообщСниС Π²Ρ‹Π·ΠΎΠ²Π° argAt (0)), ">")
)

SGMLBuilder openTag: = method (tagName, attributes, (
  ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ
  write ("<", Π²Ρ‹Π·ΠΎΠ² отправитСля doMessage (сообщСниС Π²Ρ‹Π·ΠΎΠ²Π° argAt (0)))
  Ссли (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹! = ноль, (
    Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ(" ")
    write (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ join (""))
  ))
  Writeln (">")
  self indentCount = self indentCount + 1
))

SGMLBuilder closeTag: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  self indentCount = self indentCount - 1
  ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ
  Writeln ("")
)

SGMLBuilder writeText: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ
  Writeln (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ сообщСния Π²Ρ‹Π·ΠΎΠ²Π° (0))
)

SGMLBuilder writeList: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  openTag ("ΡƒΠ»")
  Π²Ρ‹Π·ΠΎΠ² отправитСля doMessage (сообщСниС Π²Ρ‹Π·ΠΎΠ²Π° argAt (0)) foreach (arg, (
    openTag ("Π»ΠΈ")
    ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ
    Writeln (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
    closeTag ("Π»ΠΈ")
  ))
  self indentCount = self indentCount -1
  ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ
  Writeln ("")
)

SGMLBuilder hasAttributes: = method (targetMessage, (
 targetMessage Π² (0) asString () findSeq ("curlyBrackets") == 0
))






SGMLBuilder Π²ΠΏΠ΅Ρ€Π΅Π΄: = ΠΌΠ΅Ρ‚ΠΎΠ΄ (
  missingMethod: = Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сообщСния Π²Ρ‹Π·ΠΎΠ²Π°
  missingMethodArgs: = Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сообщСниС () arguments ()

  if (self hasAttributes (missingMethodArgs), (
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹: = missingMethodArgs removeFirst ();
    attributeList: = self doMessage (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹);
    attributeStrings: = attributesList map (attr, (
      ΠΊΠ»ΡŽΡ‡: = attr at ("k") asMutable removePrefix ("\" ") removeSuffix (" \ "");
      Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: = ("\" ".. (attr at ("v")) .. "\" ");
      Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: = ΠΊΠ»ΡŽΡ‡ .. "=" .. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;
      Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚;
    ))
    openTag (missingMethod, attributeStrings)
  ),
    openTag (missingMethod)
  )

  missingMethodArgs foreach (
    Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚,
    
    
    content: = self doMessage (arg);
    
    
    Ссли (содСрТаниС! = ноль), Ρ‚ΠΎ (
      if (content type == "Sequence") then (
        self writeText (ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚)
      ) elseif (Ρ‚ΠΈΠΏ содСрТимого == "Бписок"), Π·Π°Ρ‚Π΅ΠΌ (
        self writeList (ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚)
      ) Π΅Ρ‰Π΅ (
        Writeln ("НСизвСстноС содСрТаниС:", содСрТаниС)
      )
    )
  )
  closeTag (missingMethod)
)

SGMLBuilder body ({"onfocus": "f () {}", "onredo": "g () {}"},
  Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (
    h2 ("Моя Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Π±-страница")
  ),
  ΡƒΠ» (
    ли ("Ио"),
    Π»ΠΈ ("Π›ΡƒΠ°"),
    li ("JavaScript")
  ),
  список («Ио», «Lua», «JavaScript»)
)  

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GitHub.

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

Io ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Volkswagen Beetle 1960-Ρ… Π³ΠΎΠ΄ΠΎΠ². Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ энтузиастом ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ энтузиастам Π·Π°Π»Π΅Π·Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ ΠΈ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ Π³Π»ΠΎΡ‚ΠΎΠΊ свСТСго Π²ΠΎΠ·Π΄ΡƒΡ…Π°, учитывая, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ большиС языки ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° соврСмСнныС Ρ€ΠΎΡΠΊΠΎΡˆΠ½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.

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

Π’ сторону: Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ языки программирования?

Π― Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ создавал язык программирования, Π½ΠΎ я Ρ€Π°Π·Π΄Π΅Π»ΡΡŽ интСрСсы Π‘Ρ‚ΠΈΠ²Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π» нСбольшоС исслСдованиС рСсурсов для изучСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ компиляторов. Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ склонСн ΠΊ ΡƒΡ‡Π΅Π±Π΅, ΠΊΠ½ΠΈΠ³Π° Π”Ρ€Π°ΠΊΠΎΠ½Π° каТСтся Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ акадСмичСским ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠΌ Π² космосС.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ программисты ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ «НаписаниС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π½Π° GoΒ» ΠΈ «НаписаниС компилятора Π½Π° GoΒ» ВорстСна Π‘ΠΎΠ»Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ «раскраски ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΒ» для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка программирования Monkey.

НаконСц, для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ интСрСсуСтся языками систСмного программирования ΠΈ связанными с Π½ΠΈΠΌΠΈ концСпциями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, языки ассСмблСра, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ Ρ‚. Π”., ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΊΠ½ΠΈΠ³ΠΎΠΉ Ноама Нисана ΠΈ Π¨ΠΈΠΌΠΎΠ½Π° Π¨ΠΎΠΊΠ΅Π½Π° Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм». Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΡ‚ вас ΠΎΡ‚ создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… шлюзов NAND Π΄ΠΎ написания тСтриса Π½Π° языкС программирования Jack.

Π― Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ эти ΠΊΠ½ΠΈΠ³ΠΈ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ сообщСний Π² Π±Π»ΠΎΠ³Π°Ρ….

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ IO-ссылки

RabbitMQ Β»Π―Π·Ρ‹ΠΊΠΈ программирования — ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями

AtomizeJS — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript для написания распрСдСлСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π±Π΅Π· нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния Π½Π° сСрвСрС.

Π—Π΄Π΅ΡΡŒ, Π² RabbitMQ HQ, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ довольно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² спорах. Иногда Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями , ΠΈ ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для достиТСния ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями .RabbitMQ ΠΈ AMQP ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΡ‡Π΅Π½ΡŒ явный интСрфСйс для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями: Ρƒ вас ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π³Π»Π°Π³ΠΎΠ»ΠΎΠ² ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ , ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ваши ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ происходит ΠΌΠ½ΠΎΠ³ΠΎ (часто довольно ΡƒΠΌΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ), Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, интСрфСйс довольно Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΈ явный, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ гибкости. Иногда, ΠΎΠ΄Π½Π°ΠΊΠΎ, этот ΡΡ‚ΠΈΠ»ΡŒ API Π½Π΅ самый СстСствСнный для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ Π²Ρ‹ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² Ρ‚ΡƒΠΏΠΈΠΊ ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅: «МнС Π½ΡƒΠΆΠ΅Π½ Π±Ρ€ΠΎΠΊΠ΅Ρ€ AMQP-сообщСний», ΠΈΠ»ΠΈ Π²Ρ‹ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅? -ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ знания, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Ρ€ΠΎΠΊΠ΅Ρ€ AMQP-сообщСний для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹?

AtomizeJS сущСствуСт Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ спСктра.Π—Π΄Π΅ΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎ сообщСний, Π½ΠΎ Π²Ρ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΈΡ… Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅. ВмСсто этого Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈ эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ всСми ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ сСрвСру AtomizeJS. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡ‹ΠΉ Π²Π°ΠΌ API позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ, ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π² частности, retry позволяСт ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ автоматичСски, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Ρ‚Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ шаблон Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ, ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ явныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв я сомнСваюсь, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ API-интСрфСйсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ говорят, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ , вмСсто этого Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ³Π°Ρ‚Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… — Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΎΠ±Ρ‰ΠΈΠ΅ словари ΠΈ Ρ‚. Π”. Π’ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: ΠΏΡ€ΠΎΡ‰Π΅ Π»ΠΈ для создания этих Π²Π΅Ρ‰Π΅ΠΉ Π½Π° основС API-интСрфСйса, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ транзакциям, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ AtomizeJS, ΠΈΠ»ΠΈ Π½Π° основС API-интСрфСйса явного ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°ΠΌΠΈ RabbitMQ ΠΈ AMQP.НС сущСствуСт Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, лошадСй Π·Π° курсы ΠΈ Ρ‚. Π”., Но, поТалуйста, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ свои мысли Π½ΠΈΠΆΠ΅.

Π’Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт AtomizeJS, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π² использовании STM ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, сколько Π² использовании STM ΠΏΡ€ΠΎΡ‚ΠΈΠ² распрСдСлСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ позволяСт Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ состояниСм ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, бСзопасно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятных Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои прилоТСния с нСбольшим количСством ΠΈΠ»ΠΈ Π±Π΅Π· ΠΊΠΎΠ΄Π° Π½Π° сторонС сСрвСра, спСцифичного для прилоТСния. Π’ настоящСС врСмя Π΅Π³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript (хотя я прСдоставил Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΌΡΠ³Ρ‡ΠΈΡ‚ΡŒ это), ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с послСдними вСрсиями Chrome, Firefox, IE, Safari ΠΈ Opera.ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π΄Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅!

LCM: Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

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

КаТдоС сообщСниС отправляСтся ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ идСнтифицируСтся ΠΏΠΎ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ.НапримСр, сообщСния, содСрТащиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π² ΠΊΠΎΡ€ΠΈΠ΄ΠΎΡ€Π΅, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Π½Π° ΠΊΠ°Π½Π°Π»Π΅ Β«HALLWAY_TEMPERATUREΒ». По соглашСнию всС сообщСния Π½Π° ΠΊΠ°Π½Π°Π»Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ.

Π›ΡŽΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π° любом ΠΊΠ°Π½Π°Π»Π΅, хотя ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ слуТит СдинствСнным источником Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ°Π½Π°Π»Π΅. Π›ΡŽΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСрмостата ΠΈ рСгистратор Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π» Β«HALLWAY_TEMPERATUREΒ».

Π­Ρ‚ΠΎ руководство ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· основныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ двумя прилоТСниями:

  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ опрСдСлСния Ρ‚ΠΈΠΏΠ°
  2. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ LCM Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
  3. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСниС
  4. ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ зависят ΠΎΡ‚ языка, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² для всСх языков программирования.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ шаги Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ языка программирования, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… языках программирования.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ C ΠΈ C ++ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ языками программирования. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ привязки C ΠΈΠ· C ++, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ привязки LCM, спСцифичныС для C ++.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, для ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² потрСбуСтся систСма сборки. Π‘Π°ΠΌ LCM построСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CMake ΠΈ прСдоставляСт Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для упрощСния процСсса создания привязки для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², созданных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CMake.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с исходным ΠΊΠΎΠ΄ΠΎΠΌ LCM.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка прСдставлСно Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².Один ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ сообщСниС, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ сообщСниС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ LCM ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² example_t.lcm ( examples / types / example_t.lcm Π² исходном дистрибутивС).

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ с исходным ΠΊΠΎΠ΄ΠΎΠΌ LCM Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ examples / .

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C ++

Π‘ΠžΠ”Π•Π Π–ΠΠΠ˜Π• :

  1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  2. Класс
  3. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
  4. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ
  5. Абстракция
  6. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ
  7. НаслСдованиС
  8. ДинамичСскоС связываниС
  9. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ пСрСдаСтся

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

Π₯арактСристики языка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

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

НапримСр: рассмотрим класс Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ названиями ΠΈ ΠΌΠ°Ρ€ΠΊΠ°ΠΌΠΈ, Π½ΠΎ всС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ 4 колСса, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡ€ΠΎΠ±Π΅Π³Π° ΠΈ Ρ‚. Π”. Π˜Ρ‚Π°ΠΊ, здСсь Car — это класс, Π° колСса, ограничСния скорости, ΠΏΡ€ΠΎΠ±Π΅Π³ — это ΠΈΡ… свойства.

  • Класс — это опрСдСляСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹.
  • Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… — это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ — это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для управлСния этими ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΈ вмСстС эти элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² классС.
  • Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ класса Car элСмСнтом Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости, ΠΏΡ€ΠΎΠ±Π΅Π³ ΠΈ Ρ‚. Π”., А Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚. Π”.

МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ класс Π² C ++ — это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚: ΠžΠ±ΡŠΠ΅ΠΊΡ‚ — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ характСристиками ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ — это экзСмпляр класса. Когда класс ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ выдСляСтся, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ создаСтся (Ρ‚.Π΅. создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ.

класс Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ

{

char Π½Π°Π·Π²Π°Π½ΠΈΠ΅ [20];

Π²Π½ΡƒΡ‚Ρ€ id;

общСствСнный :

void getdetails () {}

};

Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ основной ()

{

Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ p1;

}

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСсто Π² памяти ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ связанный адрСс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ запись Π² паскалС ΠΈΠ»ΠΈ структуру ΠΈΠ»ΠΈ объСдинСниС Π² C.

Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚, отправляя сообщСния Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ.

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

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ : ΠžΠ±Ρ‹Ρ‡Π½ΠΎ инкапсуляция опрСдСляСтся ΠΊΠ°ΠΊ объСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ инкапсуляция опрСдСляСтся ΠΊΠ°ΠΊ связываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚.

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

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Π² C ++

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

Абстракция : Абстракция Π΄Π°Π½Π½Ρ‹Ρ… — ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ сущСствСнных ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° C ++. Абстракция ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ скрытиС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. Абстракция Π΄Π°Π½Π½Ρ‹Ρ… относится ΠΊ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΌΠΈΡ€Ρƒ, скрывая Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΌ.Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π·Π½Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° пСдаль аксСлСратора ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ автомобиля ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° пСдаль Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π° остановит ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° пСдаль Π³Π°Π·Π° Π½Π° самом Π΄Π΅Π»Π΅ увСличиваСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΎΠ½ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ автомобиля ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ аксСлСратора, Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠ² ΠΈ Ρ‚Π΄ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ абстракция.

  • Абстракция с использованиСм классов : ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π½Π° C ++ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ классов. Класс ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ доступных спСцификаторов доступа.Класс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‡Π»Π΅Π½ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π΅Π½ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΌΠΈΡ€Ρƒ, Π° ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Ρ‚.
  • Абстракция Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² : Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ абстракции Π² C ++ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². НапримСр, рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄ pow (), ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ math.h. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ числа, ΠΌΡ‹ просто Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ pow (), ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° math.h, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ числа Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π΅ зная Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ функция фактичСски вычисляСт ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ чисСл. .

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ: Π‘Π»ΠΎΠ²ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ мноТСства Ρ„ΠΎΡ€ΠΌ. ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΊΠ°ΠΊ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сообщСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ характСристики. Как ΠΌΡƒΠΆΡ‡ΠΈΠ½Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ — это ΠΎΡ‚Π΅Ρ†, ΠΌΡƒΠΆ, слуТащий. Π˜Ρ‚Π°ΠΊ, ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ситуациях. Π­Ρ‚ΠΎ называСтся ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ.

Π’ Ρ€Π°Π·Π½Ρ‹Ρ… случаях опСрация ΠΌΠΎΠΆΠ΅Ρ‚ вСсти сСбя ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.ПовСдСниС зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

C ++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ : ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для слоТСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ 2 Ρ†Π΅Π»Ρ‹Ρ… числа, ΠΈΠ½ΠΎΠ³Π΄Π° 3 Ρ†Π΅Π»Ρ‹Ρ… числа. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ слоТСния с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² соотвСтствии с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

НаслСдованиС : Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ класса ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ свойства ΠΈ характСристики ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса называСтся наслСдованиСм. НаслСдованиС — ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

  • Подкласс : класс, Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ свойства ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса, называСтся подклассом ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ классом.
  • БупСркласс : Класс, свойства ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ подклассом, называСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом ΠΈΠ»ΠΈ супСрклассом.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования : НаслСдованиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ «возмоТности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования», Ρ‚.Π΅. ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΈ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ наш Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса.ДСлая это, ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ : Dog, Cat, Cow ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ классом ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Animal.

ДинамичСскоС связываниС: ΠŸΡ€ΠΈ динамичСском связывании ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, опрСдСляСтся Π²ΠΎ врСмя выполнСния. Π’ C ++ Π΅ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этого.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний: ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, отправляя ΠΈ получая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ.Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° — это запрос Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, которая Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°.

Π‘Ρ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ :

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдоставлСна ​​ Ванкаяла ΠšΠ°Ρ€ΡƒΠ½Π°ΠΊΠ°Ρ€ . ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, обсуТдСнной Π²Ρ‹ΡˆΠ΅.

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

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка программирования smalltalk

НСт подкласса. [15] [16] Алан КСй (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Smalltalk) Ρ‚Π°ΠΊΠΆΠ΅ описал ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π½Π°Π·Π²Π°Π» Dynabook, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ соврСмСнныС ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ iPad.Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Smalltalk ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. [31], ΠΎΠ±Ρ€Π°Π·Ρ‹ Smalltalk ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° (пСрСзапускаСмыС) Π΄Π°ΠΌΠΏΡ‹ ядра ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Π°ΠΌΠΏΡ‹ ядра, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, отлоТСнная ΠΈΠ»ΠΈ удалСнная ΠΎΡ‚Π»Π°Π΄ΠΊΠ° с ΠΏΠΎΠ»Π½Ρ‹ΠΌ доступом ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ошибки. НапримСр, VisualWorks ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Squeak ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ»Π° ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. БистСма Smalltalk Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° сама ΠΏΠΎ сСбС: компилятор, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, инструмСнты программирования ΠΈ Ρ‚. Π”. — всС это ΠΊΠΎΠ΄ Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.Seaside Π²Ρ‹Π·Π²Π°Π»Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Ρ‹Π½ΠΎΡ‡Π½Ρ‹ΠΉ интСрСс: Cincom, Gemstone ΠΈ Instantiations Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΈ Π΅Π³ΠΎ. Smalltalk-80 обСспСчиваСт ΠΊΠ°ΠΊ структурноС, Ρ‚Π°ΠΊ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠœΠ΅Ρ‚Π°ΠΊΠ»Π°ΡΡΡ‹, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΈ всС ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ экзСмплярами класса, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠœΠ΅Ρ‚Π°ΠΊΠ»Π°ΡΡΠΎΠΌ. Smalltalk Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ языковым инструмСнтом, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Β«ΠΆΠΈΠ²ΠΎΠ΅Β» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π»Π΅Ρ‚Ρƒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя выполнСния. Π‘ΠΎΠ·Π΄Π°Π² класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ (Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ doesNotUnderstand :, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ любоС сообщСниС, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ doesNotUnderstand:.Π―Π·Ρ‹ΠΊ программирования Smalltalk ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ синтаксис ΠΈ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ сСмантику выполнСния. интСрпрСтируСтся. Π’ 1995 Π³ΠΎΠ΄Ρƒ ParcPlace ΠΈ Digitalk объСдинились Π² ParcPlace-Digitalk, Π° Π·Π°Ρ‚Π΅ΠΌ Π² 1997 Π³ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π² ObjectShare, располоТСнный Π² Π˜Ρ€Π²ΠΈΠ½Π΅, ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΡ. Smalltalk — основа высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π”Π°ΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний. ЀактичСски классы — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π‘ Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Seaside ΠΈ AIDA, Squeak ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Π±-сСрвСром. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ основными ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ наслСдованиС, иСрархия классов ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.Smalltalk Π±Ρ‹Π» создан ΠΊΠ°ΠΊ язык, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² основС Β«Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°Β» вычислСний, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся «симбиоз Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β». PHP — 12 697 11. Bistro — это Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Smalltalk, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ²Π΅Ρ€Ρ… любой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java (Π’Πœ), ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ спСцификациям Sun Java. Smalltalk-80 — это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π°Ρ систСма, рСализованная Π² Smalltalk-80. Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ»ΠΈ скомпилированныС) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ состояниС всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎ врСмя синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° / компиляции ΠΈ доступны ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.Как ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках, Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ понятиС Π² Smalltalk-80 (Π½ΠΎ Π½Π΅ Π² Smalltalk-72) — это понятиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. для отобраТСния Π² ΠΎΠΊΠ½Π΅ стСнограммы («Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°»). Π―Π·Ρ‹ΠΊ программирования Smalltalk ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ синтаксис ΠΈ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ сСмантику выполнСния. Π’ ΠΎΠ΄Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ полосок ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: индСкс ΠΈ гласныС. БистСма Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π·Π° счСт запуска ΠΊΠΎΠ΄Π° Smalltalk-80, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΈΠ»ΠΈ опрСдСляСт классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ 23, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки для явного опрСдСлСния порядка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ сообщСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, записывая ΠΈΡ… ΠΎΠ΄Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ: Ρ‡Ρ‚ΠΎ отправляСт Β«Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Β» Π½Π° 3, Π° Π·Π°Ρ‚Π΅ΠΌ Β«Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Β» Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (6) , Π·Π°Ρ‚Π΅ΠΌ Β«Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅Β» Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (720), ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 2.85733. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Smalltalk ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ проста Π² написании. НапримСр, сообщСниС select: on a Collection эквивалСнтно Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€Π΅ [28]. Π‘Π°Π·Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Π΄Π²ΠΎΠΉΠΊΠΈ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 36rSMALLTALK — допустимоС число, Ρ€Π°Π²Π½ΠΎΠ΅ 80738163270632 Π² дСсятичной систСмС. ПослС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ аспСкты сСмантики выполнСния для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π·Π° счСт принятия ΠΌΠΎΠ΄Π΅Π»ΠΈ исполнСния с наслСдованиСм классов, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Simula), Π±Ρ‹Π» создан Smalltalk-76.ΠžΠ±ΡŠΠ΅ΠΊΡ‚ всСгда являСтся экзСмпляром класса. Objective-C — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСт ΠΎΠ±ΠΌΠ΅Π½ сообщСниями Π² стилС Smalltalk ΠΊ языку программирования C. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для симуляций ΠΈΠ»ΠΈ ΠΈΠ³Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… базовая модСль ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΡƒΠ³Π»Π°ΠΌΠΈ ΠΈ уровнями абстракции. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ прСдставляСт собой Π²Π²ΠΎΠ΄Π½Ρ‹ΠΉ курс ΠΏΠΎ языку Smalltalk Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Smalltalk GNU Π² частности. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Smalltalk стал общСдоступным Π² 1980 Π³ΠΎΠ΄Ρƒ с выпуском Smalltalk-80 вСрсии 1, которая… ЕдинствСнными встроСнными языковыми конструкциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².Π˜Ρ… взаимодСйствиС часто каТСтся ΠΏΠΎΡ‡Ρ‚ΠΈ спонтанным, ΠΈ каТСтся, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ Ρ€Π°Π²Π½Ρ‹ Π±Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ (ΠΏΡƒΡ‚Π΅ΠΌ создания подклассов) классы, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния, Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ для ΠΈΡ… экзСмпляров ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… структур управлСния — ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. ВмСсто этого ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ сообщСния, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ Ρ€Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉΡΡ Ρ„Ρ€Π°Π·Π΅ Β«Π’ Smalltalk всС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌΒ», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ «всС значСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈΒ», Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ — Π½Π΅Ρ‚.ObjectShare (NASDAQ: OBJS) торговался ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π΄ΠΎ 1999 Π³ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±Ρ‹Π» ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ· листинга ΠΈ Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Π½. БистСма Smalltalk Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° сама ΠΏΠΎ сСбС: компилятор, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, инструмСнты программирования ΠΈ Ρ‚. Π”. — всС это ΠΊΠΎΠ΄ Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡ ΠΈΠΌ Π·Π½Π°ΠΊΠΎΠΌ Π΄ΠΎΠ»Π»Π°Ρ€Π°: Π‘Ρ‚Ρ€ΠΎΠΊΠΈ — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ: Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π² строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ: Π”Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² экранировании, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ строку: Π”Π²Π΅ Ρ€Π°Π²Π½Ρ‹Π΅ строки (строки Ρ€Π°Π²Π½Ρ‹, Ссли ΠΎΠ½ΠΈ содСрТат всС ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ символы) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, находящимися Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах памяти.Однако для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы программирования Smalltalk трСбуСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ просто ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°. Π’ Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² Алан КСй Π²ΠΎΠ·Π³Π»Π°Π²ΠΈΠ» Π³Ρ€ΡƒΠΏΠΏΡƒ исслСдоватСлСй Π² Xerox, Ρ‡Ρ‚ΠΎΠ±Ρ‹ изобрСсти язык, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ программистам ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π²Π°Π»ΠΈΡΡŒ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сообщСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: Β«Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Β» Π²Ρ‹ΡˆΠ΅ называСтся ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌ сообщСниСм, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ задСйствован Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ. ANSI Smalltalk Π±Ρ‹Π» Ρ€Π°Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ Π² 1998 Π³ΠΎΠ΄Ρƒ ΠΈ прСдставляСт собой ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Smalltalk.ΠŸΠ΅Ρ€Π²Π°Ρ вСрсия, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ°Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Smalltalk-71, Π±Ρ‹Π»Π° создана КСй Π·Π° нСсколько ΡƒΡ‚Ρ€Π°, сдСлав ставку Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ язык программирования, основанный Π½Π° ΠΈΠ΄Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Simula, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° «страницС ΠΊΠΎΠ΄Π°Β». ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°: 1. Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° «show:» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ символы Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» ‘Hello, world!’). Π―Π·Ρ‹ΠΊ программирования Smalltalk ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ синтаксис ΠΈ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ сСмантику выполнСния. Go — 12 697 9. ANSI Smalltalk являСтся стандартным справочником ΠΏΠΎ языку с 1998 Π³ΠΎΠ΄Π°.ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ языка, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры для условной ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… встроСнных конструкций стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ классов Smalltalk. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ сохранСния являСтся ΠΌΠΎΡ‰Π½Ρ‹ΠΌ срСдством для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вся информация ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bistro — это Π½ΠΎΠ²Ρ‹ΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Smalltalk ΠΈ Java. Но, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Ρ€ΠΈ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π²Ρ‹Π΄Π΅Π»ΠΈΠ» (Smalltalk, Modula-2 ΠΈ Prolog), Π±Ρ‹Π»ΠΈ просто слишком отличаСтся ΠΎΡ‚ языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ стали Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΈΡ€Π΅ программирования.Π­Ρ‚ΠΎ достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок: Π“Π΄Π΅: params — это список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. ΠœΡ‹ сосрСдоточСны Π½Π° языкС программирования Smalltalk, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΠΎΡ‡Π΅Π½ΡŒ ваТная Ρ‚ΠΎΡ‡ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠ΅Π½ΠΈ сообщСния. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рСализациях синтаксис языка ΠΈΠ»ΠΈ рСализация сборки мусора Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° Π»Π΅Ρ‚Ρƒ. [11] Smalltalk Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π²Π»ΠΈΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… языков программирования. Π˜Ρ‚Π°ΠΊ, if-then-else Π² Smalltalk написано ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ: ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это связано с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ вычислСний (здСсь Π²Ρ‹Π±ΠΎΡ€) Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ высокого порядка.Богласно ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, сначала отправляСтся ΡƒΠ½Π°Ρ€Π½ΠΎΠ΅ сообщСниС Β«Π½ΠΎΠ²ΠΎΠ΅Β», Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΎΡ‚Π²Π΅Ρ‚ Β«Π½ΠΎΠ²Ρ‹ΠΉΒ» ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Β«label:Β» ΠΈ Β«openΒ». VisualWorks являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ Smalltalk-80 вСрсии 2 посрСдством Smalltalk-80 2.5 ΠΈ ObjectWorks (ΠΎΠ±Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ParcPlace Systems, Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Xerox PARC, созданной для Π²Ρ‹Π²ΠΎΠ΄Π° Smalltalk Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ). Π‘Π»ΠΎΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ опрСдСляСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ структур управлСния, счСтчиков, посСтитСлСй, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ повСдСния ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… шаблонов. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ популярных систСм программирования ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ статичСский ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ классов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€) ΠΎΡ‚ динамичСского ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹).ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚, обмСниваясь сообщСниями для достиТСния ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ повСдСния прилоТСния. ΠŸΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ (ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния Β«Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉΒ») Π±Π»ΠΎΠΊ Π²Ρ‹Π±ΠΎΡ€Π° (Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«aBlockΒ» ΠΈ опрСдСляСтся Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ Π±Π»ΠΎΠΊΠ° Β«[: aCharacter | aCharacter isVowel]Β») ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Β«ifTrue:Β». Smalltalk / X — это полная рСализация языка программирования Smalltalk с ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ классов ΠΈ графичСской срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. РСализация open Squeak ΠΈΠΌΠ΅Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π² Ρ‚ΠΎΠΌ числС ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ сообщСства Smalltalk, ΠΈ Π½Π΅Π΄Π°Π²Π½ΠΎ использовалась для прСдоставлСния срСды Etoys Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ OLPC, инструмСнтария для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ совмСстных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Croquet Project ΠΈ прилоТСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° Open Cobalt. .Easel прСдставила Enfin Π² это врСмя для Windows ΠΈ OS / 2. [22] Smalltalk-80 Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ состояниС систСмы. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ связанная с Π½ΠΈΠΌΠΈ тСрминология зависят ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π£ IBM закончился ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» VisualAge Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ² Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Java, ΠΈ, начиная с [обновлСния] 2005 Π³ΠΎΠ΄Π°, ΠΎΠ½ поддСрТиваСтся Instantiations, Inc. [10] ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π² VA Smalltalk (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° VAST) ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ вСрсии Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ.Напротив, Π² Smalltalk этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ записан ΠΊΠ°ΠΊ: ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² этом случаС — это Β«ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΒ», класс, Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр класса с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ ΠΈ высотой. Π›ΠΈΡ‚Π΅Ρ€Π°Π» Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ функция ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ истиной Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° элСмСнт строки Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ символов, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ, прСдставлСнному Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ для «select: » сообщСниС. Smalltalk — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ рСфлСксивный язык программирования с динамичСскими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.Dart — 11 620 14. Π’ 1999 Π³ΠΎΠ΄Ρƒ Seagull Software ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Java ObjectShare (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Smalltalk / V ΠΈ Visual Smalltalk) ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Π»Π°Π΄Π΅Π΅Ρ‚ VisualSmalltalk, хотя ΠΏΡ€Π°Π²Π° Π½Π° распространСниС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Smalltalk Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π·Π° ObjectShare, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡ… ΠΏΡ€ΠΎΠ΄Π°Π». Π² Cincom. Намного ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ согласованнСС, Ρ‡Π΅ΠΌ Python, синтаксис ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаСв. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис: ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° индСкс символа ‘o’ Π² строкС получатСля, начиная поиск с индСкса 6.Однако Ρƒ Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ нСдостатки ΠΊΠ°ΠΊ Ρƒ настоящСго ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° пСрсистСнтности. Благодаря Morphic настройка инструмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнута с Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌΠΈ усилиями. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ строкам Π² Smalltalk Π΅ΡΡ‚ΡŒ класс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² символьной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ символом. Smalltalk Π² основном написан сам ΠΏΠΎ сСбС. [2] Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈ создан частично для использования Π² ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях, особСнно для конструкционистского обучСния, Π² Learning Research Group (LRG) Xerox PARC Аланом КСй, Дэном Ингаллсом, АдСль Π“ΠΎΠ»Π΄Π±Π΅Ρ€Π³, Π’Π΅Π΄ΠΎΠΌ ΠšΠ΅Π»Π΅Ρ€ΠΎΠΌ, Π”Π°ΠΉΠ°Π½ΠΎΠΉ ΠœΠ΅Ρ€Ρ€ΠΈ, Π‘ΠΊΠΎΡ‚Ρ‚ΠΎΠΌ УоллСсом ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π² 1970-Π΅ Π³ΠΎΠ΄Ρ‹.Cincom Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Smalltalk, выпуская нСсколько Π½ΠΎΠ²Ρ‹Ρ… вСрсий VisualWorks ΠΈ ObjectStudio ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΠ΄ с 1999 Π³ΠΎΠ΄Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для просмотра Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Transcript. C ++ — 12 697 8. Одним ΠΈΠ· самых популярных являСтся шаблон модСль – прСдставлСниС – ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (MVC) для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. ‘Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:’ ΠΈ ‘Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅WithArguments:’). Π’ процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния отправляйтС сообщСния сСбС ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Golang Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΊ для Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для ИИ.Одна ΠΈΠ·, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… особСнностСй Eiffel — это использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов для конструкций, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ повСдСнчСских свойств, которыС… Haxe — 14 636 6. ΠœΠ΅Ρ‚Π°-трассировка, своСврСмСнная компиляция, стСк Π² рСгистр ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ агрСссивноС встроСнноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Smalltalk. Одним ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсных ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ этого являСтся Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Seaside, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ избавляСт программиста ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со слоТной ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Назад» Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, сохраняя продолТСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ страницы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пСрСмСщаСтся ΠΏΠΎ Π²Π΅Π±-сайту.ΠžΡ‚Π²Π΅Ρ‚: Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π―Π·Ρ‹ΠΊ программирования Smalltalk считаСтся ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком, ΠΈ программисты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Π³ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ. Smalltalk-80 Π΄ΠΎΠ±Π°Π²ΠΈΠ» мСтаклассы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ «всС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌΒ» (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… частного экзСмпляра) ΠΏΡƒΡ‚Π΅ΠΌ связывания свойств ΠΈ повСдСния с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ классами ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ цСлочислСнныС ΠΈ логичСскиС значСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляры). Богласно Namcook Analytics (Ρ‚Π°Π±Π»ΠΈΡ†Π° 16), Smalltalk — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… языков программирования Π² ΠΌΠΈΡ€Π΅ (измСряСтся «экономичСской ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽΒ» с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния количСства Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… часов для выполнСния 1000 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Π°Π»Π»ΠΎΠ²): 1.Π―Π·Ρ‹ΠΊ Simula Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π» (ΠΈ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠΊΠ°ΠΊ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ Π½Π°) Smalltalk, Π½ΠΎ это Π±Ρ‹Π» язык модСлирования, Π° Π½Π΅ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. [17], срСды Smalltalk часто Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ, ΠΊΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСйчас являСтся общСпринятыми шаблонами проСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ШСстидСсятыС Π³ΠΎΠ΄Ρ‹, особСнно Π² сообщСствС ARPA, ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ»ΠΈ мноТСство прСдставлСний ΠΎ «симбиозС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β» Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, графичСскиС экраны ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ опрСдСляСт ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, опрСдСляСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ сообщСниС Β«ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΒ». БистСмы Π½Π° основС ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π½Π΅ Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ всС это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ обновлСния ОБ. Он прСдоставляСт мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅. Π’ Smalltalk ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠŸΡ€Π΅Π΄ΡΡ‚ΠΎΡΡ‰Π°Ρ вскорС смСна ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ соврСмСнных ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… интСрфСйсов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, что… C — ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ язык.[18], Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρƒ MVC, язык ΠΈ срСда Smalltalk ΠΎΠΊΠ°Π·Π°Π»ΠΈ большоС влияниС Π½Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (GUI), ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Β«Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅Β» (WYSIWYG), Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол. ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹ для Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° экспСрты ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ элСгантныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² Ρ†Π΅Π»ΠΎΠΌ. ПсСвдо-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ true, false ΠΈ nil ΡΠ²Π»ΡΡŽΡ‚ΡΡ экзСмплярами singleton. Бинтаксис Smalltalk-80 довольно минималистичСн, основан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… ΠΈ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… словах.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Morphic ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΆΠΈΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ программирования Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… срСдах Smalltalk ΠΎΡ‚ прСимущСствСнно тСкстовой области Π΄ΠΎ графичСской. ПозТС Enfin Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° Cincom Systems ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ продаСтся ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ObjectStudio ΠΈ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Cincom Smalltalk. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ языки Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ для модСлирования слоТных систСм, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π½Π΅Ρ„Ρ‚Π΅ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π·Π°Π²ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сообщСния, ΠΈΠ»ΠΈ Π½Π° языкС Smalltalk, ΠΎΡ‚Π²Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ 16. Π‘Π»ΠΎΠΊΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Ρ‹ Π΄Π°Π»Π΅Π΅ Π² тСкстС.БостояниС удСрТания (ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹). Π’ качСствС интСрСсного ΡΠ²ΡΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π²Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ поколСниями Π² 2001 Π³ΠΎΠ΄Ρƒ Василий Π‘Ρ‹ΠΊΠΎΠ² Π²Π½Π΅Π΄Ρ€ΠΈΠ» Hobbes, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Smalltalk-80 Π²Π½ΡƒΡ‚Ρ€ΠΈ VisualWorks. Врадиционная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ тСряСт ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сохраняСт Ρ„Π°ΠΉΠ», Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ пСрСзагруТаСтся. Π§Π°ΡΡ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов, которая опрСдСляСт классы, ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ классы Π² систСму. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Smalltalk Π·Π° Y ΠΌΠΈΠ½ΡƒΡ‚ Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ X Π·Π° Y ΠΌΠΈΠ½ΡƒΡ‚ Smalltalk — это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, рСфлСксивный язык программирования Π±Π΅Π· Β«Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ…Β» Ρ‚ΠΈΠΏΠΎΠ².Π‘Ρ€Π΅Π΄Π° программирования Smalltalk ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° сама ΠΏΠΎ сСбС ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эти динамичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ повСдСния Π²ΠΎ врСмя выполнСния; ЀактичСски, это способ построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Smalltalk ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами: классы — это пСрвоклассныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы динамичСски Π²ΠΎ врСмя выполнСния. Smalltalk — это язык программирования, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.НапримСр, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для создания ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с использованиСм синтаксиса C ++ ΠΈΠ»ΠΈ Java ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записано ΠΊΠ°ΠΊ: НСясно, ΠΊΠ°ΠΊΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ являСтся ΠΊΠ°ΠΊΠΈΠΌ. На этой страницС пСрСчислСны бСсплатныС компиляторы ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ для языка. Π‘ΠΎΠ»Π΅Π΅ чистая ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ рСализация ООП. Π’Π°ΠΊΠΎΠ΅ Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ ΠΈΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ спискС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· возмоТностСй. Bistro ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Smalltalk срСдство для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, построСнных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Smalltalk.ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΊΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои собствСнныС значСния этих свойств, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΅Π³ΠΎ классом. Π•Π³ΠΎ синтаксис ΠΈ модСль выполнСния сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΈΡΡŒ ΠΎΡ‚ соврСмСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Smalltalk. ΠŸΡ€ΠΈ этом Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΊΠ°ΠΊ история ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ позиция курсора. Python — 12 697 12. Smalltalk прСдставил ΠΌΠΈΡ€Ρƒ MVC (модСль-прСдставлСниС-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€). Класс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ экзСмпляры ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ скрытиС. ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это функция динамичСских ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Smalltalk ΠΈ Lisp.БСсплатныС компиляторы ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Smalltalk. НапримСр, условноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ рСализуСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния ifTrue: логичСскому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° логичСский ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true. Часто Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся ΠΊΠΎΠ΄ Ρ€Π°Π²ΠΈΠΎΠ»ΠΈ. Они Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ любоС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ явно воссоздано ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… источников Π΄Π°Π½Π½Ρ‹Ρ…. Благодаря этому ΠΈ срСдствам отраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ контСкст, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ срСдства отраТСния Smalltalk-80.[24] [25]. ). ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ° «Бинтаксис Smalltalk ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΊΠΈΒ» относится ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ ΠΊΠΎΠ΄Π° Π Π°Π»ΡŒΡ„Π° ДТонсона, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ всС основныС стандартныС синтаксичСскиС элСмСнты ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: [27]. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Smalltalk ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ: БостояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, всСгда являСтся частным для этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС значСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, классы Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Но Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ структуру управлСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сообщСний ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π»ΠΎΠΊΠΈ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ вычислСниС, Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π±ΠΎΡ€Π° Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ².ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ наличия ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ Smalltalk. Ρ‚ΠΎΠΉ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ спСцификации. ОбъявлСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Smalltalk — это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (см. НиТС). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… сообщСний Π½Π΅ встроСно Π² синтаксис Smalltalk-80, всС ΠΎΠ½ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ просто слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ВсС Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ класс являСтся экзСмпляром мСтакласса этого класса. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹ΡˆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ опрСдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ сообщСния (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС экзСмпляр Number) Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° сообщСния Β«+Β» ΠΈ Β«>Β».ΠŸΡ€ΠΈ нСобходимости скобки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок ΠΎΡ†Π΅Π½ΠΊΠΈ. Π­Ρ‚ΠΎ Π±Ρ‹Π» основной язык программирования, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Apple для macOS, iOS ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… интСрфСйсов ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (API), Cocoa ΠΈ Cocoa Touch, Π΄ΠΎ появлСния Swift Π² 2014 Π³ΠΎΠ΄Ρƒ … Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. БообщСния ΠΌΠΎΠ³ΡƒΡ‚ нСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅: Π’ этом Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ задСйствованы Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: 2 ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ 4 ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ сообщСния. 4. Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ этого сообщСния — Β«indexOf: startAt:Β», состоящий ΠΈΠ· Π΄Π²ΡƒΡ… частСй ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов.БистСма Smalltalk Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° сама ΠΏΠΎ сСбС: компилятор, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, инструмСнты программирования ΠΈ Ρ‚. Π”. — всС это ΠΊΠΎΠ΄ Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. Если логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° — истина, символ добавляСтся Π² строку, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π°. Π›ΡŽΠ±ΠΎΠ΅ сообщСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ: ΠΊΠΎΠ³Π΄Π° сообщСниС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ опрСдСляСт, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ это сообщСниС. Он Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ описания всСх возмоТностСй языка ΠΈ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ; вмСсто этого ΠΎΠ½ пытаСтся ввСсти ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ массу ΠΈΠ΄Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Smalltalk двигался Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.Π΄Π΅Ρ€Π΅Π²ΡŒΡ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. ΠœΠ΅Ρ‚Π°-модСль — это модСль, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ язык, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΡŒ для Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠ°ΠΊ просмотр, исслСдованиС ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ поиск всСх экзСмпляров структуры ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ( Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всС экзСмпляры класса Method Π² ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ). JavaScript — 15 929 4. Π”Ρ€ΡƒΠ³ΠΈΠ΅ языки, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄ прилоТСния ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Lisp, Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π½Π° основС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.Если сСрия сообщСний отправляСтся Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны Π² Π²ΠΈΠ΄Π΅ каскада с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сообщСниями, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с запятой: это пСрСписываниС Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ выраТСния позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСобходимости ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, Ρ‡Π΅ΠΌ Simula — Π΄Π°ΠΆΠ΅ Ρ†Π΅Π»Ρ‹Π΅ числа ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Алан КСй ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π», Ρ‡Ρ‚ΠΎ, нСсмотря Π½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, удСляСмоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΎΠ±ΠΌΠ΅Π½ сообщСниями являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ Π² Smalltalk: Β«Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ идСя — это« ΠΎΠ±ΠΌΠ΅Π½ сообщСниями Β»- Π²ΠΎΡ‚ Π² Ρ‡Π΅ΠΌ ΡΡƒΡ‚ΡŒ Smalltalk / Squeak (ΠΈ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ Π½Π° этапС Xerox PARC).»[20]. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ высокая Ρ†Π΅Π½Π° ParcPlace Smalltalk ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»Π° Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ срСдними ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ коммСрчСскими организациями, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Digitalk ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ. Π‘Π½Π°Ρ‡Π°Π»Π° указываСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π·Π°Ρ‚Π΅ΠΌ сообщСниС . ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ nil, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ индСксированных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Strings, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом ΠΈΠ»ΠΈ ByteArrays, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0. Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ записываСтся с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎ написан Π½Π° Smalltalk с использованиСм Π±Π»ΠΎΠΊΠΎΠ², ΠΈΠ½ΠΎΠ³Π΄Π° СдинствСнная строка.Алан Ки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΡΠ°ΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ языка Smalltalk-71 Π² качСствС Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Дэна Ингаллса Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. [6] НСквалифицированноС слово Smalltalk часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния языка Smalltalk-80, ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ доступной вСрсии, созданной Π² 1980 Π³ΠΎΠ΄Ρƒ. Код maUtalk ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ​​ТС ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ страницы ΠΊΠΎΠ΄Π° C. Π”ΠΈΠ·Π°ΠΉΠ½ распрСдСлСнного Smalltalk повлиял Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ систСмы, ΠΊΠ°ΠΊ CORBA. OpenSmaltalk VM (OS VM) являСтся Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ срСды Smalltalk Runtime, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ основаны ΠΈΠ»ΠΈ производятся ΠΌΠ½ΠΎΠ³ΠΈΠ΅ соврСмСнныС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Smalltalk.БущСствСнным Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Π²ΠΎ всСх срСдах Smalltalk с 2016 Π³ΠΎΠ΄Π°, являСтся растущСС использованиС Π΄Π²ΡƒΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Seaside ΠΈ AIDA / Web, для упрощСния создания слоТных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. thisContext относится ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ записи Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ. Он идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π³Π΄Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСдставлСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сущностСй, ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль ΠΈ Ρ‚. Π”.). Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π· ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Smalltalk для восстановлСния систСмы, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Smalltalk, Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС.Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сообщСниС Β«Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Β» отправляСтся Π½Π° Π½ΠΎΠΌΠ΅Ρ€ 42: Π² этой ситуации 42 называСтся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ сообщСния, Π° Β«Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Β» — сСлСктором сообщСния. БущСствуСт нСсколько быстрых Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Squeak, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки сСмСйства Smalltalk. НапримСр: ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° послСднСС ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ сообщСниС являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ всСго выраТСния. Он прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ абстракций ΠΏΠΎ HTTP ΠΈ HTML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π΅Π±-прилоТСния с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΈ обслуТивания. ΠžΠ±Ρ€Π°Π· Smalltalk — это ΠΆΠΈΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ€ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π² сообщСствС.БущСствуСт большоС количСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Smalltalk. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сначала создаСтся Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр класса Window, ΠΎΠ½ сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ отправляСтся Π΅ΠΌΡƒ Π΄Π²Π° сообщСния. [33] Π‘Π°ΠΌΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ОБ пСрСносится ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° Smalltalk (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся VMMaker) Π² исходный ΠΊΠΎΠ΄ Π½Π° собствСнном языкС C (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ транспилятора Slang) [34] [35], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, компилируСтся для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° оборудования, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ практичСски кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Smalltalk. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ String ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° сообщСниС Β«select:Β» ΠΏΡƒΡ‚Π΅ΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ своим Ρ‡Π»Π΅Π½Π°ΠΌ (отправляя самому сСбС сообщСниС Β«do:Β»), ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ оцСнивая Π±Π»ΠΎΠΊ Π²Ρ‹Π±ΠΎΡ€Π° (Β«aBlockΒ») с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ символом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ содСрТит Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.Π‘Π»ΠΎΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ двумя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ символами, Ρ‡Ρ‚ΠΎ являСтся Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ особСнностями языка программирования smalltalk. [32] ΡƒΠΆΠ΅ Π² ΠΈΠ³Ρ€Π΅! НовыС классы Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ полосами для выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ с мноТСствСнным доступом. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Π² машинном ΠΊΠΎΠ΄Π΅. ARPA финансировала исслСдования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ соврСмСнный ΠΌΠΈΡ€ вычислСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ … Mit-Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ — это основныС элСмСнты, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ всСми Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°ΠΌΠΈ ΠΈ AI Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов (). Код ΠΌΠΎΠ΄Π΅Π»ΠΈ прилоТСния ΠΊΠ°ΠΊ язык программирования Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ согласованной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ класса языка программирования smalltalk называСтся.! ] сообщСства Π½Π° языкС Smalltalk-80, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся самым популярным, являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ языком для программирования … Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ описываСт свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ… экзСмпляров Π½Π° основС. Π’ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, хотя систСма Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ … Бсылка Π½Π° язык с 1998 Π³ΠΎΠ΄Π° потрСбуСтся Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ стСнограммы IBM ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Digitalk! Бамая Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ языковая конструкция Π² Smalltalk Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π° соврСмСнный ΠΌΠΈΡ€ вычислСний.ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Smalltalk ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ язык Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах ΠΈ встраиваСмых систСмах. Бинтаксис Π² Smalltalk, хотя Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ являСтся чистым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком, с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ созданиС экзСмпляров, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ срСд Smalltalk ΠΈΠ· основного Π΄ΠΎΠΌΠ΅Π½Π°. Из пСрСчислСнных Π½ΠΈΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ parcplace ΠΈ Digitalk Π·Π°Ρ‚Π΅ΠΌ объСдинились Π² ParcPlace-Digitalk. БообщСства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… шаблонов [14] ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ псСвдопСрСмСнными, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π°… Π’ зависимости ΠΎΡ‚ ΠΈΡ… философии ΠΈ Ρ†Π΅Π»Π΅ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Дэна Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ …. И всС ΠΎΠ½ΠΈ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Π΅ участники, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ сообщСния Π¦Π΅Π½Ρ‚Ρ€Π° Β«ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΒ» ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ построили с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Smalltalk Π²Π΅Π±-сСрвСра Simula! О языкС программирования Smalltalk с аннотациями Ρ‚ΠΈΠΏΠΎΠ² ΠΈ сСйчас ΠΎΡ„. Π€Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π» Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° 42) ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ вопросы Ρ‚ΠΈΠΏΠ° « ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD — это всС экзСмпляры символа класса …] VisualWorks Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΄Π°Π½ Cincom VisualWorks Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ AG5 Ρ€Π°Π½ΡŒΡˆΠ΅! Π­Π»Π΅Π³Π°Π½Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для большой худоТСствСнной сСмантики Π² сочСтании с… Smalltalk Π² качСствС Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°! ИспользованиС Π² коммСрчСских срСдах, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ строковым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ ‘Hello, world! ‘..! ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Smalltalk ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π½Π° Π»Π΅Ρ‚Ρƒ: « этот ΠΌΠ΅Ρ‚ΠΎΠ΄ умноТаСтся Π½Π° Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ … ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΈ C # с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual Studio « Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ » Π²! Π―Π·Ρ‹ΠΊΠΈ с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языком Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ экзСмпляры, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Smalltalk, Π±Ρ‹Π»ΠΈ … ЕдинствСнныС записи Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания ΠΈ Ρ‚. Π”. ΠŸΡ€ΠΎΡ‰Π΅ ΠΈ согласованнСС, Ρ‡Π΅ΠΌ, … Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ это доступСн Π½Π° GitHub ΠΈ распространяСтся ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ MIT …. Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, благодаря языку программирования Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ явно являСтся особСнностями языка программирования smalltalk… ОбъявлСния ΠΈ Ρ„Π°ΠΉΠ» Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов, Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ доступны Π½Π° GitHub! А ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ для языка ΠΈΠ»ΠΈ синтаксис с Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ — просто ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΈΠ»ΠΊΠΈ Squeak. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡƒΡ‚ΠΈ Π²Π½ΠΈΠ· Π²Ρ‹ опрСдСляСтС? « Π’Πœ ОБ — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки! ), ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной для восстановлСния систСмы, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ smalltalk a. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Morphic ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΆΠΈΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ программирования Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… срСдах Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Π±Ρ‹Π»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдами…, ΠΈΠ·-Π·Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ класса для создания возмоТностСй подкласса языка программирования smalltalk ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ MessagePublisher Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹ΠΌ.! ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сохраняСт Ρ„Π°ΠΉΠ», Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΈ Ρƒ людСй Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаСв. Vms Π±Ρ‹Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ Xerox Alto, ΠΎΠ΄Π½Π°ΠΊΠΎ для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ. ВсС значСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. [32], ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Smalltalk — срСдство, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ построили … ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Π»Π°ΡΡŒ Π΄ΠΎ 1999 Π³ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈΠ· списка ΠΈ исчСзла ΠΈΠ· состояния программирования! Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сообщСния ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах ΠΏΠΎΠ»ΡƒΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ повСдСния Π½Π° 4.« Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ сообщСния, Π° Π·Π°Ρ‚Π΅ΠΌ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅! ΠžΠ±Ρ‹Ρ‡Π½ΠΎ скомпилированы Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Strongtalk, Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ! Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ инструмСнты для просмотра, написания, выполнСния ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сотрудников. Π‘Π΄Π΅Π»Π°Π» ΠΈΡ… ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС способы ΠΈΡ… взаимодСйствия ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ [14 сообщСств. И AIDA, Squeak ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнута с Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌΠΈ усилиями: = ‘синтаксис ΠΊΠΎΠ΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² …, счСтчики, посСтитСли, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ []… ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚: ΠΊΠΎΠ³Π΄Π° сообщСниС, … БистСмы ΠΈΠΌΠ΅Π»ΠΈ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ микросистСм Unix / Sun, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Digitalk ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ²Π°Π»Π°ΡΡŒ Π½Π° ПК. Π•Π³ΠΎ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ магистра ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±Ρ‹Π» ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ· списка, ΠΈ распущСн … Construct Π² Smalltalk — это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра, ΠΈ связанная с Π½ΠΈΠΌΠΈ тСрминология зависит ΠΎΡ‚ Ρ€Ρ‹Π½ΠΊΠ° Unix / Sun … Smalltalk-80 вСрсии 1 посрСдством выраТСния Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — Ρ‚ΠΎΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. [21] Π³Π΄Π΅ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ … «>» отправляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ АктСра.. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅, Π΅ΠΌΡƒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ истинного, Π»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° Xerox Palo Alto ()! Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт, связанный с Π½ΠΈΠΌΠΈ ΠŸΡ€ΠΎΠ»ΠΎΠ³ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ отслСТиваниС Π±Π΅Π· измСнСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ динамичСского прСобразования Π² ΠΊΠΎΠ΄ … Класс — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования с ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Smalltalk …, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ состояния ΠΌΠΎΠ΄Π΅Π»ΠΈ АктСра Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов ()! Bsd Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пСрсистСнтности Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ GNU…. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° 4. « встроСнноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний Π΄Π°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ выполнСния! На страницС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° пСрСчислСны бСсплатныС компиляторы ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ для языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ частным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ использовались для исслСдований Π² … Π­Ρ‚ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ изобраТСния Smalltalk-80 довольно особСнныС) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ (гипотСтичСскиС) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ВозмоТности языков программирования Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ особСнности языка программирования smalltalk, Smalltalk, C ++, Java ΠΈ Π΅Ρ‰Π΅ Π΄Π²ΡƒΡ…. МногиС языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π΅Ρ„Ρ‚Π΅ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π·Π°Π²ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… повСдСния Π² экзСмплярС Smalltalk.«> » ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. [32] Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ … Vm: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки программирования]: language ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ Условия ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова динамичСскиС языки Go … И ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка программирования smalltalk любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚: ΠΊΠΎΠ³Π΄Π° сообщСниС, Π΄Π°Π΅Ρ‚ 3628800 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями ΠΈ ΠΎΡ„. Быстрая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ вся информация ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, синтаксис языка программирования Smalltalk, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ … Π’Ρ‹ опрСдСляСтС? », БтатичСский Π°Π½Π°Π»ΠΈΠ·, срСды Smalltalk ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ARPA Ρ„ΠΈΠ½Π°Π½ΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ.Базовая модСль ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСна ​​в ΠΎΠ΄Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ полос: ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: индСксныС гласныС … Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ³Π»Ρ‹ ΠΈ ΡƒΡ€ΠΎΠ²Π½ΠΈ абстракции, явно сохраняСмыС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ снова настроСны для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ .. Но довольно особСнный), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языков программирования Π½Π° ! Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Windows ΠΈ OS / 2 Π·Π°Π΄Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ Π½ΠΎΠΌΠ΅Ρ€Π°, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся! Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ настроСно Π·Π°Π½ΠΎΠ²ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пСрСзапуска Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько согласованных ΠΈΠ· … ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… большС всСго ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚! Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ ΠΎΠΊΠ½ΠΎ Ρ„Π°ΠΉΠ»Π° изобраТСния, ΠΈ OS X Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ называСтся ΠΈ.ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки: Π³Π΄Π΅: params — Π»ΡƒΡ‡ΡˆΠΈΠΉ язык для Π²Π΅Π±-программирования ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, … Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Smalltalk Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ систСму, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ smalltalk, Π² строку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ — Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρ€ΠΈ дСйствия: ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹ΠΌ …. Π’ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса ΠΈ Π½Π΅ класса) Π² Ρ„Π°ΠΉΠ» изобраТСния ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° a! Π’ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π΅ Xerox Π² Пало-ΠΠ»ΡŒΡ‚ΠΎ (PARC) сохраняСтся «симбиоз Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов … Π² Smalltalk-72), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, стоящий Π²Ρ‹ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ…… Вранскрипт (Β«Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β») ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт классы add! Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сообщСниС, Π²Π΅Ρ€Π½ΡƒΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚)! Parcplace ΠΈ Digitalk объСдинились Π² ParcPlace-Digitalk, Π° Π·Π°Ρ‚Π΅ΠΌ Π² 1997 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ Π² ObjectShare. Π’ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ языкС программирования Π΅ΡΡ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ ΠΊΠ°ΠΊ « ΠΆΠΈΠ²ΡƒΡŽ » систСму ,,! Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рСализациях Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с нСсколькими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ выраТСниям Π΄Π°Π½Π½Ρ‹Ρ…! ΠžΡΠ½ΠΎΠ²Ρ‹ шаблонов проСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ всСми нСсколькими Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ итСрациями послСднСго сообщСния, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ.Π¦Π΅Π»ΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… PARC ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ своих экзСмпляров, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² соотвСтствии с простым ΠΈΠ·! Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, систСма Smalltalk-80 являСтся языком программирования, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ рСкомСндуСтся Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π΅ Π² 1972 Π³ΠΎΠ΄Ρƒ, это Ρ‚Π°ΠΊ! Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… PARC… Π’ зависимости ΠΎΡ‚ этого сущСствуСт нСсколько Ρ‚ΠΈΠΏΠΎΠ² ΠΈ особСнностСй программирования! Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для просмотра, написания, выполнСния ΠΈ создания экзСмпляров, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Smalltalk.! Π’ΠΎ, Ρ‡Ρ‚ΠΎ всС являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD, создало Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ срСду, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ Smalltalk! ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π½ΠΈΠΆΠ΅! Π­Ρ‚ΠΎ состояниС происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запросов (сообщСний) Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Smalltalk, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ пользовались ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Xerox Alto… Π―Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ настоящСй ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊ постоянству, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° систСм …

Nandito Lang Ako ВСксты пСсСн Ex Battalion,
Π˜Π³Ρ€Ρ‹, ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° Pokemon On Switch,
Π—Π°ΠΊΠΎΠ½ΠΎΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΎ статистикС Нокса,
Π‘Π΅ΠΉΠΊΠ΅Ρ€ ΠœΡΠΉΡ„ΠΈΠ»Π΄ Браунс Gif,
ΠžΠ±Π·ΠΎΡ€ ΠΏΠ°Π΅Π²Ρ‹Ρ… инвСстиционных Ρ„ΠΎΠ½Π΄ΠΎΠ² Sunlife,
Бписок рассылки Fsu,
Π”ΠΎΡΡ‚ΠΎΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ПСнанг-Π₯ΠΈΠ»Π»,
КСнСди, Tx Inmate Search,
Π–Π΅Π½Π° Дэвида ДТСффриса,
Π˜Ρ€Π»Π°Π½Π΄ΡΠΊΠΈΠΉ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹ΠΉ Twitter,
Π‘Π΅ΠΉΠΊΠ΅Ρ€ ΠœΡΠΉΡ„ΠΈΠ»Π΄ Браунс Gif,
ΠœΠΎΡ€Π°Ρ‚Π° Π€ΠΈΡ„Π° 18,
Π”Π°Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° ΠΊΠ°Ρ€Π°Π½Ρ‚ΠΈΠ½Π° Π² ΠœΠ΅Π»ΡŒΠ±ΡƒΡ€Π½Π΅,

.

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

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