Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования: Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования

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

тСория, инструмСнты ΠΈ совСты ΠΎΡ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

РассказываСт программист Π’ΠΈΠ»ΡŒΡΠΌ Π’. Π’ΠΎΠ»ΡŒΠ΄


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

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

Я нС экспСрт. Когда я начал Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, я понятия Π½Π΅Β ΠΈΠΌΠ΅Π», Ρ‡Ρ‚ΠΎ дСлаю, и всё Π΅Ρ‰Π΅ нС имСю. Π―Β Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ Π½Π΅Β ΠΈΠ·ΡƒΡ‡Π°Π» ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ создания языка — Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π²Β Π‘Π΅Ρ‚ΠΈ ΠΈΒ Π΄Π°ΠΆΠ΅ Π²Β Π½ΠΈΡ… Π½Π΅Β Π½Π°ΡˆΡ‘Π» для сСбя ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ.

Π’Π΅ΠΌ Π½Π΅Β ΠΌΠ΅Π½Π΅Π΅, я написал Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ язык. Π˜Β ΠΎΠ½Β Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НавСрноС, я что-Ρ‚ΠΎ дСлаю ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

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

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

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги

«А с чСго Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ?» — вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π·Π°Π΄Π°ΡŽΡ‚, ΡƒΠ·Π½Π°Π², Ρ‡Ρ‚ΠΎ ΡΒ ΠΏΠΈΡˆΡƒ свой язык. В этой части ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π°Β Π½Π΅Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ?

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Ρ‘Β Π²Β ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ и сохраняСт для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ выполнСния. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Β ΠΆΠ΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ и выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построчно Π²Β Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

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

Π―Β Ρ…ΠΎΡ‚Π΅Π» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой ΠΈΒ ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык, ΠΊΠ°ΠΊΠΈΡ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, поэтому с самого Π½Π°Ρ‡Π°Π»Π° Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Pinecone ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ. Π’Π΅ΠΌ Π½Π΅Β ΠΌΠ΅Π½Π΅Π΅, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΡƒΒ Pinecone Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒΒ β€” ΠΏΠ΅Ρ€Π²ΠΎΠ΅ врСмя запуск Π±Ρ‹Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Сго ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, ΠΏΠΎΠ·ΠΆΠ΅ объясню, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

%saved0% ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ сСрии статСй ΠΏΠΎ созданию собствСнного ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° β€” это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ Python.

Π’Ρ‹Π±ΠΎΡ€ языка

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

Но в цСлом совСт ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ:

  • ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉΒ Π―ΠŸ ΠΊΡ€Π°ΠΉΠ½Π΅ рСкомСндуСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Β ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΒ Π―ΠŸ (C, C++, Swift). Π˜Π½Π°Ρ‡Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ расти ΠΊΠ°ΠΊ снСТный ΠΊΠΎΠΌ, ΠΏΠΎΠΊΠ° ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ваш ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€;
  • ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉΒ Π―ΠŸ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Β ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΒ Π―ΠŸ (Python, JS). Возрастёт врСмя компиляции, но нС врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

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

ЛСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Β / лСксСр

Π‘Ρ‚Ρ€ΠΎΠΊΠ° исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· лСксСр ΠΈ прСвращаСтся Π² список Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ².

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π²Β Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π―ΠŸΒ β€” это лСксичСский Π°Π½Π°Π»ΠΈΠ·. Говоря ΠΏΠΎ-простому, он прСдставляСт собой Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ тСкста Π½Π°Β Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, Ρ‚ΠΎΒ Π΅ΡΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ языка: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, названия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹), ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, числа. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ΄Π°Π² лСксСру Π½Π°Β Π²Ρ…ΠΎΠ΄ строку с исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΡ‹Β ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π°Β Π²Ρ‹Ρ…ΠΎΠ΄Π΅ список всСх Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Β Π½Π΅ΠΉ содСрТатся.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡ к исходному ΠΊΠΎΠ΄Ρƒ ΡƒΠΆΠ΅ Π½Π΅Β Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°Β ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… этапах, поэтому лСксСр Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π΄Π°Ρ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Π½ΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Flex

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

