Skip to content

Introduction to syntactic analysis and compiler theory. Введение в синтаксический анализ и теорию компиляторов.

License

Notifications You must be signed in to change notification settings

alepoydes/writing-compiler-for-neophytes

Repository files navigation

Теория компиляторов для неофитов

Вашему вниманию предлагается электронный курс, из которого вы узнаете, как написать компилятор. Узнаете, с чего начинать, если вы хотите написать свой язык программирования. Узнаете, что какая магия происходит, когда вы нажимаете build в вашей любимой IDE. Узнаете, как компилятор понимает, что вы написали в исходнике. Узнаете, почему разные компиляторы генерируют код с разным быстродействием, и как помочь компилятору сделать быстрый код. Узнаете, почему Java медленнее, чем C, и как производительность JavaScript увеличилась на порядки. Я постараюсь показать, что сев за компьютер или взяв планшет в руки вы неизбежно сталкиваетесь с компиляторами, и что понимая теорию компиляции вы можете изменить свою жизнь к лучшему.

Работа над курсом не завершена. Каждую пятницу курс расширяется. Следите за обновлениями.

Содержание

Содержание курса

Установка

Для просмотра теории установка не требуется. Вы можете открыть первую страницу учебника в любимом браузере и погрузиться в теорию. Для выполнения лабораторных работ вам потребуется установить некоторые программы, но не беспокойтесь, курс основан на бесплатном программном обеспечении:

  1. Вам потребуется JDK, его можно скачать здесь.
  2. Если у вас нет бороды и свитера, то вероятно вам будет легче писать код в одной из IDE: IntelliJ IDEA, NetBeans или Eclipse.
  3. Для генерации синтаксического анализатора нам потребуется ANTLR, загрузите, также плагин для выбранной вами IDE.
  4. Для генерации байткода нам потребуется библиотека ASM.

Если вы не знаете, как установить что-то из вышеперечисленного, не волнуйтесь, мы вернемся к установке, когда нам потребуется что-то из этого программного обеспечения.

Использование

Проходить курс рекомендуется в порядке, указанном в этом документе. Курс содержит примеры решения типовых задач теории компиляторов, вы можете использовать этот код в своих проектах. Загрузить все исходники можно командой

git clone https://github.com/alepoydes/writing-compiler-for-neophytes.git

Хотите внести свой вклад?

Вместе мы можем сделать курс лучше. Вы нашли ошибку, вам есть, что добавить, или у вас есть предложение? Создавайте сообщение на Issue Tracker, или пишите на почту lobanov.igor@gmail.com.

Разработчики

  1. Лобанов Игорь Сергеевич lobanov.igor@gmail.com

Лицензия

Учебник и код могут быть свободно использованы в некоммерческих целях при условия сохранения ссылок на авторство. По вопросам коммерческого использования обращайтесь по адресу lobanov.igor@gmail.com.

About

Introduction to syntactic analysis and compiler theory. Введение в синтаксический анализ и теорию компиляторов.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages