А А. ерехов A. E Мое аль
Д Ю Булычев
Н Н. Вояковс ая
р тк
к мпилят р в
т
НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ
Н. Н. Вояковская, А. Е. Москаль, Д. Ю. Булычев, А. А. Терехов
Разработка компиляторов
2-е издание, исправленное
Вояковская Н. Н. Москаль А. Е. Булычев Д. Ю. Терехов А. А. Национальный Открытый Университет "ИНТУИТ"
2016
2
Н. Н. Вояковская, А. Е. Москаль, Д. Ю. Булычев, А. А. Терехов Разработка компиляторов
Разработка компиляторов/ Н. Н. Вояковская, А. Е Москаль, Д. Ю. Булычев, А. А. Терех)в
- М. : Национальный Открытый Университет "ИНТУИТ", 2016
В данном курсе рассматриваются теоретические основы и практические методы
создания компиляторов языков программирования. Изложение ведется на основе
языка программирования С# и платформы . NET.
(с) ООО "ИНТУИТ. РУ", 2006-2016
(с) Вояковская Н. Н. , Москаль А. Е. , Булычев Д.
Ю. , Терех)в А. А. , 2006-2016
з
Н. Н. Воя ков екая, А. Е. Москаль, Д. Ю. Булычев, А. А. Терехов Разработка компиляторов
Введение и обзор платформы . NET
В введении рассматриваются цели и задачи данного курса, его
структура и рамки, а также говорится об необходимых предварительных
знаниях, которые потребуются для полноценного понимания курса. В
первой лекции обсуждаются следующие вопросы: общая идея
архитектуры . NET; достоинства и недостатки . NET; схема трансляции
программ в . NET; основные черты промежуточного представления,
используемого в . NET (MSIL); безопасность в . NET; объектная модель
. NET; понятие сборки, манифест сборки; модель безопасности в . NET;
единая система типов данных. Введение
Данный курс посвящен принципам разработки компиляторов. Основные задача данного курса - познакомить студентов с базовыми
идеями и методами, используемыми при создании современных
компиляторов, а также дать практические навыки написания простых
компиляторов. В качестве целевой платформы для компиляторов в
данном курсе используется Microsoft . NET. Подразумевается, что к
моменту окончания данного курса большинство студентов смогут
самостоятельно создать работающий компилятор с простого С#-
подобного языка программирования. Теория создания компиляторов активно развивалась в течение
последних 50-60 лет и к сегодняшнему дню в данной области накоплено
огромное количество знаний. Поэтому практически невозможно
подробно осветить все вопросы создания компиляторов в рамках
университетского курса. В этом курсе авторы пытаются лишь преподать
основные принципы создания компиляторов и познакомить студентов с
некоторыми типичными распространенными приемами. Для
дальнейшего совершенствования полученных навыков студенту
необходима практика и самостоятельное изучение последних
достижений в этой области. Курс состоит из двух частей - теоретической и практической. Теоретическая часть организована в виде презентаций и данного
учебника, а практическая часть состоит из демонстраций и
4
Н. Н. Воя ков екая, А. Е. Москаль, Д. Ю. Булычев, А. А. Терехов Разработка компиляторов
самостоятельных упражнений. Для полноценного понимания курса студенту потребуются базовые
знания языка С# и платформы . NET в целом.