Compiler Final Project
做完了!助教竟然又把 global variable definition 限制在 class definition 最前頭,這真的有點把我惹毛了,誰理他啊 XD。(真要改其實只要改幾句文法就成了,但我才不改 XD。)HW4 的 wc
結果是
94 239 1395 hw4.l 709 1960 19210 hw4.y 291 771 6359 symbol_table.c 326 932 8033 CodeGen.c 1420 3902 34997 totalFinal project 則是
96 244 1418 final.l 1124 3126 32513 final.y 504 1177 9673 symbol_table.c 708 2444 21537 CodeGen.c 2432 6991 65141 total其中 lex 是因為發現有 bug 所以改了幾個字元 XD。yacc 多 400 行、symbol table 多 200 行、code generator 多 400 行,改得不算太多,代表當初設計得還不錯 XD。
這次的架構由我一手設計,然後把我需要的 symbol table 和 code generator 介面寫好、交給組員實作,最後成品拿回來和我寫的 parser 整合。雖然介面一變再變(一方面是我思考不周、一方面是作業的 spec 就一直變…),但整體運作模式似乎相當可行。雖然沒有《人月神話》描述的 "surgeon" 那樣地一手包辦而使整體完全和諧一致,但至少在設計上能達到相當近似的效果。
我個人是覺得 "surgical team" 模式很值得一試啦,尤其是我實在不習慣採取 "default and challenge" 立場看待一份不是我自己寫的 code ─ 這和我在知識論上採取的立場("prior grounding requirement")一致 XD。
--
所以更應該來發展 dependent types 了!XD
Labels: NTUCSIE
<< 回到主頁