Раздел 45 · Python backend: Тарбадель

Грамматики, BNF, конечные автоматы

middle-senior~40 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

После мини-босса Элодий сказал: «а теперь язык, на котором написан город», и повёл тебя через машинный зал к стойке, адрес которой написал на стене. Она гудит громче остальных, на полу перед ней мелом схемы, которых ты не понимаешь. Ты ждал, что он покажет новый язык. Он садится на ящик и спрашивает Узора, что такое регулярка.

В Lisp ты читал скобки и почти не думал о правилах: s-выражение устроено так коротко, что лексер и парсер из урока 68 и урока 69 писались по наитию. Дальше так не выйдет. В языке города есть операторы с приоритетами, отступы, ключевые слова, и наитие на них сломается. Нужен способ записать правила языка точно, а потом превратить запись в код. Этот урок про такую запись (грамматику) и про самую простую машину, которая по грамматике читает текст (конечный автомат). Заодно узнаешь, почему регулярка Узора думает минуту.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.