对于领域内的问题,拟定领域内的虚拟机,领域内的指令集,是很粗的指令,相比(X86)的纯算术指令集。
如何拟定,考虑到所有的指令,都有通用的数学式,就是{操作符, 操作数}, 比如:operate(a),operate(a, b), operate(a,b,c), … operate(a,b,c…n)
既抽象的过程就是考虑:
1、领域内有多少种本质的,抽象的操作?(操作符)
2、每种操作需要作用于多少种对象?(操作数)
3、写出所有operate(….)的范式
4、思考,对所有范式归并化简,得到最简集
5、书写script example. 设计你喜欢的script语法,体现你的品位
6、实现VM,也就是实现所有operate的native执行过程。一条粗指令 == N条 machine code
为什么领域内的粗指令具有优势:
1、用领域内的script来建立模型,更加直观;
2、因为粗指令的关系,用来建立模型的源码,将相比通用语言少很多,简单很多;
3、相比通用语言,粗指令的script 实际上它本身并没有提高计算能力,而只是提升了描述能力,减少描述量,增强描述的可理解性,可修改性,降低复杂度,相对更稳健,更可维护,更低的开发成本。