我是學生,正在爲多核處理器優化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