Разработка промежуточного представления для компилятора

Я изучал дизайн компилятора. Я прошел семестровый курс по этому вопросу в университете и читал Современный дизайн компилятора Грюна и др., Книга, кажется, защищает аннотированное абстрактное синтаксическое дерево в качестве промежуточного кода, и это то, что мы используется в курсе.

Мой вопрос заключается в том, каковы преимущества этого подхода по сравнению с созданием некоторого вида языка стековых машин или низкоуровневого псевдокода, особенно в отношении наличия компилятора, который может ориентироваться на многие машины.

Это хорошая идея - просто выберите уже существующее представление низкого уровня, такое как LLVM, и используйте его в качестве промежуточного представления?

6
задан Magnus 6 January 2011 в 02:44
поделиться