Одним из основных Ρ‚Π°ΠΊΠΈΡ… инструмСнтов являСтся FlexΒ β€” Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ лСксичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠžΠ½Β ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π°Β Π²Ρ…ΠΎΠ΄ Ρ„Π°ΠΉΠ» с описаниСм Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ языка, Π°Β ΠΏΠΎΡ‚ΠΎΠΌ создаёт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°Β C, которая в свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ строку ΠΈΒ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠœΠΎΡ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

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

БинтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Β / парсСр

Бписок Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· парсСр ΠΈ прСвращаСтся Π² Π΄Π΅Ρ€Π΅Π²ΠΎ.

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

Bison

На этом шагС я такТС Π΄ΡƒΠΌΠ°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, рассматривая Bison для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Он во многом ΠΏΠΎΡ…ΠΎΠΆ Π½Π°Β FlexΒ β€” ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ„Π°ΠΉΠ» с синтаксичСскими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ структурируСтся ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ на языкС C. Но я снова отказался от срСдств Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° кастомных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Б лСксСром ΠΌΠΎΡ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ (Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΎΠΊΠΎΠ»ΠΎ 200 строк) Π±Ρ‹Π»ΠΎ довольно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ: я люблю Π·Π°Π΄Π°Ρ‡ΠΊΠΈ, а эта ΠΊΒ Ρ‚ΠΎΠΌΡƒΒ ΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ. Б парсСром другая история: сСйчас Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠ΄Π° для Π½Π΅Π³ΠΎΒ β€” 750 строк, и это ΡƒΠΆΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° (ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ Π±Ρ‹Π»ΠΈ просто уТасны).

Π’Π΅ΠΌ Π½Π΅Β ΠΌΠ΅Π½Π΅Π΅, ΡΒ Ρ€Π΅ΡˆΠΈΠ» Π΄Π΅Π»Π°Ρ‚ΡŒ парсСр сам. Π’ΠΎΡ‚ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  • минимизация ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста;
  • ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ сборки;
  • ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с задачСй ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

В цСлСсообразности Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ мСня ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΎ высказываниС Π£ΠΎΠ»Ρ‚Π΅Ρ€Π° Π‘Ρ€Π°ΠΉΡ‚Π° (создатСля языка D) Π²Β ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ·Β Π΅Π³ΠΎ статСй:

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

Абстрактный сСмантичСский Π³Ρ€Π°Ρ„

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ синтаксичСского Π΄Π΅Ρ€Π΅Π²Π° ΠΊ сСмантичСскому Π³Ρ€Π°Ρ„Ρƒ

В этой части я рСализовал структуру, по своСй сути Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΡƒΡŽ ΠΊΒ Β«ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽΒ» (intermediate representation) Π²Β LLVM. БущСствуСт нСбольшая, но ваТная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ абстрактным синтаксичСским Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ (АБД) и абстрактным сСмантичСским Π³Ρ€Π°Ρ„ΠΎΠΌ (АБГ).

АБГ vs АБД

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

Запуск

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π³Ρ€Π°Ρ„ составлСн, запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ становится довольно простой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» содСрТит Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Β Π²Ρ…ΠΎΠ΄, Π΄Π΅Π»Π°Π΅Ρ‚Β Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΎ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ), ΠΈΒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π­Ρ‚ΠΎΒ β€” ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ в дСйствии.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ компиляции

Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, спроситС, ΠΎΡ‚ΠΊΡƒΠ΄Π° взялся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, Ссли ΡΒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» Pinecone ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык. Π”Π΅Π»ΠΎ Π²Β Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ компиляция Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС, Ρ‡Π΅ΠΌ интСрпрСтация — я уТС ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Ρ€Π°Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ столкнулся с нСкоторыми ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ на этом шагС.

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой компилятор

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

LLVM

