gcc 源碼分析-序

市面上講述編譯原理的書籍比較多,但基本上都是以理論爲主,即使談到適用的技術,也都是泛泛而談,我這裏就開一個頭,來探討一下編譯器的具體實現方式,我以大名鼎鼎的gcc編譯器爲基礎,聊一聊它的具體實現。

gcc編譯器版本比較多,最新的大概已到了4.7, 如果以最新的來分析,第一個問題,代碼太多,看起來比較痛苦;第二,中間可能要夾雜太多的邊緣東西,爲了降低難度,我將以gcc1.40版爲主。

要分析gcc的源碼,首要條件就是要編譯通過,但是這個代碼年代已久,很難在現代的開發環境中編譯通過。欣喜地是,通過我的艱苦努力,居然在vc6上編譯通過了,這樣爲其分析代碼創造了很好的條件。

大凡看到gcc代碼的都知道,gcc的詞法分析採用的手動方式,語法分析用的是bison工具。我在用vc6編譯過程中並沒有完全按照gcc1.40的代碼方式,詞法分析我嘗試用flex工具來分析。其他部分基本上採用的gcc1.40的代碼。

爲什麼用vc6編譯,因爲vc6調試跟蹤非常方便,目前在windows上沒有找到一款GUI調試跟蹤能比vc6好用的,這爲分析其代碼提供了很好的條件。

這個工作我也剛剛開始,所以這個更新比較慢,什麼時候能完,目前沒有計劃!

要看懂gcc代碼,我將首先從flex,bison兩個工具談起!

下一節首先談談flex.

發佈了85 篇原創文章 · 獲贊 20 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章