ROSE 編譯器框架/如何逐步進行專案
外觀
開發大型、複雜的專案需要應對許多挑戰。為了緩解其中一些挑戰,我們採用了幾個最佳實踐:增量開發、程式碼審查和持續整合。
以下是一些關於如何將大型專案分解成更小、更易於管理的部分的建議,以便每個部分都可以逐步開發、程式碼審查和整合。
- 輸入:根據複雜性和難度定義不同的測試輸入集。首先處理較簡單的集合。
- 輸出:定義導致最終輸出的中間結果。通常,結果A和B需要生成C。因此,該專案可以根據中間結果分為多個階段。
- 演算法:複雜的編譯器演算法通常只是更基本演算法的增強版本。首先實現基本演算法以獲得洞察力和經驗。然後,您可以在之後實現完整的版本。
- 語言:對於處理多種語言的專案,一次只專注於一種語言。
- 平臺:限制支援平臺的範圍:Linux、Ubuntu、OS X(TODO:新增對 ROSE 支援平臺的引用)
- 效能:首先從基本的、可工作的實現開始。然後嘗試最佳化其效能、效率。
- 範圍:您的翻譯器可以首先專注於函式範圍內的工作,然後擴充套件到同時處理整個原始檔,甚至多個檔案。
- 先有骨架再添血肉:應該首先定義主要元件來建立專案。每個元件之後可以單獨豐富。
- 註釋(手動與自動):執行一項編譯器任務通常需要來自許多其他正在開發的任務的結果。定義原始碼註釋作為兩個任務之間的介面可以以簡潔的方式解耦這些依賴關係。註釋可以首先手動插入。之後可以由完成的分析自動生成註釋。
- 可選與預設:引入一個標誌來開啟/關閉您的功能。當它成熟時,將其作為預設選項。