LLVMΒ β€” это коллСкция инструмСнтов для компиляции, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Swift, Rust ΠΈΒ Clang. Π―Β Ρ€Π΅ΡˆΠΈΠ» ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ на этом Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅, Π½ΠΎΒ ΠΎΠΏΡΡ‚ΡŒ нС рассчитал слоТности Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ собой поставил. Для мСня ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ оказалось нС освоСниС ассСмблСра, Π°Β Ρ€Π°Π±ΠΎΡ‚Π° с огромной многосоставной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

Вранспайлинг

МнС всё ТС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, поэтому я написал то, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ: транспайлСр (transpiler) ΠΈΠ·Β Pinecone Π²Β C++Β β€” ΠΎΠ½Β ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΠΎΒ Ρ‚ΠΈΠΏΡƒ «исходный ΠΊΠΎΠ΄ в исходный ΠΊΠΎΠ΄Β», Π°Β Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСской компиляции Π²Ρ‹Π²ΠΎΠ΄Π° с GCC. Π’Π°ΠΊΠΎΠΉ способ нС являСтся Π½ΠΈΒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, ни кроссплатформСнным, Π½ΠΎΒ Π½Π°Β Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ хотя бы Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ для всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π°Β Pinecone, это ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ ΠΏΠ»Π°Π½Ρ‹

БСйчас ΠΌΠ½Π΅ нС достаёт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π½ΠΎΒ Π²Β Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΡΒ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΎΡ‚Β Π½Π°Ρ‡Π°Π»Π° ΠΈΒ Π΄ΠΎΒ ΠΊΠΎΠ½Ρ†Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор Pinecone ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LLVMΒ β€” инструмСнт ΠΌΠ½Π΅ нравится и руководства ΠΊΒ Π½Π΅ΠΌΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅. Пока Ρ‡Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, а транспайлСр справляСтся с болСС слоТными.

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

НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ окаТСтся ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π―Β ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ хотя бы ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой язык, нСсмотря Π½Π°Β Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ придётся Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ во мноТСствС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΒ β€” это ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ и просто интСрСсный экспСримСнт.

Π’ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ совСты от мСня (разумССтся, довольно ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅):

  • Ссли у вас Π½Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΈΒ Π²Ρ‹Β ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ язык, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΒ ΡƒΡ‡ΠΈΡ‚ΡŒ;
  • с лСксСрами и парсСрами Π΄Π΅Π»Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. ИспользованиС срСдств Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ зависит ΠΎΡ‚Β Π²Π°ΡˆΠ΅Π³ΠΎ ТСлания, ΠΎΠΏΡ‹Ρ‚Π° ΠΈΒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации;
  • Ссли Π²Ρ‹Β Π½Π΅Β Π³ΠΎΡ‚ΠΎΠ²Ρ‹Β / Π½Π΅Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя и силы (ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ и сил) Π½Π°Β ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π½ΠΈΠ΅ собствСнной стратСгии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ Π―ΠŸ, слСдуйтС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ дСйствий, описанной в этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π―Β Π²Π»ΠΎΠΆΠΈΠ» Π²Β Π½Π΅Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ усилий ΠΈΒ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚;
  • ΠΎΠΏΡΡ‚ΡŒΒ ΠΆΠ΅, Ссли Π½Π΅Β Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈΒ / ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈΒ / ΠΎΠΏΡ‹Ρ‚Π°Β / ТСлания ΠΈΠ»ΠΈ Π΅Ρ‰Ρ‘ Ρ‡Π΅Π³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ для написания ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎΒ Π―ΠŸ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эзотСричСский, Ρ‚ΠΈΠΏΠ° Brainfuck. (Π‘ΠΎΠ²Π΅Ρ‚ΡƒΠ΅ΠΌ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли язык написан развлСчСния Ρ€Π°Π΄ΠΈ, это Π½Π΅Β Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎΒ β€” Ρ‚ΠΎΠΆΠ΅ сплошноС Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅. β€”Β ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².)

