Ho Lee Fuk

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

НазваниС: Алгоритмы парсинга ВСория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° (2020)

9d44d7f1dd5208243453df4af96d0e69.jpg


ОписаниС:

Parsing Algorithms

Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ Бошников udemy

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

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

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

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

Π’ этом курсС ΠΌΡ‹ углубляСмся Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ аспСкты Ρ‚Π΅ΠΎΡ€ΠΈΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описывая парсСры LL ΠΈ LR. Однако Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс обучСния ΠΈ понимания простым ΠΈ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΌΡ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ создаСм автоматичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ языка программирования, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ JavaScript ΠΈΠ»ΠΈ Python, с нуля.

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

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

Для ΠΊΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ этот ΠšΡƒΡ€Ρ?

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

Если вас особСнно ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ компиляторы, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ инструмСнты прСобразования исходного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ этот курс Ρ‚Π°ΠΊΠΆΠ΅ для вас.

ЕдинствСнноС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС для этого курса - Π±Π°Π·ΠΎΠ²Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹: Π΄Π΅Ρ€Π΅Π²ΡŒΡ, списки, ΠΎΠ±Ρ…ΠΎΠ΄.

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

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ создаСм язык, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΏΠΎ сСмантикС Π½Π° JavaScripthttps://s13.eground.org/ΠΈΠ»ΠΈ Python (Π΄Π²Π° самых популярных языка программирования Π½Π° сСгодняшний дСнь), ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ JavaScript - Π΅Π³ΠΎ элСгантная ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°Π»ΡŒΠ½Π°Ρ структура, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ООП Π½Π° основС классов ΠΈ Π½Π° основС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ², идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для этого.

МногиС ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с JavaScript, поэтому сразу ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅. Для создания автоматичСского парсСра ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ инструмСнт Syntax, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся нСзависимым ΠΎΡ‚ языка Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ парсСров ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для Python, Ruby, C #, PHP, Java, Rust ΠΈ Ρ‚. Π΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ, рСализация этого парсСра ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ пСрСнСсСна Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΈ вкусу.

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

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

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

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

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

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



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

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

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

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

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

УТС с нами?

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

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