Ho Lee Fuk

БСнсСй
βš” ΠΠ”ΠœΠ˜ΠΠ˜Π‘Π’Π ΠΠ’ΠžΠ  βš”
РСгистрация
22 Π€Π΅Π²Ρ€Π°Π»ΡŒ 2018
БообщСния
11.997
Автор: udemy

НазваниС: Π―Π·Ρ‹ΠΊ программирования с LLVM (2023)

00f187f3f841305bfe1d74c5edc7be4e.jpg


ОписаниС:

Programming Language with LLVM

udemy

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ языки программирования ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ? Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ компилятором ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ΠΈ JIT-компилятор? А Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?

Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ вопросов, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка программирования!

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

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

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ способными ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ сСмантику языка программирования ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π·Π° 4-6 часов - с содСрТаниСм, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ прямо Π½Π° Ρ†Π΅Π»ΡŒ.

Π’ курсС ΠΌΡ‹ сосрСдотачиваСмся Π½Π° компиляции нашСго языка Π² LLVM IR ΠΈ создаСм Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ язык программирования. Π‘Π»ΠΈΠ·ΠΊΠΎ работая с инфраструктурой компилятора LLVM, Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ компиляция Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ языки производства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C++, Rust ΠΈ Ρ‚. Π΄.

РСализация языка программирования Ρ‚Π°ΠΊΠΆΠ΅ повысит ваш практичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования ΠΈ сдСлаСт Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

Для этого курса ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… трСбования.

ΠšΡƒΡ€Ρ "Π―Π·Ρ‹ΠΊ программирования с LLVM" являСтся СстСствСнным ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… курсов - "ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° с нуля" (Ρ‚Π°ΠΊΠΆΠ΅ извСстного ΠΊΠ°ΠΊ "ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ"), Π³Π΄Π΅ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ создавали ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ язык программирования, Π½ΠΎ Π½Π° Π±ΠΎΠ»Π΅Π΅ высоком, ΡƒΡ€ΠΎΠ²Π½Π΅ AST, Π° Ρ‚Π°ΠΊΠΆΠ΅ "ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹". Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ языки программирования Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ eval, Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅, Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° областСй видимости, окруТСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ конструкции, - Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ курс ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (Π±ΠΈΡ‚ΠΊΠΎΠ΄/IR), Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ производствСнныС языки, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с C++. Однако этот класс Π½Π΅ ΠΎ C++, поэтому ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ конструкции (ΠΈ пСрСносимыС Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки).

Для ΠΊΠΎΠ³ΠΎ этот курс ?

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

Если Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ LLVM, Π΅Π³ΠΎ инфраструктурой компилятора ΠΈ способами создания собствСнного языка, Ρ‚ΠΎ этот класс Ρ‚Π°ΠΊΠΆΠ΅ для вас.

Π§Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ компиляторы ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ языкС, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ C++. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² основном Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· C++, Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡΡΡŒ Π½Π° особСнности C++. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈ пСрСносимым Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Rust ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ высокоуровнСвыС языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Python. ИспользованиС C++ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ JIT-компилятора Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π½Π° английском языкС

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅:
Для просмотра содСрТимого Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ:
πŸ”’

Доступ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ†Π΅Π½Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌ



Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ All-dar.
 

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ этой Ρ‚Π΅ΠΌΡ‹ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ зарСгистрированным участникам

Новый участник?

РСгистрация Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹

УТС с нами?

Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² свой Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚

Π‘Π²Π΅Ρ€Ρ…Ρƒ