Π―Β Π΄Π΅Π»Π°Π» довольно ΠΌΠ½ΠΎΠ³ΠΎ ошибок ΠΏΠΎΒ Ρ…ΠΎΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎΒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π½Π°Β ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ, я уТС пСрСписал. Π―Π·Ρ‹ΠΊ сСйчас Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ (Π½Π°Β ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½Π°Β Linux и с пСрСмСнным успСхом Π½Π°Β macOS, Π½ΠΎΒ Π½Π΅Β Π½Π°Β Windows).

ΠžΒ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ввязался Π²Β ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ с созданиСм Pinecone, Π½ΠΈΒ Π²Β ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅Β ΠΆΠ°Π»Π΅ΡŽΒ β€” это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ экспСримСнт, ΠΈΒ ΠΎΠ½Β Ρ‚ΠΎΠ»ΡŒΠΊΠΎ начался.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ: Β«I wrote a programming language. Here’s how you can, tooΒ»

11 шагов ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ пСрспСктивы

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассказываСтся:Β Β 

  1. Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ языки программирования
  2. 11 шагов создания своСго языка программирования с нуля
  3. Книги ΠΏΡ€ΠΎ созданиС языка программирования с нуля
  4. РСально Π»ΠΈ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ язык программирования
  5. Онлайн-курсы ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈ созданию языков программирования
  6. ΠŸΡ€ΠΎΠΉΠ΄ΠΈ тСст ΠΈ ΡƒΠ·Π½Π°ΠΉ, какая сфСра Ρ‚Π΅Π±Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚:
    Π°ΠΉΡ‚ΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³.

    БСсплатно ΠΎΡ‚ Geekbrains


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

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

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ языки программирования

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

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

ВрСбования ΠΊ созданию языков программирования постСпСнно мСнялись ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ стали ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΏΠΎΠΌΠΎΡ‰Π½Π΅Π΅, Π±ΠΎΠ»Π΅Π΅ простыС ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π² использовании. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Fortran придумывался большС для вСдСния матСматичСских вычислСний, Basic ΠΈ Pascal Π±Ρ‹Π»ΠΈ Β«Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Ρ‹Β» ΠΏΠΎΠ΄ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΈΡΡŒ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ изучСния, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ (Π²Ρ€ΠΎΠ΄Π΅ Π‘ΠΈ) Π±Ρ‹Π»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈ своСй ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²Π΅Ρ€ΡˆΠ°Π»ΠΈΡΡŒ Π½Π΅ΠΊΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ достиТСния, Ρ‚ΡƒΡ‚ ΠΆΠ΅ появлялась ΠΊΡƒΡ‡Π° Π½ΠΎΠ²Ρ‹Ρ… языков. НапримСр, языки C++, Objective C, Java Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π² 1980-1990-Π΅ Π³ΠΎΠ΄Ρ‹ Π½Π° Ρ„ΠΎΠ½Π΅ открытия ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹Π΅ языки (Π²Ρ€ΠΎΠ΄Π΅ PHP, JavaScript, Python) стали Π±ΡƒΡ€Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² связи с появившСйся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π² создании Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π”Π° ΠΈ сСйчас Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ языки, ΠΎΠ½ΠΈ быстро ΠΏΠΈΡˆΡƒΡ‚ΡΡ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ просто молниСносно (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ β€” Go, Swift, Rust).

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ языки программирования

РазумССтся, соврСмСнныС Π½ΠΎΠ²Ρ‹Π΅ языки программирования – это Π½Π΅ просто Β«ΠΌΠΎΠ΄Π½ΠΎΠ΅Β» вСяниС. Часто Π² Π½ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ конкрСтная Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° трСбуСтся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΈΡ… особых Π·Π°Π΄Π°Ρ‡. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для автоматичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ логичСских суТдСний создавался Prolog. А Erlang принят ΠΊΠ°ΠΊ стандарт Π² сфСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО для сСтСвых ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ.

