我正在研究Red Dragon Book Compilers的Bootstrapping,发现交叉编译器的T图非常令人困惑。我不明白“通过编译器2运行编译器1”的含义。谁能提供一些更好的解释,类比或与某些实际编译器相关的例子?
首先一些符号。由 我的意思是语言的编译器大号 书面语言小号产生输出语言/机器代码Ñ。这是一个墓碑或T型图。
编译一个编译器
假设我们在实现语言S中为新语言L交叉编译,从而为机器N生成代码。
假设我们还有一个在M机上运行的现有S编译器,为M机实现代码:
通过SMM运行LSN以生成LMN
编译器构造