SIMPLE语言定义.doc_第1页
SIMPLE语言定义.doc_第2页
SIMPLE语言定义.doc_第3页
SIMPLE语言定义.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SIMPLE语言定义一、 字符集定义1 2 ABZabz3 01294 +-*/=():. ; , 二、 单词集定义5 6 andarraybeginboolcallcasecharconstantdimdoelseendfalseforifinputintegernotoforoutputprocedureprogramreadrealrepeatsetstopthentotrueuntilvarwhilewrite7 =:= /*/.8 9 10 11 truefalse12 除 外的任意字符串 三、 数据类型定义13 integerboolchar四、 表达式定义14 15 + - 16 * / 17 - 18 ( )19 or 20 and 21 not 22 ( ) 23 =24 五、 语句定义25 26 := 27 if then if then else 28 while do 29 rpeat until 30 begin end31 ;六、 程序定义32 program ; .33 var 34 : ; : ;35 ,七、 SIMPLE语言单词编码单 词种别码单 词种别码单 词种别码and1output21*41array2procedure22*/42begin3program23+43bool4read24,44call5real25-45case6repeat26.46char7set27.47constant8stop28/48dim9then29/*49do10to30:50else11true31:=51end12until32;52false13var3353for14whilr34=54if15write3555input16标识符36=56integer17整数3757not18字符常数38=58of19(3959or20)4060八、 实验一:设计SAMPLE语言的词法分析器检查要求:a) 启动程序后,先输出作者姓名、班级、学号(可用汉语、英语或拼音);b) 请求输入测试程序名,键入程序名后自动开始词法分析并输出结果;c) 输出结果为单词的二元式序列(样式见样板输出1和2);d) 要求能发现下列词法错误和指出错误性质和位置:非法字符,即不是SAMPLE字符集的符号;字符常数缺右边的单引号(字符常数要求左、右边用单引号界定,不能跨行);注释部分缺右边的界符*/(注释要求左右边分别用/*和*/界定,不能跨行)。九、 实验一测试程序与样板输出测试程序1: 程序名TEST1and array begin bool callcase char constant dim doelse end false for ifinput integer not of oroutput procedure program read realrepeat set stop then totrue until var while writeabc 123 EFG ( ) * + , - . . /: := ; = = = 样板输出1:(要求在屏幕上显示)( 1 , - )( 2 , - )( 3 , - )( 4 , - )( 5 , - )( 6 , - )( 7 , - )( 8 , - )( 9 , - )(10 , - )(11 , - )(12 , - )(13 , - )(14 , - )(15 , - )(16 , - )(17 , - )(18 , - )(19 , - )(20 , - )(21 , - )(22 , - )(23 , - )(24 , - )(25 , - )(26 , - )(27 , - )(28 , - )(29 , - )(30 , - )(31 , - )(32 , - )(33 , - )(34 , - )(35 , - )(36 , 1 )(37 , 2 )(38 , 3 )(39 , - )(40 , - )(41 , - )(43 , - )(44 , - )(45 , - )(46 , - )(47 , - )(48 , - )(50 , - )(51 , - )(52 , - )(53 , - )(54 , - )(55 , - )(56 , - )(57 , - )(58 , - )(59 , - )(60 , - )测试程序2:程序名TEST2program example2;var A,B,C:integer; X,Y:bool;begin /* this is an example */ A:=B*C+37; X:=ABCend.样板输出2:(要求在屏幕上显示)(23 , - )(36 , 1 )(52 , - )(33 , - )(36 , 2 )(44 , - )(36 , 3 )(44 , - )(36 , 4 )(50 , - )(17 , - )(52 , - )(36 , 5 )(44 , - )(36 , 6 )(50 , - )( 4 , - )(52 , - )( 3 , - )(36 , 2 )(51 , - )(36 , 3 )(41 , - )(36 , 4 )(43 , - )(37 , 7 )(52 , - )(36 , 5 )(51 , - )(38 , 8 )(12 , - )(46 , - )十、 实验二:设计SAMPLE语言的语法、语义分析器,输出四元式的中间结果。检查要求:a) 启动程序后,先输出作者姓名、班级、学号(可用汉语、英语或拼音)。b) 请求输入测试程序名,键入程序名后自动开始编译。c) 输出四元式中间代码(样式见样板输出3和4)。d) 能发现程序的语法错误并输出出错信息。十一、 测试样板程序与样板输出测试程序3:程序名TEST4 测试程序4:程序名TEST5program example4; program example5;var A,B,C,D:integer; var A,B,C,D,W:integer;begin begin A:=1; B:=5; C:=3; D:=4; A:=5; B:=4; C:=3; D:=2; W:=1; while AD do if W=1 then A:=B*C+B/Dif A=1 then C:=C+1 else else repeat A:=A+1 until A0 while A=D do A:=A*2 end.end.样板输出3:(要求在屏幕上显示) 样板输出4:(要求在屏幕上显示)( 0) (program,example4,-,-)( 0) (program,example5,-,-)( 1) (:= , 1 , - , A)( 1) (:= , 5 , - , A)( 2) (:= , 5 , - , B)( 2) (:= , 4 , - , B)( 3) (:= , 3 , - , C)( 3) (:= , 3 , - , C)( 4) (:= , 4 , - , D)( 4) (:= , 2 , - , D)( 5) (j=, W , 1 , 8)( 7) (j , B , D , 9)( 7) (j , - , - , 13)( 8) (j , - , - , 20)( 8) (* , B , C , T1)( 9) (j= , A , 1 , 11)( 9) (/ , B , D , T2)(10) (j , - , - , 14)(10) (+ , T1 , T2 , T3)(11) (+ , C , 1 , T1)(11) (:= , T3 , - , A)(12) (:= , T1 , - , C)(12) (j , - , - , 17)(13) (j , - , - , 5)(13) (- , A , 1 , T4)(14) (j=, A , D , 16)(14) (:= , T4 , - , A)(15) (j , - , -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论