11 шагов создания своСго языка программирования с нуля

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

Π¨Π°Π³ 1. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с устройством ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

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

Π¨Π°Π³ 2. Π Π°Π·Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ….

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

Π¨Π°Π³ 3. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΡŒΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ языка.

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

Π¨Π°Π³ 4. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ с основными ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

Π’ΠΎΡ‚ вопросы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ слСдуСт Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚:

  • Π—Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ? ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ машина сразу Π΅Π³ΠΎ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Β» ΠΈ исполняСт. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ построчно. Π§Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ – Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²Π°ΠΌ, рассмотритС ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния удобства, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, защищСнности ΠΈ Ρ‚. ΠΏ.
  • Π—Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ? ΠŸΡ€ΠΈ статичСской ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сам ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° для динамичСской Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ систСму, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ Ρ‚ΠΈΠΏΡ‹.
  • Для памяти Π±ΡƒΠ΄Π΅Ρ‚ прСдусмотрСно Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ автоматичСская очистка?
  • ΠšΠ°ΠΊΡƒΡŽ модСль Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ: ООП, логичСскоС, структурноС ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅? Или Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, Ρ‡Π΅Π³ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ?
  • Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ваш язык ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ?
  • ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ Π»ΠΈ Π² языкС Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈΠ»ΠΈ всё Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·Π° счСт Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ?
  • Каким Π±ΡƒΠ΄Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ построСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?

ΠŸΡ€ΠΎΠ΄ΡƒΠΌΠ°Π² всС эти ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, Π²Ρ‹ сформируСтС ΠΎΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка. Π’ процСссС Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΈ ΠΈΠ½Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ вопросы, с Π½ΠΈΠΌΠΈ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ.

Π¨Π°Π³ 5. ΠŸΡ€ΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ синтаксис.

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

Π¨Π°Π³ 6. ΠŸΡ€ΠΈΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

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

Π’ΠΎΠΏ-30 самых вострСбованных ΠΈ высокооплачиваСмых профСссий 2023

ΠŸΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ситуации Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Ρ‚Ρ€ΡƒΠ΄Π°

ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° 50+ рСсурсов ΠΎΠ± IT-сфСрС

Волько Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Ρ‹, ΠΊΠ°Π½Π°Π»Ρ‹ Youtube, подкасты, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎ IT

ВОП 50+ сСрвисов ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ Geekbrains

БСзопасныС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² наши Π΄Π½ΠΈ

pdf 3,7mb

doc 1,7mb


Π£ΠΆΠ΅ скачали 20608

Π¨Π°Π³ 7. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ с языком написания языка.

ΠŸΠΎΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ Π½Π° высоких тСхнологиях Π³ΠΈΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ для этого ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ язык ассСмблСра. Но Π² соврСмСнных рСалиях Π΅ΡΡ‚ΡŒ смысл Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ созданиСм языков программирования Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках Pascal, C, C++, C#, Swift (для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°) ΠΈ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках Java, JavaScript, Python, Ruby (для написания ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°). Π­Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π΄Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

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

Π¨Π°Π³ 8. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ лСксСр ΠΈ парсСр.

Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты Π² ΠΊΠΎΠ΄Π΅. ЛСксСр ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π°Π½Π°Π»ΠΈΠ· лСксики, слСдит Π·Π° Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅). ΠŸΠ°Ρ€ΡΠ΅Ρ€ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ синтаксис, опрСдСляСт ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ порядок ΠΈΡ… взаимодСйствия. На графичСской схСмС всё это выглядит понятнСС.

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

Π¨Π°Π³ 9. Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

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

Π¨Π°Π³ 10. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π³Ρ€ΠΎΠΌΠ°Π΄Π½ΠΎΠ΅ количСство тСкстов.

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


Волько до 4.05


Π‘ΠΊΠ°Ρ‡Π°ΠΉ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ тСстов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свои самыС ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½Ρ‹Π΅ скиллы

Бписок Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

ВСст Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΉ

