1. Задайте контекстно-свободную грамматику для каких-либо вычислений.
Например, вычисления в калькуляторе, обработка регулярных выражений, построение деревьев вывода и т.п.: входные данные для вычислений должны задаваться на языке, описываемом вашей грамматикой.
2. Задайте семантику вычислений как набор семантических атрибутов символов грамматики и зависимости между атрибутами.
3. Проверьте пригодность грамматики для детерминированного нисходящего разбора. При необходимости измените грамматику и семантику, например, из-за устранения левой рекурсии.
4. Приведите пример вычисления по дереву вывода некоторого выводимого слова.
5. Методом рекурсивного спуска постройте сначала программу распознавателя, а затем, вставив вычислительные операции в необходимые локации в коде программы, постройте транслятор, выполняющий вычисления. Покажите соответствующие места на диаграммах.
6. Приведите протокол вычислений при трансляции выводимого слова.
Указания:
1. Возможно также применение восходя