Я изучаю компиляторы и создаю генератор кода для простого языка, работающего с двумя типами: символами и целыми числами.
После того, как пользовательский ввод был просканирован сканером, а затем проанализирован синтаксическим анализатором, я получаю AST-представление ввода. Я сделал генерацию кода для еще более простого языка, который обрабатывает только выражения с целыми числами, операторами и переменными.
Однако с этим новым языком я иногда получаю поддерево для объявления типа, например:
(IS TYPE (x) (INT))
который говорит, что x имеет тип INT.
Должен ли быть случай в моем генераторе кода, который имеет дело с этими объявлениями типов? Или это просто для проверки типов семантическим анализатором, поэтому я должен просто предположить, что типы были проверены, и проигнорировать эту часть дерева и просто присвоить значение для x?
x
, в зависимости от типаx
? Можете ли вы сгенерировать лучший код, зная тип? и т. д. - person   schedule 18.11.2011