编译原理课程设计.

Slides:



Advertisements
Similar presentations
元大京華證券 組員名單 : A 楊之奇 A 廖本揚 A 宋俊承 A 陳冠廷 A 郭峻瑋 A 指導教授 : 許素華 副教授.
Advertisements

第十八章 林肯大郡 第十八章 林肯大郡災變緊急搶救應變措施 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊造成二十八人罹難八十戶住宅倒塌的慘劇 此災變要喚起國人的重視 本章介紹搜救行動緊急應變措施。
组长:倪运超 小组成员:徐悦、曹吕卿、孙浩、徐圣尧.  上海的历史 上海的历史  上海的历史 上海的历史  上海的文化 —— 建筑 上海的文化 —— 建筑  上海的文化 —— 美食 上海的文化 —— 美食  香港的历史 香港的历史  香港的历史 香港的历史  香港的文化 —— 建筑 香港的文化.
一、 突出解析几何复习中的重点问题的通法通解 解析几何中的重点问题 一、 突出解析几何复习中的重点问题的通法通解 直线与圆锥曲线的位置关系 重点一.
平面构成 第六章 平面构成形式与法则 — 破规与变异. 第七章 平面构成形式与法则 — 破规与变异 破规与变异构成的形式、有下列四类: 一、特异构成 特异构成。其表现特征是,在普遍相同性质的事物 当中,有个别异质性的事物,便会立即显现出来。
第八章 土地行政管理.
「互联网金融2.0时代」与房地产的融合 广州互联网金融协会会长、广州e贷总裁 方颂.
企业会计学(三) 人大版本 吕 昌.
第十三章 中国的传统科学技术 中国古代的科技曾经长期处于世界领先地位,对人类文明的进步作出过重要贡献,并形成了富有特色的科技文化。在今天,源自中国古代科技文化的中医学仍然在现实生活中发挥着积极的作用。
性教育教學模組設計 主題:身體自主權 台中市忠明國小 巫偉鈴.
日期: 六 福 村.
整体销售方案 中山市美好物业代理有限公司
據點考核與評鑑 報告人:臺南市政府 照顧服務管理中心.
班級、數遊1A 學號、B 姓名、詹益振 指導老師、蔡宗達
特殊族群運動健康訓練(I).
依据教材 全国高等教育自学考试指定教材 《西方行政学说史》, 竺乾威主编,高等教育出版社。
臺中市頭家國小 生理衛生講座 青春期的奧秘 ‧說到青春期,你會想到? ‧班級表現最好的,有獎徵答有優先權。 葉孟娟老師、黃文玲老師.
正 信 讀 書 會 主 持 群 : 姚 永 錩 、 鄭 健 、 陳 淑 珍 佛法的生活應用 2008/07/23.
非法集资典型案例评析 南京师范大学法学院 蔡道通 2016年1月.
专题(二) 交往沟通 掌握技能 命 题 解 读 背 景 材 料 新 题 演 练 考 点 链 接 1.
姓名:劉芷瑄 班級:J201 座號:39號 ISBN:957-33-1963-2
松竹梅岁寒三友 步入建交 桃李杏村暖一家 迈进职教 活出精彩.
營建鋼構組配作業防護簡介 報告人:工安技師 陳炳宏 100年 10月5日.
雄伟的金字塔.
第八单元第二课第一课时 严守法律 温州四中 蒋莉青.
高级财务会计.
默写基础知识: 1、家庭是由 关系、 关系或 关系而结合成的亲属生活组织。家里有 ,家中有 。
1. 民主社會裡,公民的參與有其重要性,而透過政治參與無法達成下列哪一項目的?
工程識圖─鋼構 2013/05/17.
爱的表达方式.
?????? ?????? ?????? 他是我生的 我愛怎樣就怎樣 這樣對嗎? 影片欣賞.
什么是颈椎病? 颈椎病是指颈椎间盘退行性变,及其继发性椎间关节退行性变所致脊髓、神经、血管损害而表现的相应症状和体征。
第六章 社会主义初级阶段理论 第一节 社会主义初级阶段是我国最大的实际 第二节 社会主初级阶段的基本路线和基本纲领
第一单元 中国传统文化主流思想的演变.
大肚宮廟巡禮 下一頁.
公務人員退休法、撫卹法 法制與實務講習 銓敘部退撫司 中華民國99年8月.
大嶼山 香港國際機場 及 寶蓮寺.
《傅雷家书》 学 科:语文 年 级:九年级 授课教师:王宁宁.
第一節 行政裁量與不確定法律概念 第二節 行政裁量
新世代計算機概論 第14章 程式語言.
开 学 第 一 课 六年级3班.
本课设置5个环节 一、限时秒杀--5分钟 二、摩拳擦掌--9分钟 三、刀锋相见--20分钟 四、现炒现卖--5分钟 五、相约课后--1分钟.
从中国与联合国的关系演进 看联合国的产生与发展
第 二 课 程序组成、基本数据类型、表达式 我们以上一章练习题为例说明Pascal程序的结构形式:
编译原理复习.
第四章 程序设计初步 顺序结构:赋值语句、输出语句
编译原理实践 5.给定语法的语法分析程序构造.
產品語意 班級:夜四技產設三甲 學生:鄭舜鴻 學號:9A01C023 指導教師:唐蔚.
編譯程式設計 期末專題說明 V1.1 May 2004.
动态规划(一).
第二章 词法分析4 词法分析程序实现 构造词法分析器步骤 单词的形式化描述 词法分析程序的实现.
班級:財金一A 姓名:吳佩玲 學號:4990S024 指導老師:蔡享翰 老師
考前总结 背景 必要性 作用 新旧版交替面临一些问题 从教学目标和要求说起 知识梳理 可能有助于提高考试成绩 或者让知识掌握得更好.
美麗的西子湖.
現代專案管理教材 第一章 專案與專案管理 博碩文化出版發行.
中五級電腦科 PASCAL檔案處理.
编译原理课程设计 2017年4月.
加減法文字題 國小低年級學生對加減法文字題的瞭解 小組成員 陳育娟 羅珠綾 侯宜孜
飛行器製作與飛行 講師:劉修建.
因果性:一个形而上学的预设 赵敦华 2008年5月.
递归下降法 1 递归下降法语法分析原理 递归子程序方法/递归下降法 对每个非终极符按其产生式结构产生相应语法分析子程序。
數學遊戲二 大象轉彎.
三 顺序结构程序设计 厦大附中信息技术.
厉害了,我的国! 15会计2班团支部 2018年4月20日.
臺中市龍山國小 校園常見瓢蟲辨識   瓢蟲屬於鞘翅目瓢蟲科。目前世界上約有5000多種瓢蟲,台灣地區約有80種以上,其中能捕食有害生物的瓢蟲約七十種之多。瓢蟲因為捕食有害生物為主食,所以又稱為『活農藥』。
PASCAL语言 吉林大学计算机科学与技术学院.
PASCAL语言 吉林大学计算机科学与技术学院.
陳維魁 博士 儒林圖書公司 第六章 領域與範圍 陳維魁 博士 儒林圖書公司.
编译原理与实现 河北科技大学 信息科学与工程学院计算机系 杨奎河
Presentation transcript:

编译原理课程设计

实验内容 设计并实现SNL程序设计语言的编译程序; 四个模块: 词法分析模块 语法分析模块(递归下降方法) 语法分析模块(LL(1)方法) 语义分析模块

实验四模块之间的关系 语义分析模块 词法分析模块 语法分析模块 (递归下降法) (LL(1)方法) SNL源程序 Token序列 语法树

实验目的 通过对SNL编译程序的学习和动手实践,使学生可以更加深入、全面地掌握编译程序的工作原理和实现技术; 培养大型软件的程序设计方法。

SNL语言简介 SNL(Small Nested Language)是自行定义的教学模型语言,它是一种类似Pascal的”高级”程序设计语言 数据类型:整型、字符型,数组、记录 过程允许嵌套定义,允许递归调用

SNL的程序结构 程序头 声明部分 程序体部分 类型声明部分 变量声明部分 过程声明部分 program pp var integer v1; char c; procedure f(); begin v1 :=2 End Begin f(); write(v1) end.

SNL的语法 SNL的上下文无关文法(P9-P12页)

第一个程序: SNL的词法分析程序 输入:SNL源程序 输出:单词的内部表示序列-Token序列 程序设计步骤 确定单词分类;P35 单词的正则表达式定义(词法定义);P7–P8 构造DFA ; P39 根据DFA生成单词识别函数 对于给定的当前状态和当前字符,决定下一个状态; 如果是结束状态,得到单词的类别和信息; 否则,设置为当前状态;

