miniSchema实验要求
手动写一个你自己设计的一种miniSchema语言的解释器(解释器比编译器简单很多),体会解释方式与编译方式的区别。
miniSchema语言基本规范:
1)标识符不区分大小写。标识符的构成同C语言。变量名是一种标识符
2)整数常数如:125
3)串常量:用于提示串。格式:”多个字符”
4)语句格式:
(1)一条语句即一个list即列表
(2)list即列表的格式如下:
(op list1或常数或变量 list2或常数或变量 ….)
其中:op是运算符,list1、list2是列表。list中各个部分用一个或多个空格相分隔。
上述列表的含义:执行op指定的运算(运算的各个对象由list1,list2…指明),并将结果在屏幕上显示出来。
如(->是命令提示符):->(+ (* 3 2) (- 5 2) (/ 4 2)),结果11
(3)支持的运算符如下:
3.1 算术运算符:+、-、*、/
3.2 关系运算符:> >= < <= != =
如:->(> 3 2)
(1–代表true)
->(> 2 3)
0(0–false)
->(+ 3 (> 3 2) )
4
3.3 赋值运算符::=
-> (:= a (+ 3 2)))
5
语义:首先执行(+ 3 2),然后在变量表中查找变量a,若找到,将其当前值改为5,若找不到,则表中增加一项,即变量a,其值是5.
示例:
->(:= a (+ 1 2))
3
->(+ a (/ 9 a) (* 3 a ))
15
3.4 输入运算符:INPUT
(input “提示串” 变量1 变量2 …)
含义:命令单词input不区分大小写)
屏幕上首先显示:提示串,然后将用户的输入的整数值(空格分隔)分别放到对应的各个变量中。
示例:
->(INPUT “请输入三个整数值:” a b c )
屏幕上提示:请输入三个整数值:-2 8 6 注:-2 8 6是用户从键盘上输入的
此时 :-2放到变量a中,8放到变量b中,6放到变量c中。
3.5 输出运算符:OUTPUT
->(OUTPUT a b c)
含义:将变量a b c的当前值输出。
如:
->(INPUT “请输入三个整数值:” a b c )
->(OUTPUT a b c)
a:-2 b:8 c:6
->(OUTPUT (+ 3 2 ) (- 4 5))
5 -1