原本想在聖誕前寫完的,沒想難度超出了想象,只怪當初考慮的時候太簡單了,就象那概要,原本打算寫一千字就夠的
現在離整體寫完還早,不過先貼出剛寫完的,以表歉意,讓各位關心的人等太久了
熬了幾個通宵後,才寫了第一部分的大半段,實在效率不高,實在感覺有點點累,貼後要幾天的休息,才寫剩余的
主要是文章的大結構變動了很多次,希望能寫的盡量直觀易懂,只怪當初語文沒學好,那時老不及格的就是我了,後悔
這裡簡單介紹一下文章的結構和寫時的一些考慮,希望對大家有幫助,不妥之處請指出
文章大概分五部分
第一部分是基本功能的介紹 —— 以傳統方式分析編譯器和調試器
這段分析基本是聖誕後開始的,幸好相關書籍較多,能查到不少內容,特別是調試部分,最後拿SOFTICE來做樣本對比,才找到了重心,不
過關於SOFTICE的實現原理的資料好象沒有,只是大致猜了主要功能的實現,有一個還沒時間細查,就是關於內存范圍斷點的設置,相信和分頁
機制相關,等睡醒後去查
第二部分是視圖分析和文檔分析
將引入圖論概念來分析視圖的基本元素,但現在只是一個總體的概念,具體如何操作還未細想,因為這個靈感的獲得還不到一個星期,聖
誕前的那段時間一直在考察UML,最後發現它並不是本質部分,逆向工程的分析才是中心,一直進展不大,那時也寫了幾千字,基本得作廢吧,
大概在元旦後的一天,才想到視圖的本質是元素關系,用圖論是很恰當的,但是圖論中的一些概念如子圖等要經過一些修改才能使用,希望大
家幫我一起思考
問題是: 高級語言源代碼的所有細節看成一張圖,元素就是每個基本語句和函數,如何從圖中分離出狀態變化過程,類處理過程等等,假
如是中間代碼或者是匯編級代碼,如何分析出各個函數模塊
文檔分析相對簡單點,以動態文檔生成為中心鋪開,不過具體細節還未考慮,這也是稱為初稿的原因,現在寫的多數是原始概念的堆積,需
要再處理後才能成為正文
第三部分是庫設計分析
庫包括類庫和函數庫,是一個獨立部分
分析的工具是視圖和面向對象理論,以及操作系統的接口分析
對此考慮還不多,只是一個簡單影象
第四部分是
編輯器功能分析,總結前面模塊的接口,結合EMACS的特點考慮細節
第五部分是整體結構分析 ——綜合分析
基本是這樣的思路
下面介紹一下初稿(一)的結構
首先是總體目標
然後是第一部分的功能分析
在編譯器分析中,考慮思路是
語言無差異 ---> 組件結構 ---->內部組件結構
調試器分析中
各種調試方案討論 ---> 純軟件實現方案 ---> 基本硬件調試功能的結合 ---> 特殊硬件功能的結合
後面還缺的是調試器的結構分析,和由調試器引出的安全體系考慮
基本是這樣了,大家多提意見呀,我是要去睡了