张昱 中国科学技术大学 计算机科学技术系 合肥

Slides:



Advertisements
Similar presentations
猜谜语 有个小娃娃,真是没 礼貌。 见到小树摇一摇,吓 得树叶哇哇叫。 见到小花逗一逗,摘 去她的太阳帽。 没人和它交朋友,只 好自已到外处跑。
Advertisements

黄帝内经 内经教研室 王黎.
职官与科举 职官:在国家机构中担任一定职务的官吏,这里面有职官的名称、职权范围和品级地位等方面的内容。
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
花开有日 芬芳天下 “国培计划(2012)” ——幼儿园骨干教师远程培训项目 山东幼儿园教师8班第4期简报 主办人:张瑞美     
《卖火柴的小女孩》 《海的女儿》 你 认 识 这 些 图 片 的 故 事 吗 《丑小鸭》 《拇指姑娘》 它们都来自于哪位作家笔下?
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
民主國家的政府體制 我國的中央政府體制 我國中央政府的功能 地方政府組織與功能
銷售與顧客關係管理 巫立宇.邱志聖 著.
20、豆花庄的小家伙们.
CH11 心理疾病 李志鴻.
华 夏 之 祖 第 3 课.
法學緒論第六單元:法律適用 設計課程︰ 財經法律系 --楊東連 法學緒論-6.
实验四 利用中规模芯片设计时序电路(二).
综合布线技术与实践教程 第九章:综合布线系统工程网络分析 课程网站:
CH1 . 集 合 与 命 题.
台北市南港區玉成國民小學六年一班徐湘雯製作
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Ch19 創業精神 管理學:整合觀點與創新思維3/e.中山大學企管系 著.前程文化 出版.
以考试说明带动二轮复习 福州第三中学 张璐.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
跨越海峡的生命桥.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第二讲 搭建Java Web开发环境 主讲人:孙娜
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
编译原理与技术 2018/11/30 《编译原理与技术》讲义.
SOA – Experiment 3: Web Services Composition Challenge
SVN服务器的搭建(Windows) 柳峰
管理信息结构SMI.
走进编程 程序的顺序结构(二).
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
SPI驱动 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
逆向工程-汇编语言
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
张昱 计算机科学与技术学院 中国科学技术大学 合肥
一个RDF数据自然语言生成器的设计与实现
录制回放工具使用说明 鲁晓宇
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
张昱 计算机科学与技术学院 中国科学技术大学 合肥
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
VisComposer 2019/4/17.
实验一 体验Nachos下的并发程序设计 陈毅东 2006年春.
姚金宇 MIT SCHEME 使用说明 姚金宇
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
核探测与核电子学国家重点实验室 中国科学技术大学近代物理系 王照琪
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
Python 环境搭建 基于Anaconda和VSCode.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
方格紙上畫正方形.
本节内容 如何调试驱动程序? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
《NIOS II那些事儿》视频教程(三) -- NIOS II开发初探
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
《NIOS II那些事儿》视频教程 --软件安装(一)
Presentation transcript:

张昱 中国科学技术大学 计算机科学技术系 2008.4.21 合肥 编译原理实验指导 张昱 中国科学技术大学 计算机科学技术系 2008.4.21 合肥

资源 编译原理实验教程及实验软件包 Java语言规范(第3版)--JLS3 Eclipse AST Help http://staff.ustc.edu.cn/~yuzhang/compiler Java语言规范(第3版)--JLS3 http://java.sun.com/docs/books/jls/ Java 1.5的文法规范文件 java15.cup java15.jj Eclipse AST Help JDT Plug-in Developer Guide Reference API Reference org.eclipse.jdt.core.dom 编译原理实验指导

实验入门指南—初步了解 开发基础 Eclipse AST(见JDT Plug-in Developer Guide) Eclipse、JDK、命令控制台、ant Eclipse AST(见JDT Plug-in Developer Guide) AST节点:ASTNode及派生类 AST的构造:AST类(工厂类) AST的访问:ASTVisitor类 AST的图形化显示包ASTView(见实验教程3.5.6节) SimpleMiniJOOL语言的特点 SkipOOMiniJOOL语言的特点 编译原理实验指导

实验入门指南—深入学习1 开发基础 写一个简单的Java程序 mydir/src/test.java 或者直接利用lab1中的代码lab1/src/… 用Eclipse编译和调试 尝试按实验教程中1.4.3.3节介绍的各种方法来建立工程 学习在Eclipse下调试和运行 在命令控制台下编译和调试 用javac编译Java源程序,得到Java字节码 用java运行Java字节码 写一个ant编译文件(参见实验教程中的图1-14),用ant来编译和运行Java程序 用实验平台运行,熟悉配置文件 编译原理实验指导

实验入门指南—深入学习2 SkipOOMiniJOOL语言及其AST 编写SkipOOMiniJOOL程序 目的:了解语言特点,所写程序可以作为测试程序 查看SkipOOMiniJOOL程序的AST 方法:参见lab5中的Generator1里的main方法 目的:通过AST图形化输出了解一个SkipOOMiniJOOL程序与其AST的对应关系 手工构造SimpleMiniJOOL程序的AST 方法:参见实验教程第3章, TestCase.java等 从小语言入手来学习AST的构造 构造AST的一些注意事项 关于List类型的实例:可以用java.util.LinkedList(或ArrayList) 一个AST节点不能被多棵AST(子树)所引用 编译原理实验指导

实验入门指南—深入学习3 前端:词法分析+语法分析+语义分析 做法 先支持SimpleMiniJOOL,再扩展到SkipOO… 使用JFlex+CUP来生成分析器的源码: 参见ch4和ch5 使用JavaCC来生成分析器的源码: 参见ch5 手工编写分析器 先支持SimpleMiniJOOL,再扩展到SkipOO… 语言中的注意点: 变量的作用域,同名问题的处理,等等 了解AST访问者类、管理符号的一些容器类(如HashMap)、List等等 各类符号的描述信息定义符号类、符号表类 编译原理实验指导

实验入门指南—深入学习4 前端:词法分析+语法分析+语义分析 利用分析器的生成工具构造分析器时, 先构造简单的语法分析器:不构造AST、不进行错误处理 重点:熟悉分析器的生成工具及其使用方法 再构造能输出AST的语法分析器,它只能分析正确的源程序 重点:熟悉在产生式的语义动作中添加构造AST的代码 再构造能处理语法错误并产生AST的语法分析器 重点:识别哪些错误?如何处理错误?如何恢复错误?错误信息? 以AST Visitor的实现类为基础实现语义检查 重点:符号表的设计,语义检查 修改文法规范文件,增加符号表的维护与语义检查动作 重点:注意了解语法和语义分析之间的相互影响 编译原理实验指导

实验入门指南—深入学习5 后端:由AST生成x86或mips汇编码 了解x86汇编码及其相关工具(gcc) 了解mips汇编码及其相关工具(spim) 总结语言的语法结构与汇编码之间的映射关系 写出对应的C程序,用gcc编译得到x86汇编码或spim汇编码 汇编码的内部表示(见实验教程的第7章) 不考虑寄存器分配(假设伪寄存器无限多)的代码生成(lab5或lab6中的Generator1.java) 考虑寄存器分配(假设伪寄存器无限多)的代码生成(lab5或lab6中的Generator2.java) 编译原理实验指导