ROSE 编译器框架/如何逐步进行项目
外观
开发大型、复杂的项目需要应对许多挑战。为了缓解其中一些挑战,我们采用了几个最佳实践:增量开发、代码审查和持续集成。
以下是一些关于如何将大型项目分解成更小、更易于管理的部分的建议,以便每个部分都可以逐步开发、代码审查和集成。
- 输入:根据复杂性和难度定义不同的测试输入集。首先处理较简单的集合。
- 输出:定义导致最终输出的中间结果。通常,结果A和B需要生成C。因此,该项目可以根据中间结果分为多个阶段。
- 算法:复杂的编译器算法通常只是更基本算法的增强版本。首先实现基本算法以获得洞察力和经验。然后,您可以在之后实现完整的版本。
- 语言:对于处理多种语言的项目,一次只专注于一种语言。
- 平台:限制支持平台的范围:Linux、Ubuntu、OS X(TODO:添加对 ROSE 支持平台的引用)
- 性能:首先从基本的、可工作的实现开始。然后尝试优化其性能、效率。
- 范围:您的翻译器可以首先专注于函数范围内的工作,然后扩展到同时处理整个源文件,甚至多个文件。
- 先有骨架再添血肉:应该首先定义主要组件来创建项目。每个组件之后可以单独丰富。
- 注释(手动与自动):执行一项编译器任务通常需要来自许多其他正在开发的任务的结果。定义源代码注释作为两个任务之间的接口可以以简洁的方式解耦这些依赖关系。注释可以首先手动插入。之后可以由完成的分析自动生成注释。
- 可选与默认:引入一个标志来打开/关闭您的功能。当它成熟时,将其作为默认选项。