Страница курса "Методы создания оптимизирующих компиляторов" — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Тема 1. Создание парсера языка)
(Задания)
Строка 7: Строка 7:
  
 
====Задания====
 
====Задания====
 +
* Дополнить грамматику языка грамматикой выражений
 +
<pre>
 +
expr : T
 +
    | expr + T
 +
    | expr - T
 +
    ;
 +
 +
T    : F
 +
    | T * F
 +
    | T / F
 +
    ;
 +
 +
F    : ident
 +
    | INUM
 +
    | ( expr )
 +
    ;
 +
</pre>
 +
*Реализовать узел дерева BinaryNode с конструктором BinaryNode(leftoperand,rightoperand,operation). Дополнить грамматику семантическими действиями, связанными с разбором выражений
 
*Реализовать парсер аналогичного языка в C-грамматике
 
*Реализовать парсер аналогичного языка в C-грамматике

Версия 16:20, 31 августа 2014

Тема 1. Создание парсера языка

Из материалов по курсу «Методы построения компиляторов»:

Создание синтаксического анализатора с помощью программы GPPG

Построение синтаксического дерева программы

Задания

  • Дополнить грамматику языка грамматикой выражений
expr : T
     | expr + T
     | expr - T
     ;

T    : F
     | T * F
     | T / F
     ;

F    : ident
     | INUM 
     | ( expr )
     ;
  • Реализовать узел дерева BinaryNode с конструктором BinaryNode(leftoperand,rightoperand,operation). Дополнить грамматику семантическими действиями, связанными с разбором выражений
  • Реализовать парсер аналогичного языка в C-грамматике