【发布时间】:2011-07-19 05:19:40
【问题描述】:
谁能用抽象的方式向我解释这个术语,然后给我一个小例子,它是如何工作的。在我看来,这与编译器的前端和后端以及各个阶段的执行方式有关。我很难用我自己的话来描述它。
感谢您的回复 马蒂亚斯
【问题讨论】:
标签: compiler-construction terminology
谁能用抽象的方式向我解释这个术语,然后给我一个小例子,它是如何工作的。在我看来,这与编译器的前端和后端以及各个阶段的执行方式有关。我很难用我自己的话来描述它。
感谢您的回复 马蒂亚斯
【问题讨论】:
标签: compiler-construction terminology
编译器执行语言转换:输入是语言 A,输出是语言 B(通常对语言类型和转换结果有一些要求)。为了做到这一点,输入经过编译器内部的各个阶段 - 这些阶段形成了管道。
最常用的划分包括 3 个阶段:前端 - 中端 - 后端
前端负责解析输入语言并执行语法和语义检查(以确保输入程序符合语言规范 A),然后将其转换为中间语言。中间端采用中间表示,通常对其执行几个(与语言无关的)优化步骤(尽管可以跳过该步骤)。中间端完成后,中间语言转换后的程序被传递到后端,后端将其转换为语言 B 通常还执行一些特定于语言 B 的优化。
这三个阶段中的每一个都包含几个步骤。所有的东西一起构成了编译器的管道,因为它基本上是程序如何流经被转换的系统。
【讨论】: