
- •Теория языков программирования и методы трансляции
- •1. Языки и кризис программирования.
- •2. Математические методы описания языков программирования.
- •3. Основные понятия и определения.
- •1. S→ab→aAb→aaAb→aaaB→aaabB→aaabbB→aaabbbB→aaabbbb.
- •2. S→ab→AbB→AbbB→AbbbB→Abbbb→aAbbbb→aaAbbbb→aaabbbb
- •Load a mult b
- •4. Этапы построения транслятора.
- •5. Основные методы поиска ошибок в исходных текстах программ.
- •Устройство управления
- •6. Современное состояние и перспективы развития программирования трансляторов.
- •7. Лексический анализ. Интуитивный подход.
- •8. Классы лексем и их особенности.
- •9. Формирование таблиц лексем и построение дескрипторного текста исходной программы.
- •На основании составленных таблиц можно записать входной текст через введённые дескрипторы (дескрипторный текст):
- •10. Синтаксический анализ. Метод рекурсивного спуска.
- •11. Пример грамматики упрощенного языка Паскаль.
- •12. Пример программы на упрощенном Паскале.
- •Var sum, sumsq, I, value, mean, variance : integer;
- •13. Алгоритм синтаксического анализа по методу рекурсивного спуска.
- •Void read()
- •Void idlist()
- •Void assign()
- •15. Лексический анализ, регулярные грамматики и конечные автоматы.
- •17. Грамматики типа ll(k). Алгоритмы построения магазинных анализаторов.
- •18. Детерминированный синтаксический анализ сверху вниз.
- •19. Правила определения детерминированного мп-разпознавателя по ll(1) грамматике.
- •20. Заключение.
- •Литература
20. Заключение.
Таким образом, мы рассмотрели основные методы и подходы к
построению трансляторов с языков программирования. Конечно, этот краткое изложение не исчерпывает всех возможностей теории и практики и требует дальнейшего развития для чего необходимо обратиться к специальной литературе.
Для построения простых языков, например, задания исходных данных
для сложных программ формальные методы построения трансляторов излишне громоздки и сложны. Простые задачи следует решать просто, используя интуитивные подходы. которые полностью себя оправдывают в этом случае. Для построения трансляторов с языков высокого уровня интуитивные методы, конечно, не подходят, хотя бы потому, что число возможных ошибок может быть необозримо большим и надо их обнаружить все без исключений.
Литература
1. Л. Бек. Введение в системное программирование. – М.: Мир, 1988. – 448 с.
2. Д. Грис. Наука программирования. – М.: Мир, 198. – 416 с.
3. Компаниец Р.И. и др. Системное программирование. Основы построения
трансляторов. – СПб.: Корона принт, 2000. – 256 с.
4. З. Хант. Основные концепции компиляторов. – М.: Издательский дом
«Вильямс», 2002. – 256 с.
5. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и
компиляции. Том 1. Синтаксический анализ. – М.:Мир,1978.
6. Ахо А., Ульман Дж. Теория синтаксического анализ, перевода и
компиляции. Том 2. Компиляция. – М.: Мир, 1978.