版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第16章 创建自己的语言:解释器模式,16.1 创建自己的语言解释器,16.2 模式定义,16.3 模式分析,16.4 模式实现,16.5 设计原则,16.6 使用场合,16.7 本章要点,16.1 创建自己的语言解释器,先简单地定义一下“myida”语言的语法规则: (1)“myida”语言区分大小写; (2)“myida”语言以PROGRAM开头,END结尾; (3)PRINTLN表示打印一行并换行; (4)使用FORFROMTOEND表示循环。 示例语言内容如下: PROGRAM PRINTLN start. FOR i FROM 90 TO 100 PRINTLN i END PRIN
2、TLN end.END 该句表示的意思是:首先打印“start”换行,然后循环打印“90”换行、“91”换行、“100”换行,最后打印“end”换行。,16.2 模式定义,解释器模式(Interpreter Pattern),就是给定一个语言的文法表示,并且定义一个解释器,用来解释语言中的句子。解释器模式描述了怎样在有了一个简单的文法后,使用模式设计解释这些语句。,16.3 模式分析,16.3.1 “myida”语言分析 (1)以PROGRAM开头。 (2)存在两种语句:基础语句和复杂语句。 (3)语言的主体部分应该是一个待执行的列表语句集合。 (4)复杂语句中含有的是一个列表语句集合,如示例
3、中的FOR语句中就含有PRINTLN语句。 (5)语言的解释执行是一个递归调用的过程,其中的每一个语句都会递归解释执行,直到一个最基础的语句被执行,然后返回。 (6)以END结尾。,16.3.1 “myida”语言分析,可以得出“myida”语言的解释树结构图,如图16-1所示。,16.3.2 “myida”语言解释器原理,按照“myida”语言的解释结构图,以及语法规则描述的内容,我们很容易得到“myida”语言解释器的活动图,如图16-2所示。,16.4 模式实现,16.4.1 创建上下文环境 16.4.2 创建解析表达式 1表达式接口IExpressions 2主表达式ProgramEx
4、pression 3列表表达式ListExpression 4命令表达式CommandExperssion 5循环表达式ForExpression 6基础表达式PrimitiveExpression 16.4.3 让“myida”语言解释器开始工作,16.5 设计原则,1“开-闭”原则 2封装变化部分,16.6 使用场合,(1)一种特定类型的问题发生的频率足够高,并且业务规则频繁变化,不断重复出现类似情况。 (2)业务规则不是过于复杂烦琐,比较容易抽象出语法规则。 (3)效率不是软件系统中主要考虑的因素。,16.6 使用场合,来看一下解释器模式的静态类图,加深对解释器模式的理解,如图16-5所示。,16.6 使用场合,1解释器模式中的角色 2扩展1:Java SDK中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南驻马店市高职单招语文考试真题及答案
- 2025年泡沫陶瓷过滤材料合作协议书
- 老建筑修缮工程师岗位招聘考试试卷及答案
- 跨境直播供应链风控师岗位招聘考试试卷及答案
- 物业家电清洗增值服务合同
- 译林版英语三年级下册Unit 7 第1课时 Cartoon time分层作业(有答案)
- 水务设施运行与维护操作手册
- 服装零售行业销售与售后服务指南(标准版)
- 航空客运服务礼仪手册
- 电子商务运营风险防控指南(标准版)
- 2026湖南衡阳日报社招聘事业单位人员16人备考题库参考答案详解
- GB 12801-2025生产过程安全基本要求
- 食堂管理内控制度
- 2026年江苏医药职业学院单招职业技能测试题库及答案详解一套
- 2025至2030中国数据分析超级计算机(DAS)行业项目调研及市场前景预测评估报告
- 口腔种植知识培训内容课件
- 仪表工业智能化规划方案
- 展会搭建方案(3篇)
- 危重患者护理记录书写
- 小学语文数字化教学论文
- 尼康-D300S-相机说明书
评论
0/150
提交评论