Π§Π΅ΠΊ-лист «Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΠΌΠ°Π½Π° ΠΏΡ€ΠΈ трудоустройствС»

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· выгорания

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ e-mail:

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ€ΠΎΠ±ΠΎΡ‚,
ΡƒΠΊΠ°Π·Π°Π² Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°:


Π£ΠΆΠ΅ скачали 7503

Π¨Π°Π³ 11. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ язык ΠΌΠΈΡ€Ρƒ.

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

Книги ΠΏΡ€ΠΎ созданиС языка программирования с нуля

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

НапримСр, Ρ€Π°Π±ΠΎΡ‚Π° А. Π’. Π₯ΠΎΡ…Π»ΠΎΠ²Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ язык программирования ΠΈ транслятор». Книга Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ, Π½ΠΎ Ρ‚ΡƒΡ‚ всё ΠΆΠ΅ большС ΠΏΡ€ΠΎ транслятор. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ внимания Π½Π΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ, Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ интСрСсно ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ…ΠΎΠ΄ΠΎΠΌ мыслСй Π°Π²Ρ‚ΠΎΡ€Π°. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ ΠΎΠ± этом Π΅Ρ‰Π΅ расскаТСт.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± иностранных Π°Π²Ρ‚ΠΎΡ€Π°Ρ…, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ привСсти Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ языков программирования» ΠΎΡ‚ Π ΠΎΠ±Π΅Ρ€Ρ‚Π° БСбСсты. Книга, бСзусловно, Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ, Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ. Но ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, содСрТаниС здСсь Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ соотвСтствуСт названию, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΡ€ΠΎ созданиС языков программирования.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ задумался ΠΎ создании языка программирования, Π΅ΡΡ‚ΡŒ нСплохая ΠΊΠ½ΠΈΠ³Π° «ВСорСтичСскиС основы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языков программирования». Авторы – отСчСствСнныС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ М. М. Π“Π°Π²Ρ€ΠΈΠΊΠΎΠ², А. Н. Π˜Π²Π°Π½Ρ‡Π΅Π½ΠΊΠΎ, Π”. Π’. Π“Ρ€ΠΈΠ½Ρ‡Π΅Π½ΠΊΠΎΠ². Но ΠΈ здСсь слСдуСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΈΠ³Π° большС Π½Π΅ ΠΏΡ€ΠΎ Β«Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒΒ», Π° ΠΏΡ€ΠΎ Β«Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽΒ».

Она состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²: «Бпособы задания Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… языков», Β«ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΈ Π΅Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ синтаксичСскому Π°Π½Π°Π»ΠΈΠ·ΡƒΒ», Β«ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сканСров», Β«ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ КБ-языков ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ языков программирования». Как ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎ названиям, Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ раскрываСт процСсс создания компиляторов.

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

А Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π»ΠΈ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ язык программирования?

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

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, ΠΈ ΡƒΠΆ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ – Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, нСслучайно Π² Microsoft Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ Π±Ρ‹Π» Π² Ρ…ΠΎΠ΄Ρƒ язык Π‘ΠΈ, созданный Π΅Ρ‰Π΅ Π² Π΄Π°Π»Π΅ΠΊΠΎΠΌ 1973 Π³ΠΎΠ΄Ρƒ. Π”Π°, бСзусловно, ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ людСй, ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π²ΡˆΠΈΡ… ΡˆΠ΅Π΄Π΅Π²Ρ€Ρ‹. Но процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО Π·Π° послСдниС дСсятки Π»Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ услоТнился, ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠΎΠ΄Π²ΠΈΠ³ΠΈ ΡƒΠΆΠ΅ вряд Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹. Π―Π·Ρ‹ΠΊ Π±Π΅Π· ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ станСт.

Онлайн-курсы ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈ созданию языков программирования

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

Онлайн-курсы ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈ созданию языков программирования

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