词法分析程序涉及的一些问题 单词分类 Token表示定义 每类单词的构成 自动机的实现(状态图方法、转换表方法) 一些特殊情形的处理:注释、括号匹配、向前扫描等

第二个程序: SNL的递归下降分析程序 输入:Token序列 输出:语法错误检查信息和语法树 例:S → A u B A → a a B → b b 则各个VN的递归子程序结构如下: S( )  begin A(); match(u); B() end A( )  begin match(a); match(a) end B( )  begin match(b); match(b) end 输入:Token序列 输出:语法错误检查信息和语法树 思想 对文法的每一个VN都编写一个分析程序,当根据文法和当前输入符号预测到要用某个VN去匹配输入串时,就调用该VN的分析程序。

递归下降程序涉及的一些问题 当产生式形如:A1|2|…|n时需要通过predict集确定子程序的调用。P61-P64 如何构建语法树及语法树的内部表示。 Program  ProgramHead DeclarePart ProgramBody .

递归下降分析模块 语法树的输出 层次文本输出 图形输出 ProK PheadK p TypeK DecK IntegerK t1 VarK DecK IntegerK v1 v2 ProcDecK q DecK value param: IntegerK i DecK IntegerK a StmLk StmtK Assign ExpK a IdV ExpK i IdV StmtK Write StmtK Read v1 StmtK If ExpK Op < ExpK v1 IdV ExpK Const 10 ExpK Op + ExpK Const 10 ExpK Op - StmtK Call ExpK q IdV 语法树的输出 层次文本输出 图形输出

第三个程序 : SNL的LL(1)分析程序 输入:Token序列 输出:语法错误检查信息和语法树 Program  ProgramHead DeclarePart ProgramBody .

第四个程序: SNL的语义分析程序 输入:语法树 输出:语义错误信息 数据结构: 算法: 语法树 符号表 在扫描声明部分语法树时建立符号表 在扫描语句部分语法树时查表检查语义

SNL的语义错误 (1) 标识符的重复定义; (2) 无声明的标识符; (3) 标识符为非期望的标识符类别(类型标识符,变量标识符,过程名 标识符); (4) 数组类型下标越界错误; (5) 数组成员变量和域变量的引用不合法; (6) 赋值语句的左右两边类型不相容; (7) 赋值语句左端不是变量标识符; (8) 过程调用中 ,形实参类型不匹配; (9) 过程调用中, 形实参个数不相同; (10)过程调用语句中,标识符不是过程标识符; (11)if 和while 语句的条件部分不是bool类型; (12)表达式中运算符的分量的类型不相容 等等

符号表 符号表:标识符的属性表 属性:种类,类型,名字,参数个数等 符号表项的结构可参考教材175页 符号表的组织:顺序表、二叉树、散列表 符号表的建立:在遍历语法树的过程中,遇到声明类节点时,构造符号表项 符号表的使用:在遍历语法树的过程中,遇到语句类节点时,查找符号表项 需要特殊考虑符号表的局部化问题。

实验报告 本次实验采取三人组成开发小组的形式集体讨论合作完成。要求小组人员分工明确,每个人都要参与,了解整个过程。 报告形式见文件“《编译原理课程设计》总结报告模版”。