2011-03-20 28 views
0

有人可以用抽象的方式向我解释这个术语,然后给我一个小例子说明它是如何工作的。在我看来,它与编译器的前端和后端以及各阶段的执行方式有关。我有问题用我自己的话来形容它。编译器管道的定义

感谢您的答复 马蒂亚斯

回答

2

编译器进行语言转换:输入是语言A和输出是语言B(通常有连接到语言的类型和变换的结果有一些要求)。为了做到这一点,输入经历了编译器内部的各个阶段 - 这些阶段形成了管道。
最常用的除法包括3个阶段:前端 - 中端 - 后端
前端负责解析输入语言并执行语法和语义检查(以确保输入程序符合语言规范A),然后将其转换为中间语言。 Middle End采用中间表示法,通常在其上执行几个(与语言无关的)优化步骤(尽管可以跳过)。在中间结束之后,所产生的中间语言转换后的程序被传递到后端,后端将其转换成语言B,通常还执行特定于语言B的一些优化。
三个阶段中的每一个也包括几个步骤。而且所有东西一起构成了编译器的管道,因为它基本上是如何通过正在转换的系统流向程序。