编译原理课程设计.ppt

上传人:牧羊曲112 文档编号:6231220 上传时间:2023-10-08 格式:PPT 页数:21 大小:248.99KB
返回 下载 相关 举报
编译原理课程设计.ppt_第1页
第1页 / 共21页
编译原理课程设计.ppt_第2页
第2页 / 共21页
编译原理课程设计.ppt_第3页
第3页 / 共21页
编译原理课程设计.ppt_第4页
第4页 / 共21页
编译原理课程设计.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《编译原理课程设计.ppt》由会员分享,可在线阅读,更多相关《编译原理课程设计.ppt(21页珍藏版)》请在三一办公上搜索。

1、编译原理课程设计,2010年3月,目的,通过实际设计和开发,对“编译程序的设计方法和实现技术”更进一步的了解和掌握;培养大型软件的程序设计方法;一次真正的实践机会;设立开发小组;明确分工、协作;遵循基本的软件开发过程:设计、编码、集成和测试,内容,总体目标设计并实现SNL程序设计语言的编译程序;SNL语言是自定义的一种类Pascal语言,即嵌套式语言四个模块:词法分析模块语法分析模块(递归下降方法)语法分析模块(LL(1)方法)语义分析模块,模块之间的关系,语义分析模块,词法分析模块,语法分析模块(递归下降法),语法分析模块(LL(1)方法),要求,三个层次基本掌握编译程序的基本构成;了解词法

2、分析、语法分析和语义分析的功能、设计过程;读懂SNL编译程序(词法分析、语法分析和语义分析)的源代码;提高按照书中介绍的方法和过程,参考已有的SNL编译程序的源代码,自己设计并实现词法分析、语法分析和语义分析模块;(C语言)高级在掌握已有的编译原理方法和实现技术基础上,自己设计并实现,特别是采用面向对象的软件设计思想;(Java),时间安排,下午1:00-4:00,请牢记,勿迟到!上机时间:第3周至第10周(共8周,3月29日5月21日)注:时间比较紧张,注意合理分工和利用课后时间,课堂纪律&成绩评定,原则上每3名同学为一组,协作完成全部程序,检查程序时,组内成员必须全部到场每个程序给一个成绩

3、,成绩分优秀、良好、中等、及格和不及格五档.综合四个程序的成绩作为每组的总成绩.每组成员因为表现不同,成绩会有不同!若点名有3次未到,成绩为不及格在有效时间内请指导老师检查程序,指导老师,张红申春张晶,SNL语言简介,SNL(Small Nested Language)是自行定义的教学模型语言,它是一种类似Pascal的“高级”程序设计语言1、字母表2、数据类型3、程序结构4、语句类型5、语义规定6、程序实例,1、SNL语言的字母表(P7),字母:a.zA.Z数字:0.9运算符:+,-,*,/,=格式符:(,),.,EOF,;,空格符,回车符,换行符,,,2、SNL的数据类型,整型(integ

4、er)0,20,209,。字符型(char)a,b,A,。数组(array low.up of type)counter:array1.10of integercounter5,counter9,counter10,记录(record type idlist;type idlist end)redix:record integer x,y;char ch endredix.x,redix.y,redix.ch,3、SNL的程序结构(P8),Program声明-类型声明、变量声明、过程声明Body-语句序列.-程序结束符,4、SNL的语句类型,顺序语句;是语句间的分隔符条件/分支语句if exp

5、 then 语句列 else 语句列 fi循环语句while exp do 语句列 endwh过程调用语句call 过程名(实参表),5、SNL的语义(P13-14),标识符表示变量名、类型名、记录域名、过程名;程序包含显式声明,标识符必须先声明,然后再使用同层过程,不允许标识符的重复定义标识符的作用域和Pascal语言的嵌套作用域规定相同。过程声明可以嵌套;参数有变参、值参两种;过程调用时,实参的个数和类型必须与形参的个数和类型相符;,6、SNL的程序例子,P12-P13 用SNL语言编写的冒泡排序程序SNL的程序结构变量声明、过程声明循环语句、分支语句、输入/输出语句数组类型等P55 简单

6、的输入输出语句程序,第一个任务:SNL的词法分析,输入:SNL源程序(字符串,文件)输出:Token序列(Token的数据结构)算法:有限自动机实现方式:可手工,可利用FLEX,SNL单词的自动机,start,done,ID,IntNum,Assign,NZ-digit,digit,other,other,+,-,*,/,|=|;|(|)|空格|回车|换行,:,=,letter,letter,digit,Char,Char,letter,digit,Come,SNL语言的保留字(P53),program type integer char var procedure begin end returnarray of record if then else fi while do endwhread write 共21个保留字,第二个任务:SNL的递归下降语法分析程序,递归下降分析的思想检查SNL语言的文法是否满足递归下降分析的条件编写递归子程序输入:Token序列输出:语法树用实例程序验证分析是否正确,第三个任务:SNL的LL(1)语法分析程序,LL(1)分析的思想构造并存储LL(1)分析表编写LL(1)驱动程序输入:Token序列输出:语法树,第四个任务:SNL的语义分析,语义分析的任务SNL相关的语义错误SNL符号表的结构建表算法查表算法,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号