2010-03-23 39 views
6

我是学生,正在为多核处理器优化GCC。我试着通过源代码,很难通过它,因为我需要添加一些代码到后端。任何人都可以提出一些很好的资源来解释通过不同阶段的代码流。 另外建议一些开发环境用于调试GCC,主要是为了遍历代码。在Windows上可以吗?一些理解GCC源代码的指针

+3

你曾经参加过编译器课程,或者读过龙书吗?如果两者都是“否”,那么你不太可能理解代码 - 编译器是最复杂的程序之一。 – 2010-03-23 23:26:11

+2

是的,我已经参加了编译课程,并且还阅读了龙书[尽管并非完全]。但是,尽管如此,试图了解海湾合作委员会是如你所说的具有挑战性 – rizwanhudda 2010-03-24 07:52:35

+0

我已经参加了一个编译器课程。龙书是什么? – Daniel 2014-05-29 16:44:44

回答

7

作为一个起点,请参阅GCC网站上的Links and Selected Readings。特别感兴趣的是你的,我认为,主要有:

如果你想在Windows上,你可能需要开发从MinGW(适用于Windows的Minimalist GNU)编译器套件源代码(它包括GNU GDB调试器)开始,它是GCC到Windows的一个端口。

对于一个舒适的开发环境,我不能帮忙,因为我不用C++开发。但我认为一个好的C/C++ IDE是你需要的:看看this comparison,有很多免费/开源的Windows IDE。

更新:我觉得ICI也可以是你的兴趣:

互动编译接口 (或“ICI”的简称)是一个插件 系统的高级别 编译器无关的和低层次的 编译器相关的API来变换 当前编译器到协作 开放式模块化交互式工具集。 ICI框架充当编译器和用户可定义的插件之间的“中间件”接口。它开辟了 和重用产品质量 编译器基础设施,使 程序分析和检测仪器, 细粒度程序优化, 新的发展 简单的原型和同时避免 从 从头构建新的编译工具的研究思路。例如,在 里程碑GCC用于自动编译和 架构设计和程序 基于统计 分析和机器学习优化。它 应启用通用自我调整 编译器适应异构, 可重构,多核 体系结构从 超级计算机到嵌入式系统。

..作为Collective TUNING下的其他项目的保护伞。BlueRaja在评论中写道,编写“编译器是最复杂的程序之一”,这是夸大其辞的:有非常简单的编译器和非常复杂的编译器。但是在编译器理论中(一旦你研究了它),没有什么是深奥的。海湾合作委员会是一个复杂的程序,无论如何理解,记录不完善的程序。因此,不要气馁rizwanhudda:开始研究可用的文档,然后要求GCC开发人员(在GCC irc频道上,作为suggested by nvlGCC developers mailing list)解释记录不好的(或根本不记录的)。

  1. 其实program comprehension是一个活跃的研究领域。
+0

谢谢。这真的很有帮助。 – rizwanhudda 2010-03-24 07:54:04

+0

不客气。 – MaD70 2010-03-24 18:02:26