MihalNik
Как только поправлюсь обязательно посмотрю. Но скорее всего вопрос во взаимопонимание. У меня стадия генерация идёт тут же после парсера. И нет промежуточного представления или как-го деления. Как правило в продвинутых компиляторах есть отдельные модули которые реализуют дополнительную обработку.
Интересно как в AL-IV сделано преобразование типов?
MihalNik написал(а):Зачем их вкладывать? Это лишний слой доступа, проще последовательно расширить, т.е. наследовать
Под вложенностью я имел в виду другое, а именно сюръекцию. Отображение многих к одному.
Когда данные переводятся в более простой вид.
А вот когда надо сделать наоборот отображение одного на многих тут и возникают трудности.
А переводчик вынужден решает неопределённую задачу .Когда у него есть два множиства и куча правил причём часть из них расщепляются,а часть сливаются.
Так как они не однородны, то найти их все и проконтролировать становиться не простой задачью. Как доказать что ваш транслятор работает верно?
MihalNik написал(а):Таблицу очень тяжёло отлаживать, даже для КА одного лексера делать вручную утомительно.
Лексер? Лексер это тривиальная задача. И легко пишется таблицей и легко отлаживается. Причём как таблицей так и не таблицей.
На верно вы имели в виду делать парсер таблицей? Его действительно сложно отлаживать.
Но я не зря сказал о вложенности. Трудности которая присуще грамматическому анализу я решаю через ООП притом довольно просто. На самом все сложности и-за бестолкового описания. Везде очень тяжёлая теория, а практика достаточна проста, хотя и требует заучить скажем с 10 правил.
Отвлёкся. Трудности которые есть у грамматического анализа остаются в грамматическом анализе.
Для переводчика нужны таблицы притом очень простые не сложнее регулярных выражений. Будет описываться что искать и во что преобразовывать. От регулярных выражений их будет отличать наличие типа.
Отредактировано Павиа (2017-06-17 21:59:24)