Я не слышал о аннотированном синтаксическом дереве в обсуждении компиляторов, поэтому я собираюсь использовать ту же идиому AST (Абстрактное синтаксическое дерево).
Обычно ваш парсер может создать AST, который будет, в ожидании этого, абстрактным представлением вашего кода. Он не содержит пробелов или семантических ароматов, таких как скобки, скобки и т. Д. Он также разрешает любую двусмысленность в вашем коде.
AST позволит очень легко производить из него icode. Этот код является в основном кодом инструкции на вашем языке. Он будет содержать элементарные операции, такие как перемещение, переход и т. Д.
Процесс будет идти Код -> AST -> ICode. Затем ICode может быть запущен через виртуальную машину.
Я не вижу ничего плохого в создании ICode для другой платформы.
Обновление
Я перечитал вопрос еще раз и понял, о чем сейчас говорят. Он говорит, что вместо создания представления icode оставляет аннотированное синтаксическое дерево. Мне любопытно, если бы вы создали свой собственный компьютер, который обрабатывал бы аннотированное синтаксическое дерево, или это дерево затем было преобразовано в другой хорошо известный промежуточный код?
Я бы предположил, что дизайн движка для обработки синтаксического дерева был бы более сложным, чем если бы он был в промежуточном формате, представляющем основы, такие как mov, goto и т. Д.
Мне нужно забрать эту книгу. Я узнал все из книги о драконах и искал через ANTRL, yacc, byson и пользовательские токенизаторы и парсеры.