这个homework要做四件事情:(会前三步也行)
简单来说就是先实现一个解析器parser,然后扩展这个parser成为一个解释器interpreter,然后展示测试,最后选择一个项目的方向进行扩展。
背景介绍:
编程语言MATLAB(起源于上世纪七十年代末,免费)是世界上最广泛使用的科学语言之一。
一个关于MATLAB最有趣的事情是每个单一变量作为一个二维数组被储存,甚至一个定标器整数是一个简单的1*1数组。
在这里,我们发展一个此概念的非常简单的版本——一个允许这种数组被创造或从文件里读取的语言,并且函数在数组的每一个部分被执行,每次一个元素。
举例:
创建变量I为5,并且打印到屏幕上:
你可以创造一个全是1的数组,然后在数组的每个单元格加2:
循环,这里有一个从1数到10的循环,通过变量I并且计算在变量F里的阶乘。这两个变量都是定标器(一个1*1数组):
这类循环(如C中)的计数器存储在变量中。在循环内更改此变量会影响循环结束的时间:
像语法告诉你的那样,循环也可以被嵌套:
形式语法:
提示:
关于提交homework:
两个文件,一个叫testing.txt,里面放着你对你的测试策略的解释,另一个叫extension.txt,里面是你的扩展。对于解析器、解释器和扩展部分,请确保有一个Makefile,这样make就可以用make parse、make interp和make extension来构建代码。全部放到nlab.zip里面。