https://github.com/aalexuser/compiler-development
Лабораторные работы по разработке компиляторов (ИТМО, ПИиКТ-СППО, 3 курс)
https://github.com/aalexuser/compiler-development
Last synced: 21 days ago
JSON representation
Лабораторные работы по разработке компиляторов (ИТМО, ПИиКТ-СППО, 3 курс)
- Host: GitHub
- URL: https://github.com/aalexuser/compiler-development
- Owner: AaLexUser
- Created: 2024-02-21T11:38:14.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-07T06:08:17.000Z (almost 2 years ago)
- Last Synced: 2025-11-03T17:11:28.642Z (4 months ago)
- Language: C
- Homepage: https://aalexuser.github.io/Compiler-development/Final-Assignment/docs/webHelpFA2-all/starter-topic.html
- Size: 13.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Разработка компиляторов
Целью освоения дисциплины является получение базовых знаний в области теоретических основ проектирования компиляторов, а также овладение навыками практического применения программных средств, обеспечивающих реализацию: лексического и синтаксического анализаторов. В курсе рассматриваются основные методы синтаксического анализа, способы построения абстрактных синтаксических деревьев для исходных программ, и генерация промежуточного представления программ на базе таких деревьев. Рассматриваются вопросы низкоуровнвой генерации кода, вопросы связывания и семантического анализа.
### Разделы
1. Теория формальных языков. Распознаватели для формальных языков.
1.1. Понятие порождающей грамматики. Классификация грамматик и формальных языков.
1.2. Распознаватели для регулярных языков. Конечные автоматы.
1.3. Распознаватели для контекстно-свободных языков. МП автоматы.
2. Конструирование лексических анализаторов
2.1. Фаза лексического анализа. Понятие лексем.
2.2. Конструирование лексического анализатора с применением Flex.
3. Конструирование синтаксических анализаторов
3.1. Фаза синтаксического анализа. Неоднозначность контекстно-свободных грамматик.
3.2. Нисходящие и восходящие синтаксические анализаторы. LL(1) и LR(1) анализаторы.
3.3. Конструирование синтаксических анализаторов с применением Bison.
4. Семантический анализ и генерация кодакода.
4.1. Конструирование абстрактного синтаксического дерева. Вычисление семантических атрибутов.
4.2. Промежуточное представление программы. Трехадресный код.
4.3. Генерация машинного кода. Понятие оптимизации.
---
### Helpful materials
- [Chomsky Classification of Grammars - TutorialsPoint](https://www.tutorialspoint.com/automata_theory/chomsky_classification_of_grammars.htm)
- [Compiler Design - Youtube Playlist](https://www.youtube.com/playlist?list=PL6xbXi2C3seOXoXK5nL92Frnk_gOT-_2b)