工作进度1

来源:互联网 发布:生意参谋数据分析2017 编辑:程序博客网 时间:2024/05/21 10:38
 

这几天的主要时间花在阅读语言的IEEE标准上,同时也在思考相应的词法,语法模块的实现.

按现在的理解来看,词法模块的工作量并不太大,略微有点难度的就是对宏定义命令和include文件的处理.自己也基本上有了相应的实现思路,剩下的只是具体的工作量的问题.

语法模块的工作可以划分为两个部分,第一部分是语法规则的编写;第二部分则是语义动作的实现.

对第一部分来说,由于自己需要实现的是一个已经很成熟的语言,在这门语言的IEEE标准里已经给出了完整的文法规则,有了标准作为参考,自己的主要工作就是消除标准中给出的文法规则里包括的一些二义性及冲突,也不存在瓶颈性的问题,唯量而已.第二部分则是眼下比较重要的部分,因为这一部分的实现会直接影响到跟后端模块的接口,所以这部分的数据结构的设计,包括框架性的设计要作足功夫.接下来,自己会继续花费一些精力在这上面.

另外这段时间自己在考虑的一个问题就是代码的可测试性问题. 按照我目前的想法,是希望为词法模块,语法模块分别设计相应的测试引擎. 想加入对某个语言功能块的支持,要遵循如下的流程:

1. 修改,扩展词法模块

2. 启动词法测试引擎进行测试,通过则进入到3,否则跳回至1

3. 修改,扩展词法模块

4. 启动语法测试引擎进行测试,通过则进入到5,否则跳回至3

5. 继续后续功能模块的开发

按照我预想的这个流程,每加入一个功能模块,都要分阶段地进行足量的测试,这样可以尽量避免bug和潜在的问题传递到下一个阶段的概率,避免过长调试,测试链条带来的开销.毕竟,在离问题发生的最近点解决问题的成本是最低的.

原创粉丝点击