gpt4 book ai didi

c - 如何将基于 C 的语言添加到 GCC

转载 作者:搜寻专家 更新时间:2023-10-30 20:04:59 25 4
gpt4 key购买 nike

如果我想修改或添加我自己的 C 扩展,并将它们添加到 GCC C 编译器中,我需要做什么?我不想提议更改语言,我想知道 C 编译器的实际工作方式。

我看过 GCC 的源代码,它看起来好像 Objective-C 是作为一个简单的解析器实现的,它生成的代码引用修改后的运行时库,然后引用所有基于 C 的代码使用常规的 C 编译器。我没有深入研究它,所以我可能不在正确的轨道上。

例如,我想将自己的关键字添加到 Objective-C 中,只是为了好玩。我想添加一些看起来很容易实现的东西,比如 @assert。我只想让 @assert 调用一个我将添加到 Objective-C 运行时的函数:

objc_runtime_assert (__FILE__, __LINE__, expression, "string version of expression");

显然,无论如何我都可以将其实现为函数调用和宏,但我想了解 C 源代码的解析和编译阶段,也许这样我就可以将自己的扩展添加到一种语言中供我自己使用.

我看过的源代码始终指的是“树”,并且有很多很多宏执行操作或从这些树中获取信息。

是否有任何文档可以深入解释这类事情?

最佳答案

树很可能是abstract syntax trees (AST)任何编译器书籍都会教授这一点。 The dragon book是非常经典的,在我上的课上我们使用了 Robin Hunter 的 The essence of compilers,ISBN 0-13-727835-7。您还应该能够找到大量来自不同学院和大学的 Material ,并使用一些好的搜索词(编译器设计、AST、词法分析、自上而下解析、自下而上解析、语义分析、LL , 左)。

关于c - 如何将基于 C 的语言添加到 GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811022/

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