В последнее время начали набирать популярность динамические языки программирования. Python и Ruby уже можно назвать мейнстримом. Основной фичей этих языков является метапрограммирование. Однако, ни Python ни Ruby не привнесли ничего нового в теорию языков программирования, а лишь переизобрели и популяризировали идеи рефлексии и метапрограммирования. Весь фундамент был заложен гораздо раньше в языках семейства Lisp. В курсе будет рассказано, почему Lisp занимает особое место среди динамических языков, будут продемонстрированы идеи, которые еще не нашли отражения в современных языках. Курс знакомит слушателей не только с идеями, но и с их программной реализацией. На примере кода интерпретаторов Lisp будет показано, с какими трудностями сталкиваются разработчики динамических языков. Изложение начнется с простых реализаций, занимающих страницу кода и дойдет до диалекта, обладающего наибольшими на сегодняшний день возможностями метапрограммирования. Особенностью курса является изложение теории реификации, которая была разработана автором на основе работ Brian Cantwell Smith. Соединив полученные знания со знаниями о синтаксическом анализе (эта тематика в курсе не рассматривается), слушатели смогут разработать самостоятельно реализацию языка уровня Python.
Date and time | Class|Name | Venue|short | Materials |
---|---|---|---|
17 February 18:30–20:00 |
Введение в Lisp, Lecture | ПОМИ РАН | video |
03 March 18:30–20:00 |
Универсализация синтаксиса, Lecture | ПОМИ РАН | video |
17 March 18:30–20:00 |
Механизация вычислений, Lecture | ПОМИ РАН | video |
31 March 18:30–20:00 |
Окружения, Lecture | ПОМИ РАН | No |
14 April 18:30–20:00 |
Продолжения, Lecture | ПОМИ РАН | No |
28 April 18:30–20:00 |
Реификаторы, Lecture | ПОМИ РАН | video |
12 May 18:30–20:00 |
Продолжения и итераторы, Lecture | ПОМИ РАН | video |
19 May 18:30–20:00 |
Пролегомены ко всякой будущей теории языков программирования, Lecture | ПОМИ РАН | No |