gpt4 book ai didi

gcc - 如何深入理解 gcc 编译器?

转载 作者:行者123 更新时间:2023-12-04 14:21:04 27 4
gpt4 key购买 nike

这个问题的背景:我想了解编译器是如何工作的。我学到了很多新东西:scanner、parser、AST、IR、optimization、frontend、backend、LL(1),...我逐渐进步,这很有趣。现在,我想做一些实际的工作。
从程序员的角度来看,我知道为什么 typedef struct { int x;接下来是我的类型*; } mytype; 不编译,我知道正确的语法 typedef struct mystruct { int x;接下来构造 mystruct*; } mytype; 但我想知道在编译过程中问题发生在什么地方EXACTLY。我正在使用 gcc,我想知道如何使用 gcc 开发人员选项 -fdump-... 来回答这个问题。

最佳答案

GCC编译器工作的第一步是解析器

c-parser.c 

它将您的 c 或 c++ 或其他一些代码解析为 gimple 表示:

Parse -> Gimplify -> Tree -> SSA -> Optimize -> Generate -> RTL -> Optimize RTL Generate -> ASM

可以发现错误,例如,在终端中,或者在 IDE 中的错误输出中,如下所示:

gcc yourcode.c
yourcode.c:2:25: error: unknown type name 'mytype'
typedef struct { int x; mytype* next; } mytype;
^~~~~~

您还可以通过 link

对不起我的英语。

关于gcc - 如何深入理解 gcc 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55039490/

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