本文主要是介绍分形专用语言开发完毕,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
FMF的嵌入式DSL的核心基本上开发完毕了,正如以前所设想的,语言运行的时候是直接在语法树上执行的。流程控制语句只有if/else if/else以及while循环,break和return等。
程序的语法类似javascript,只支持复数类型,输入的浮点数和整数都会被当成复数处理。用关键字var来定义临时变量,一条语句只能定义一个变量,定义变量的时候允许赋值。可以用[real_part_expression, imag_part_expression]来表示一个复数,如[3.2, -6.5]。
支持一元运算符+/-/!,分别表示正/负/取反。如 var kkk = +1*-+--12; 是合法语句,结果是kkk == -12。
支持自反运算,如 k += 2;
允许在表达式中引用另外的自定义函数来进行运算,如:
function func1(arg){return arg * 2;}
function func2(){ return cos(func1(3) + func1(sin(2) + 1));}
编译期会执行一些基本的检查,包括变量、函数有没有定义,函数参数个是否正确等。编译器会告诉出错的行号。
支持递归调用,可以是直接递归,也可以是间接递归调用。如下面这个计算阶乘的函数:
function func2(arg1) {if (arg1<=1)return 1; else return arg1 * func2(arg1 - 1);}
输入参数4进去,得到24。
最后,给这个语言起了个名字:Fractal Specific Language,简称FSL。
这篇关于分形专用语言开发完毕的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!