编译原理总结-1 第3~5章.

Slides:



Advertisements
Similar presentations
组长:倪运超 小组成员:徐悦、曹吕卿、孙浩、徐圣尧.  上海的历史 上海的历史  上海的历史 上海的历史  上海的文化 —— 建筑 上海的文化 —— 建筑  上海的文化 —— 美食 上海的文化 —— 美食  香港的历史 香港的历史  香港的历史 香港的历史  香港的文化 —— 建筑 香港的文化.
Advertisements

一、 突出解析几何复习中的重点问题的通法通解 解析几何中的重点问题 一、 突出解析几何复习中的重点问题的通法通解 直线与圆锥曲线的位置关系 重点一.
600年前,鄭和率領世界上最強大的艦隊,浩浩蕩蕩的駛入印度洋,展開一場「文化帝國」的海上大秀。
第十三章 中国的传统科学技术 中国古代的科技曾经长期处于世界领先地位,对人类文明的进步作出过重要贡献,并形成了富有特色的科技文化。在今天,源自中国古代科技文化的中医学仍然在现实生活中发挥着积极的作用。
第6章 LR分析程序及其自动构造 6.1 自下而上分析及其LR分析概述 6.2 LR (0) 分析 6.3 SLR(1) 分析
任课老师:戴新宇 助教: 实验一 词法分析和语法分析 任课老师:戴新宇 助教: 2014年3月20日.
雄伟的金字塔.
编 译 原 理 指导教师:杨建国 二零一零年三月.
尹剑飞 科技楼 编译原理 尹剑飞 科技楼
编译原理和技术.
第2章 LR分 析 法 LR分析法是一种自下而上进行规范归约的语法分析方法,LR指“自左向右扫描和自下而上进行归约”。LR分析法比递归下降分析法、LL(1)分析法和算符优先分析法对文法的限制要少得多,对大多数用无二义的上下文无关文法描述的语言都可以用LR分析器予以识别,而且速度快,并能准确、及时地指出输入串的任何语法错误及出错位置。LR分析法的一个主要缺点是,若用手工构造分析器则工作量相当大,因此必须求助于自动产生LR分析器的产生器。
第三章 词法分析 赵建华 南京大学计算机系 2009年2月.
LR与LL分析 编译原理习题课二 胡云斌 PB
编 译 原 理 ——— 清华大学出版社 新 疆 大 学 信 息 科 学 与 工 程 学 院.
开 学 第 一 课 六年级3班.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
编译原理与技术 --文法和分析 2018/9/17 《编译原理与技术》讲义.
第四章 语法分析 赵建华 南京大学计算机系
编译原理复习.
第三章 语法分析 本章内容 上下文无关文法 自上而下分析和自下而上分析 围绕分析器的自动生成展开 词 法 分析器 记 号 取下一个记号
编译原理与技术 第3章 语法分析 14学时.
编译原理习题
第六章 属性文法和语法制导翻译 网上教学系统: : 编译原理
第四章 语法制导的翻译 本章内容 1、介绍语义描述的一种形式方法:语法制导的翻译,它包括两种具体形式 语法制导的定义 翻译方案
第二章 词法分析 词法记号及属性 词法记号的描述与识别 有限自动机 DFA构建 DFA化简 词法模式的识别过程 子集构造法.
编译原理与技术 2018/11/30 《编译原理与技术》讲义.
第三章 词法分析.
Last Lecture Revisited
管理信息结构SMI.
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
编译原理与技术 词法分析 (2) 2018/12/30 《编译原理与技术》讲义.
语义分析简介 编译程序的目标:将源程序翻译成为语义等价的目标程序。 语义分析的主流技术:
LL(1)分析方法 LL(1)是LL(k)的特例,其中的k则表示向前看k个符号. LL(1)方法和递归下降法属于同一级别的自顶向下分析法.
第六、七章属性文法、语法制导翻译和中间代码
第八章语法制导翻译和中间代码生成 8.1概述 8.2属性文法和语法制导翻译 8.3语义分析 8.4中间代码 8.5一些语句的翻译.
编译原理与技术 语法制导翻译 2019/1/17 《编译原理与技术》讲义.
李元金 计算机与信息工程学院 第9讲 语法分析—自上而下分析(1) 李元金 计算机与信息工程学院
第二、三章习题讲解
内容提要 什么是句法分析 与形式语言句法分析的比较 上下文无关语法的分析策略 自顶向下分析法 自底向上分析法 左角分析法
2.3 正则表达式 主要内容: 1.正则表达式和正则集; 2.正则表达式和有限自动机的相互转化。.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
语法制导的翻译 (Syntax-Directed Translation)
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
第三章 语法分析 自顶向下语法分析思想 语法分析方法的分类: 自顶向下语法分析方法(Top-Down) ,亦称面向目标的分析方法;
第3,4次课 一个简单的语法制导翻译器 2.3~2.5.
LL(1)分析法 复 习 LL分析程序构造及分析过程 输入串 符号栈 执行程序 此过程有三部分组成: 分析表 执行程序 (总控程序)
第三章 词法分析 本章将讨论词法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的自动构造原理。 3.1 对于词法分析程序的要求
编译原理与技术 第4章 语法制导的翻译 6学时.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
LALR(1)分析方法.
编译原理实践 13.语法分析程序的自动生成工具YACC.
自动机与形式语言 报告人:姜勇刚 郑奘巍.
文法等价变换 文法的等价 对文法G1和G2,若有:L(G1)=L(G2),则称文法G1和G2等价, 记作:G1=G2. 文法等价变换
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VisComposer 2019/4/17.
正则表达式 一、基本定义及组成 组成:一个完整的表达式由字符簇,限定符,定位符等组成。
自底向上的语法分析 4.5.
项目二:HTML语言基础.
5.汽车配件经营 我国汽车配件市场的概述 汽车配件零售网点的经营管理 汽车配件交易市场的经营管理 汽车配件的连锁经营
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
编译原理与技术 -- 自顶向下分析 2019/5/5 《编译原理与技术》讲义.
词法分析
基于规则抽取的时间表达式识别 -英文Ⅲ 高冠吉.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
编译原理 Compiler Principles 第三章 词法分析 湖南大学信息科学与工程学院 软件工程系 杨金民 2019/02.
第三章:词法分析 戴新宇 南京大学 计算机科学与技术系.
编译原理实践 6.程序设计语言PL/0.
Presentation transcript:

