工作進度1

 

這幾天的主要時間花在閱讀語言的IEEE標準上,同時也在思考相應的詞法,語法模塊的實現.

按現在的理解來看,詞法模塊的工作量並不太大,略微有點難度的就是對宏定義命令和include文件的處理.自己也基本上有了相應的實現思路,剩下的只是具體的工作量的問題.

語法模塊的工作可以劃分爲兩個部分,第一部分是語法規則的編寫;第二部分則是語義動作的實現.

對第一部分來說,由於自己需要實現的是一個已經很成熟的語言,在這門語言的IEEE標準裏已經給出了完整的文法規則,有了標準作爲參考,自己的主要 工作就是消除標準中給出的文法規則裏包括的一些二義性及衝突,也不存在瓶頸性的問題,唯量而已. 第二部分則是眼下比較重要的部分,因爲這一部分的實現會直接影響到跟後端模塊的接口,所以這部分的數據結構的設計,包括框架性的設計要作足功夫. 接下來,自己會繼續花費一些精力在這上面.

另外這段時間自己在考慮的一個問題就是代碼的可測試性問題. 按照我目前的想法,是希望爲詞法模塊,語法模塊分別設計相應的測試引擎. 想加入對某個語言功能塊的支持,要遵循如下的流程:

1. 修改,擴展詞法模塊

2. 啓動詞法測試引擎進行測試,通過則進入到3,否則跳回至1

3. 修改,擴展詞法模塊

4. 啓動語法測試引擎進行測試,通過則進入到5,否則跳回至3

5. 繼續後續功能模塊的開發

按照我預想的這個流程,每加入一個功能模塊,都要分階段地進行足量的測試,這樣可以儘量避免bug和潛在的問題傳遞到下一個階段的概率,避免過長調試,測試鏈條帶來的開銷.畢竟,在離問題發生的最近點解決問題的成本是最低的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章