gpt4 book ai didi

compiler-construction - 编译器构造

转载 作者:行者123 更新时间:2023-12-02 10:49:07 26 4
gpt4 key购买 nike

我正在做编译器设计和构建。我一直想知道为什么我们实际上需要编译器中的六个阶段。有人可以指出在编译过程中有多个阶段的一些优点吗?

最佳答案

正如 delnan 所说,您应该明确说明您正在谈论的阶段。它们没有那么标准化,以至于我们确切地知道您正在谈论的六个。编译器仍然是一个普通程序,和普通程序一样,可能会反射(reflect)其作者的风格。

部分答案是因为编译是一个非常困难的问题 .我曾经有完全相同的问题,但是对于您正在考虑的 6 阶段方案中可能只考虑一个阶段的问题:解析。为什么大家总是先把输入流分成tokens(lexing),然后才给tokens序列赋予结构(parsing)?为什么人们教它,好像它是唯一的方法?是否有一个定理说它必须以这种方式完成?

回想起来,答案是可能有其他方法可以做到这一点,但发现这种方法是可行的,而且由于将线性文本转换为结构化 AST 的问题是一个非常困难的问题(当抽象地考虑时,没有知识我们已经积累了),任何将初始问题分割为明确识别的子任务都有帮助。如果一个特定的分割部门过去有效,为什么不继续这样做呢?

当然,解析本身只是将文本转换为可执行代码这一极其困难的问题中的一个子任务。我怀疑在编译器设计的每个级别都使用了相同的经验方法。我们现在这样做的方式反射(reflect)了过去尝试解决该问题的历史。

关于compiler-construction - 编译器构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com