基于JavaScript的公式解释器 - 1 【设计】

公式解释器比较简单,原以为三天就得,结果还是用了一周,看来要重新评估一下自己的生产力了。

 

切入正题:

原理:

1. 将公式解析为逆波兰表示法的序列;

2. 对逆波兰序列进行求值;

 

公式解释器要涉及到以下问题:

1. 类型表示;

2. 类型关系和运算;

3. 表达式解析;

4. 表达式求值;

 

故此,我们需要:

1. 类型系统:籍由JavaScript语言特性模拟的类型系统; 

2. 操作数基类型;

3. 由操作数基类型派生的值类型:数值类型、布尔类型、文本类型;

4. 运算符基类型;

5. 由运算符基类型派生的元运算符类型:一元运算符、二元运算符、函数;

6. 由元运算符类型派生的各种运算符类型;

9. 表达式类型;

10. 表达式解析器;

11. 表达式求值器;

 

 

类图如下:

 

基于JavaScript的公式解释器 - 1 【设计】_第1张图片

Figure 1 Operand Class Diagram

 

基于JavaScript的公式解释器 - 1 【设计】_第2张图片

 

 

 

Figure 2 Operator Class Diagram

 

基于JavaScript的公式解释器 - 1 【设计】_第3张图片

 

Figure2 Other Class Diagram

 

 

因为没有装Visio,所以使用了VSE来生成类图,因此更复杂的类关系如聚合以及将来的操作图、序列图欠奉。

 

 

你可能感兴趣的:(JavaScript,Class,语言,visio)