Π§Π΅ΠΌ Ρ…ΠΎΡ€ΠΎΡˆ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ процСсс обучСния? Π’Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΠΊΡƒΠ΄Π° Π΅Ρ…Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ΄Ρ‚ΠΈ. На качСствС Π·Π½Π°Π½ΠΈΠΉ это Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отраТаСтся, Π³Π»Π°Π²Π½ΠΎΠ΅ – самодисциплина ΠΈ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ΅ распрСдСлСниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, здСсь Π²Ρ‹ сами Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅, ΠΊΡ‚ΠΎ станСт вашим ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ – поТалуйста. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ общСния с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡΠΌΠΈ курса. По сути – это Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½.

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

И Ссли Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, Π²Π°ΠΌ понадобится всё вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ нСпонятныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство курсов ΠΈ мастСр-классов собрано Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Π°Π»Π΅ GeekBrains. Π•ΡΡ‚ΡŒ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ стаТировки послС обучСния.


ΠŸΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠ³Π° — Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€
ΠΏΡ€ΠΎΠ΄Π°ΠΆ


Π Π΅ΠΉΡ‚ΠΈΠ½Π³:
2


( голосов
4 )


ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования

8 дСкабря 2021 Π³. | Salesforce, SAP

Π―Π·Ρ‹ΠΊΠΈ программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Но Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ – ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования ?

БСгодня ΠΌΡ‹ рассмотрим этапы, трСбования ΠΈ стратСгии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ всС устроСно, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈΠ»ΠΈ языка β€” это Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ процСсс, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ этапы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΈ тСстированиС.

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования?

(Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования?)

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

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

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

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

ВрСбования для создания языка программирования

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΠΈΠ½Π³ΠΎΠ²Π°Ρ‚ΡŒ эти аспСкты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ваш Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΉ ΠΌΠ°Π½Π΅Π²Ρ€ большС, Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сСбС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.

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

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π’ΠΈΠ΄Π΅Π½ΠΈΠ΅ вашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ языка. Π­Ρ‚ΠΎΡ‚ этап являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ богатство ΠΈ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ вашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ языка.

НапримСр, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ β€” ΠΊΠ°ΠΊΠΎΠ²Π° Ρ†Π΅Π»ΡŒ вашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ языка, Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ достиТСния ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ языки Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык программирования, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… языках программирования высокого уровня, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ассСмблСр ΠΈ C++.

Π§Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ языки программирования, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ смоТСтС ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ синтаксичСскиС структуры. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… языках, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рассмотрСния для создания ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования.

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

Аромат

Π’Ρ‹, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ вкус языка. Π­Ρ‚ΠΎΡ‚ шаг Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя принятиС слоТных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ языка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ваш Π½ΠΎΠ²Ρ‹ΠΉ язык ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

На этом этапС Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅Ρ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

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

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ компилятора ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки, сообщСния ΠΈ условия Π³ΠΎΠ½ΠΊΠΈ.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ с компилятором ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, это Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎ понятный синтаксис для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Наряду с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ компилятора ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ опрСдСляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ структуры.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

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

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

РСализация

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ структурах развСртывания. Π’ этом случаС ваша новая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ язык Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ систСмами ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

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

ВСстированиС

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ язык ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π²Ρ‹ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π­Ρ‚Π°ΠΏ тСстирования ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π΄ этапом развСртывания. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ тСстирования, Π²Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ всС ΠΈΠ΄Π΅Ρ‚ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Π—Π°Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык программирования?

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

ЭкспСртиза

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· доступных языков, Π²Ρ‹ смоТСтС Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΡ… слоТности, слабости ΠΈ зависимости. НаконСц, Π²Ρ‹ смоТСтС ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Тизнь Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ.

ΠšΠ°ΡΡ‚ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΡ

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

НапримСр, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ язык структурированных запросов (SQL) для управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, этот Ρ„Π°ΠΊΡ‚ извСстСн всСм. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Salesforce ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ SOQL (Salesforce Object Query Language) для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ своих запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ SOQL β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ языка (языков) для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования.

