Project management 如何管理编译器项目?

Project management 如何管理编译器项目?,project-management,compiler-theory,Project Management,Compiler Theory,我是一名CS学生,今年我有一个编译器项目 我想知道如何与我的三个合作伙伴一起管理我的项目 我知道编译器有很多层次和过程,我想利用这些特性来管理我的项目 感谢您为我提供的任何提示/指针/资源。您应该使用像Git或Mercurial这样的DCV,这样每个人都可以单独开发,而合并更改仍然很容易 接下来,您应该定义测试用例,以了解您需要哪些特性,以及如何知道特性的工作原理 这将有助于找出项目的不同领域,这些领域不会重叠太多,这样团队中的每个成员都可以工作,而不必互相干涉。您还没有真正指定要编译的内容,因

我是一名CS学生,今年我有一个编译器项目

我想知道如何与我的三个合作伙伴一起管理我的项目

我知道编译器有很多层次和过程,我想利用这些特性来管理我的项目


感谢您为我提供的任何提示/指针/资源。

您应该使用像Git或Mercurial这样的DCV,这样每个人都可以单独开发,而合并更改仍然很容易

接下来,您应该定义测试用例,以了解您需要哪些特性,以及如何知道特性的工作原理


这将有助于找出项目的不同领域,这些领域不会重叠太多,这样团队中的每个成员都可以工作,而不必互相干涉。

您还没有真正指定要编译的内容,因此很难提出具体的建议

如果你在做一些新奇的事情,我在几周前写了一篇博客文章,其中有一些具体的事情需要考虑:

如果你是编译的一个预先存在的语言,那么我会努力生成一个体面的测试语料库,并考虑使用测试驱动开发来管理你的进度。 正如您所提到的,在大多数编译器中,有一些明显的组件是相对独立的。我会考虑记录连接这些组件的接口。例如,如果一个人在编写lexer,另一个人在编写解析器,那么请确保您在某处写下了标记列表。应该定义和写下解析和/或抽象语法树的格式,以便任何从事优化或代码生成工作的人都在同一页上


最重要的是,测试确实有助于这种集成。您应该能够分别构建这些组件,并将它们放在一起,这在很大程度上是可行的。

您是否希望管理项目本身(使用SCM、协作软件、CI等),还是希望从技术上对如何划分项目的设计和实施提出建议?是哪一个?三个人吃三明治,而第四个人则编码