编译原理总结-1 第3~5章

编译器的结构 词法分析 语法分析 语法制导翻译 源程序 … 目标程序

词法分析 逐个读构成源程序的字符,把它们组成词法单元 (token)流。 实例:position = initial + rate * 60 (2)赋值号(=) (3)标识符(initial) (4)加号(+) (5)标识符(rate) (6)乘号(*) (7)数(60)

词法分析的主要方法 正则表达式 NFA DFA

正则表达式 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 代码/语法 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次

正则表达式 贪婪与懒惰 表5.懒惰限定符 代码/语法 说明 *? 重复任意次,但尽可能少重复 +? 重复1次或更多次,但尽可能少重复 ?? 重复0次或1次,但尽可能少重复 {n,m}? 重复n到m次,但尽可能少重复 {n,}? 重复n次以上,但尽可能少重复

关系转换图 开始 letter other letter或digit return(install_id()) 识别标识符的关系转换图 11 9 10 11 开始 letter other * letter或digit return(install_id())

NFA与DFA 形式化定义 NFA:一个符号标记离开同一状态有多条边 DFA:一个符号标记离开同一状态只有一条边

从正则表达式到DFA 正则表达式到NFA NFA到DFA DFA的最简化 直接构造 McMaughton-Yamada-Thompson算法 子集构造法 DFA的最简化

子集构造法 ε-closure(s) 从NFA的状态S出发,只用ε转换就能到达的状态 的集合 ε-closure(T) 从NFA的状态集合T中每个状态出发,只用ε转换 就能到达的状态的集合 Move(T,a) 状态集合T中每个状态通过a能到达的所有状态集 合 1 9 开始  a b 6 7 8 2 3 4 5

语法分析 把词法记号流依照语言的语法结构按层次分组,以 形成语法短语。 实例: position = initial + rate * 60 的语法分析树

上下文无关语言 形式化定义 0~3型形式语言

语法分析处理技术 预处理 自顶向下分析 自顶向上分析 左递归 左公因子 LL(1)文法 LR文法 FIRST集合 FOLLOW集合 SLR LALR

LL(1)文法 求FIRST集合 求FOLLOW集合 基于FIRST集合,构建预测分析表 只有遇到ε时,才需要考虑FOLLOW集合

LR文法 移进-归约分析 SLR 规范的LR 构建可行前缀的DFA 基于DFA构建预测分析表 重新定义项目,让它带上搜索符,成为如下形式 [A->a·b,c]

LALR LALR和SLR的分析表有同样多的状态,比规范LR 分析表要小得多 LALR的能力介于SLR和规范LR之间

语法制导翻译 对语法树进行语义分析 例如:将中缀表达式转化成为后缀 语法制导定义 语法制导翻译方案 9 - 5 + 2 -> 9 5 – 2 +

属性文法 通过把属性附加到代表语法结构的文法符号上,将 语义信息和程序设计语言的语法结构联系起来,属 性的值是用与文法产生式相联系的语义规则来计算 的 语法制导定义SDD:文法产生式和语义规则分开 说明关于语言翻译的高层次规格,隐藏了许多具体实现细节,使用户不必显式地说明发生的顺序 语法制导翻译方案SDT:文法产生式和语义规则交 错 把语义规则用{}括起来,插入到规则右部的合适位置上,指明了语义规则的计算顺序,以便说明某些实现细节

L属性与S属性 L属性翻译方案(L代表从左到右) S属性翻译方案(S代表综合) 包含了所有不必显式构造语法分析树即可完成的翻译方案,即可以在语法分析过程中完成的翻译方案 S属性翻译方案(S代表综合) 可以很容易和自底向上语法分析(如LR语法分析)过程联系起来的L属性翻译方案

综合属性和继承属性 综合属性 继承属性 语法分析树结点N上的非终结符A的综合属性是由N上的产生式所关联的语义规则定义的 语法分析树结点N上的非终结符B的继承属性是由N的父结点上的产生式所关联的语义规则定义的 这个产生式的体中一定包含非终结符B;结点N上的继承属性只能通过其父节点、其本身及其兄弟结点上的属性值来定义