我是学生,正在为多核处理器优化GCC。我试着通过源代码,很难通过它,因为我需要添加一些代码到后端。任何人都可以提出一些很好的资源来解释通过不同阶段的代码流。 另外建议一些开发环境用于调试GCC,主要是为了遍历代码。在Windows上可以吗?一些理解GCC源代码的指针
回答
作为一个起点,请参阅GCC网站上的Links and Selected Readings。特别感兴趣的是你的,我认为,主要有:
- GNU C Compiler Internals
- Compilation of Functional Programming Languages using GCC -- Tail Calls由安德烈亚斯·鲍尔
- Porting GCC for Dunces由汉斯 - 彼得·尼尔森
如果你想在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 nvl或GCC developers mailing list)解释记录不好的(或根本不记录的)。
- 其实program comprehension是一个活跃的研究领域。
谢谢。这真的很有帮助。 – rizwanhudda 2010-03-24 07:54:04
不客气。 – MaD70 2010-03-24 18:02:26
我会建议你使用GCC irc channel,是指对GCC的发展的讨论。
- 1. 指针的一些代码
- 2. 端口一些代码,GCC,有一些问题#pragma指令
- 3. 理解伪代码的一些问题
- 4. 理解指针
- 5. 理解指针
- 6. 无法理解一些Go代码
- 7. 无法理解一些代码形式
- 8. 如果我错过了一些源代码,如何理解代码库?
- 9. 无法理解汇编代码中的基址指针计算
- 10. 理解指针C++
- 11. 理解指针(指值)
- 12. 如何解码gcc编译的c源代码
- 13. 解析云代码 - 从指针阵列中删除指针
- 14. GCC M68HC11(HC12)端口帧指针管理
- 15. 图像处理算法代码,解释指针
- 16. 了解一些C++代码
- 17. 解释一些jQuery代码
- 18. 解释一些javascript代码
- 19. 了解一些C#代码
- 20. VB.Net - 整理一些代码
- 21. GCC源代码中的C语法
- 22. 理解C:递增指针
- 23. C - 帮助理解指针
- 24. 向理解空指针
- 25. Obj C - 理解指针
- 26. 理解指针运算
- 27. 有人可以指点我一些AVFoundation示例源代码吗?
- 28. 无法理解Java 1.7 PopupFactory源代码
- 29. HTML,JavaScript来理解源代码需要
- 30. 滞留在理解Bootstrap.v3 tab.js源代码
你曾经参加过编译器课程,或者读过龙书吗?如果两者都是“否”,那么你不太可能理解代码 - 编译器是最复杂的程序之一。 – 2010-03-23 23:26:11
是的,我已经参加了编译课程,并且还阅读了龙书[尽管并非完全]。但是,尽管如此,试图了解海湾合作委员会是如你所说的具有挑战性 – rizwanhudda 2010-03-24 07:52:35
我已经参加了一个编译器课程。龙书是什么? – Daniel 2014-05-29 16:44:44