Π’Π°ΠΌ слово

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ языки?

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ языки программирования?

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

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

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

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования? [2023]

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования? Как Π±Ρ‹Π» создан ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования? Π’Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ язык программирования?

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

  • Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования?
  • Как Π±Ρ‹Π» создан ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования?
  • Π—Π°Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнный язык программирования?

Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ языки программирования?

Π’ Π΄Π²ΡƒΡ… словах:

Π―Π·Ρ‹ΠΊΠΈ программирования ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с использованиСм ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ C++. По сути, созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° созданиС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π“Π»Π°Π²Π½ΠΎΠ΅, Π½Π°Π΄ Ρ‡Π΅ΠΌ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, β€” это токСнизация исходного ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора/ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с использованиСм Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ языка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C++).

ΠšΡ€ΠΎΠΌΠ΅ компилятора/ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΅Ρ‰Π΅ Π΄ΠΎ компилятора/ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Однако ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы выполнСния своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ — ЛСксСр. Он Π±Π΅Ρ€Π΅Ρ‚ исходный ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² упорядочСнный список Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². Π’ΠΎΠΊΠ΅Π½Ρ‹ β€” это просто ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, символы, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ числа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли, +, — ΠΈ Ρ‚. Π΄.)

Π—Π°Ρ‚Π΅ΠΌ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ΄Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС структуры ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² Π΄Π΅Ρ€Π΅Π²ΠΎ ΡƒΠ·Π»ΠΎΠ² (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ парсСра). ).

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

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ? — Какова Ρ†Π΅Π»ΡŒ?

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

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

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°

Π”Π°Π»Π΅Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄. – Π’Π°Ρˆ язык Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ для Linux ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Ρ‚ΠΎΠΆΠ΅?

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Π° компилятор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .exe Π² Windows).

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ»ΠΈ интСрпрСтируСтся?

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ слСдуСт ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ язык ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прилоТСния Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ компилятор.

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

КакиС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ (ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова) ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½Ρ‹?

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… фиксированных Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² (ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ , Ссли , Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ , var ΠΈ Ρ‚. Π΄. Они ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ основной синтаксис.

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

ООП ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

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

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

Бинтаксис

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса языка программирования. ΠŸΡ€ΠΈ использовании Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования программист Π΄ΠΎΠ»ΠΆΠ΅Π½ строго ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΅ΠΌΡƒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС компилятор/ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π΅ смоТСт ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

НСобходимо Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой, двоСточия, скобки ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ символы ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹.

КакиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? — Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ я ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный?

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

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

Имя

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

Как Π±Ρ‹Π» создан ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования?

Если Π²Ρ‹ создаСтС Π½ΠΎΠ²Ρ‹Π΅ языки программирования Π½Π° основС ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Π» создан ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ?

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ «язык» встроСн Π² процСссор (элСктричСская Ρ†Π΅ΠΏΡŒ, состоящая ΠΈΠ· элСктричСских ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… транзисторами). Он называСтся ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Код . ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡ† (Π²ΠΊΠ».) ΠΈ Π½ΡƒΠ»Π΅ΠΉ (Π²Ρ‹ΠΊΠ».), Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π±ΠΈΡ‚Π°ΠΌΠΈ.
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π±ΠΈΡ‚ΠΎΠ² Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° процСссорС (инструкции ТСстко Π·Π°ΡˆΠΈΡ‚Ρ‹). Π’ 1949 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» создан ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования Assembly для создания синонимов для Ρ‚Π΅Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ.
Π§Ρ‚ΠΎΠ±Ρ‹ это Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ассСмблСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ язык ассСмблСра Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹Ρ‚ΡŒ написан нСпосрСдствСнно Π² машинном ΠΊΠΎΠ΄Π΅ .

На основС ассСмблСра Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ люди ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ высокоуровнСвыС языки.

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅:
ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования Π±Ρ‹Π» написан Π½Π° машинном ΠΊΠΎΠ΄Π΅.

Π—Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык программирования

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

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