對于領域內的問題,擬定領域內的虛擬機,領域內的指令集,是很粗的指令,相比(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 實際上它本身并沒有提高計算能力,而只是提升了描述能力,減少描述量,增強描述的可理解性,可修改性,降低復雜度,相對更穩健,更可維護,更低的開發成本。