- 論壇徽章:
- 0
|
查看全文:http://blog.csdn.net/huyansoft
更新版本1.0.1:該版本解決了之前1.0.0版本中找不到鏈接庫libc.lib的問題,以及IDE下點擊Project菜單出現(xiàn)的BUG。
另一處下載地址:http://download.csdn.net/source/1597132
壓縮包內(nèi)含軟件、實現(xiàn)文檔和使用說明
簡介:
Doctors是標(biāo)準(zhǔn)C++語言子集的編譯器,它可以將C++源程序編譯鏈接成Win32平臺上可執(zhí)行的EXE文
件。代碼采用OOP語言完全手寫而成,提供了IDE界面和命令行二種使用方式,其設(shè)計初衷是為程序提供更多的診斷功能。
文檔內(nèi)容摘要:
目錄
第一節(jié) 初衷和目標(biāo)
一 排錯工具
二 多線程
三 Unicode
第二節(jié) 開發(fā)方法
一 為什么不用Yacc和Lex
(一)Yacc的缺點
1庫
2編程方法和多線程
3錯誤診斷
4二義性和錯誤恢復(fù)
(二)Lex的缺點
1狀態(tài)冗余
2緊耦合
3行號
4效率
(三)小結(jié)
二 OOP的優(yōu)缺點
(一)算法由數(shù)據(jù)結(jié)構(gòu)表達(dá)
(二)核心多態(tài)
(三)編碼反饋出設(shè)計的優(yōu)劣
第三節(jié) 整體結(jié)構(gòu)和流程
一 整體結(jié)構(gòu)
二 整體流程
三 編譯流程
第四節(jié) 詞法分析器
一 記號
(一)記號的類別
(二)支持的C++記號
二 詞法分析過程
第五節(jié) 數(shù)據(jù)類型
一 基本類型
二 數(shù)組類型
第六節(jié) 符號表
一 前端符號表
(一)構(gòu)造與析構(gòu)
(二)前端符號表的作用
1查找名字的定義
2存儲預(yù)分配
二 后端符號表
(一)常量表
(二)變量表
1全局變量
2靜態(tài)變量
3外部變量
(三)字符串表
第七節(jié) 語法分析器
一 支持的語法
二 調(diào)整語法
(一)從產(chǎn)生式到BNF
(二)消除二義性
三 抽象語法樹的設(shè)計
(一)函數(shù)的AST結(jié)點
(二)語句的AST結(jié)點
(三)表達(dá)式的AST結(jié)點
四 語法分析過程
五 語義分析
六 錯誤恢復(fù)
(一)錯誤的應(yīng)對
1詞法錯誤
2語義錯誤
3語法錯誤
(二)錯誤恢復(fù)機制
1繼續(xù)分析
(1)假設(shè)、虛構(gòu)
(2)忽略、推遲
(3)跳躍
(4)調(diào)整文法
2防止誤報
第八節(jié) 中間代碼的設(shè)計
一 中間代碼的結(jié)構(gòu)
二 中間代碼具體格式
(一)賦值
1一元賦值
2二元賦值
3函數(shù)調(diào)用
4數(shù)組元素訪問
(二)標(biāo)號
(三)跳轉(zhuǎn)
1無條件跳轉(zhuǎn)
2條件跳轉(zhuǎn)
(1)布爾跳轉(zhuǎn)
(2)關(guān)系跳轉(zhuǎn)
附錄:參考資料
[ 本帖最后由 relipmoc 于 2009-8-22 23:30 編輯 ] |
|