第2次课 上下文无关文法 2.1-2.2.

Slides:



Advertisements
Similar presentations
第六章 人事行政 一、教案释疑 政府系统内非经选举或政治任命产生 的常任文官 —— 这样的公务员是何种公务员 ?
Advertisements

〈媽媽的手〉 國二甲 蔡于均. 一.題旨 作者寫本文時,已身為人母,深深體會 到一個母親持家的辛勞,自然想起 了母親,以「媽媽的手」為題,歌 頌中國傳統婦女堅忍耐勞的美德, 並表達對母親的懷念。
组长:陈俊帆  组员:秦宗浩 何美林 白珊珊 蒋壮壮 黄 兰森 任雨之  班级:高 2014 级 2 班  指导老师:刘芬.
撒哈拉以南的非 洲. 学习目标(一) 1. 了解撒哈拉以南的非 洲的自然环境特点。 2. 记住撒哈拉以南的非 洲独特的人文特点。
目录 古诗 现代诗 春夏秋冬 返回 咏柳 (贺知章) 碧玉妆成一树高, 万条垂下绿丝绦。 不知细叶谁裁出, 二月春风似剪刀。
教學單元:嬉遊記 活動主題:西遊記 - 三借芭蕉扇 低年級語文領域成員: 蔡妮君、劉盈秀、林嘉璇、郭惠玟、施乃菁、廖丸毅、李思韻.
建设党员标兵制 ——“ 选树 ” 学生党员标兵的探索与经验 传媒学院学生党支部 曲阜师范大学 2015 年度党支部创新活动方案验收汇报 2016 年 5 月 20 日.
组长:肖志远 组员:王嘉乐 翁家程 冯乐微 陶天皓 赵泽昊 “读书有味”主题阅读 阅读书目: 《西游记》 研究主题: 孙悟空的性格特点.
关于 “ 上海的新移民与传播 ” 研究调查报告.  小组成员:(周五上午班级)  董正椽: 研究设计及书面报 告  邵必为: ppt 制作、调查  曹本沛: 调查  江智东 调查  夏昊:
团队指导老师:李春虎 团队核心:黄跃民 团队成员:廖育人 朱蒙 郁倩.  姓名:黄跃民  专业:印度尼西亚语  学历:研究生  学位:博士  主要承担课程:高级印 尼语,印尼语泛读,印 尼文化  姓名:郁倩  专业:印度尼西亚语  学历:本科  学位:学士  主要承担课程:基础印.
耐心陪孩子玩,即使你真的认为他的游戏内容很无聊。. 请蹲下来和孩子说话。 一开始别太在乎孩子成绩,要关心他是否喜欢学校。
19 世纪不同国家的文学 作品所反映的社会现实. 法国:《我的叔叔于勒》 —— 莫泊桑 俄罗斯:《胖子与瘦子》 —— 契科夫 美国:《麦琪的礼物》 —— 欧亨利 选取的作品.
第三單元 我的世界宇宙大 教學設計:黃筱晶. 一、使用說明 (一) 本教學設計核心概念為「生涯發展」,共 四節課, 160 分鐘。 (二) 為了讓小學教學現場更加適用,教師可選 擇連續實施四節課,或彈性選擇其中一節 課或二節或三節課實施。 (三)四節課都進行是最完整的,但若因時間不允 許只進行其中一節課或二節或三節課實施,
平面构成 第六章 平面构成形式与法则 — 破规与变异. 第七章 平面构成形式与法则 — 破规与变异 破规与变异构成的形式、有下列四类: 一、特异构成 特异构成。其表现特征是,在普遍相同性质的事物 当中,有个别异质性的事物,便会立即显现出来。
上海市职业能力考试院 职称外语考试网上报名指导 (仅供参考). 考试报名 注意事项: 1 、本 PPT 旨在帮助考生熟悉上海市职业 能力考试院网上考试报名,仅供参考。 2 、每次考试报名细节处可能会有不同, 请具体关注考试院网上具体信息。
第二組 資料蒐集: 楊淳雅 陳佑安 PPT 製作: 陳薇如 口頭報告: 凃偌雯 葉于禎.
一、教学目标: 1 、阅读文章感悟作者的评论观点。 2 、阅读《百合花》,简述故事的情节。 3 、掌握小说阅读的基本方法。 4 、结合作者的观点和自己的体会,选取 一个角度赏析作品,谈出自己的独特见 解和感受。 二、教学重点、难点: 同目标 3 、 4.
頭皮處理 和 頭髮保養.
如何進行生涯輔導 永和國中 輔導處 陳月芳.
荒岛求生 ——浅谈鲁滨逊的生存智慧.
【我真歡喜來讚美你】 1.睜開眼睛 感覺好熟悉 在你面前 一切都不會在意.
我見我思我實踐 品德教育實踐分享.
從閱讀擺渡到寫作 高雄女中 楊子霈.
報告人:教育部會計處處長 黃 永 傳 日 期:103 年12 月27 日
引 言 亚里士多德 法治应该包含两种意义:已成立的法律获得普遍的服从,而大家所服从的法律又应该本身是制定得良好的法律。
大道当然 ——我与万科 作者 : 王 石 出版:中信出版社.
课程名称 《性别决定的方式》 生物学 学 科 年 级 八年级 学校名称 辽中县冷子堡九年一贯制学校 姓 名 张贵武.
100學年度第一學期公民與社會學科中心南區資源研發 專題製作分享 做中學,學中做
班级: 组长: 组员:.
自然科學及永續研究發展司 103年度新進人員座談會
欢迎使用本课件 教材简介: 名 称:人工智能原理与应用 作 者:张仰森 出版社:高等教育出版社 章 节:共十章 主讲教师: 宗春梅.
美国教育心理学家吉诺特说:在历经了若干年的教师工作之后,我得到了一个令人惶恐的结论:教育的成功与失败,我是决定性的因素,我个人采用的方法和每天的情绪,是造成学习气氛和情景的的主要原因。身为教师,我具有极大的力量,能够让孩子们活得愉快或悲惨,我可以是制造痛苦的工具,也可能是启发灵感的媒介。无论在什么情况下,一场危机之恶化和化解,学生是否受到感化,全部决定于我。
“武侠魅力”阅读领航 六(8)班第二小组.
2014年度部级“优课”评审 评审流程、评价指标及操作细则的解读 绍兴市教育教学研究院 陆一黎.
第二章 文法和语言 2.1 文法的基本概念 符号和符号串 2.2 句型的分析 文法和语言的形式定义 推导与递归 文法的分类 语法树
学年各年级上学期期末工作布置会 武昌区教研培训中心 黄志平 2015年12月.
现今社会可否用文言作交际工具,为什么? 中学生练习写文言的利弊何在? 为什么会非驴非马?.
D、結構化技術 主要的結構化技術 結構化程式設計 (Structured Programming)
時間規劃與管理 羅寶鳳.
第六章 中间代码生成 赵建华 南京大学计算机系.
培训教案 公司审计部
你 今 天 累 吗 ? 坪山高级中学心理教师 张婧乔.
免試入學相關資訊 資料類別 提供單位 公布 日期 資料 性質 各科能力等級加標示(3等級4標示) 與答對題數對照表 心測中心 6/2 全國性
把握命题趋势 ★ 科学应考 实现最后阶段的有效增分
第十二章 生产与费用循环审计.
用字母表示数 A=X+Y+Z 执教:建阳市西门小学 雷正明.
旅游服务与管理专业 知识点7 道教教主老子圣迹 任务三 道 教 主题二 中国四大宗教 辉县市职业中等专业学校 辉县市职业中等专业学校
课程及其教学标准 主讲:傅文清
编译原理(H) 第一次习题课.
程式設計實作.
你不理財,財不理你 ─理財面面觀 陳富美 老師 豐東國中.
2.2 语法分析器生成器YACC 分析器的构造步骤: 产生式→识别活前缀的DFA→分析表(+驱动器) YACC概述
自上而下分析 4.4.
语言及其文法.
第四章 语法分析.
第三章 词法分析.
个人介绍 我是小小.
變壓器和高壓輸電 危險!高壓電力! 互感現象 變壓器的原理 進度評估 4 電壓比 變壓器的電流
语法分析 本章内容 语法分析器:把词法分析生成的词法单元流翻译成语法分析树(parse tree)
当当网入驻商户管理规定.
假有以下之文法產生規則: S→aBc B→bXb B→bX X→a X→ab (a). 字串“ababc”是否可由以上文法產生? (b)
美麗的西子湖.
國民年金 np97006.
性惡 華 語 文 學 與 思 想 指導:賴慧玲 老師 資工一B 第五組 組長:曾仁蔚 組員:高瑋駿、賴 緯、蘇致杰、陳柄任、
孔融《与曹操论盛孝章书》.
编译原理实践 1.课程说明及引论.
第四章 语法分析 南京大学计算机系 戴新宇
高级大数据人才培养丛书之一,大数据挖掘技术与应用
4.1 概 述 4.2 组合体视图绘制方法 4.3 组合体的尺寸标注 4.4 组合体视图的读图方法
2.1 试验: 探究小车速度随时间变化的规律.
Presentation transcript:

第2次课 上下文无关文法 2.1-2.2

本章主要内容 主要描述编译器的前端 词法分析、语法分析和语义分析 通过本章对编译的过程有所了解

一个简单的语法制导翻译器 一个简单的语法制导编译器 词法分析 语法分析 中间代码生成

2.1 引言(2.1) 语法制导翻译器 一个编译器前端的模型:图2.3 词法:词素的正确形式(正则文法:略) 语法:程序的正确形式(上下文无关文法) 语义:程序的含义,即程序在运行时做什么事情(非形式化描述和启发式实例)

2.1 引言 中间代码 抽象语法树(简称语法树):图2.4a 三地址码:x = y op z 图2.4b 最多只执行一个运算,通常是计算、比较或者分支跳转

2.1 概述 程序设计语言由语法(syntax)和语义(semantics)两个方面定义。 程序设计语言的语法通常用上下文无关文法来表示。 语义的描述则比语法的描述难得多,采用非形式化的自然语言描述

如何描述语法 上下文无关文法Context Free Grammar (CFG) IP  NP-SBJ VP NP-SBJ  DNP NP NN  贷款|本息 | 回收|中国 语法分析树 Parse Tree

上下文无关文法 Context-Free Grammar, CFG 上下文无关文法CFG是一个四元组(Vt, Vn, S, P),其中: Vt 是一个非空有穷集合,称作终结符号集合 Vn 是一个非空有穷集合,称作非终结符号集合,且VtVn = 。 S  Vn ,称作开始符号。 P是一个非空有穷集合,称为产生式集合,每条产生式形为A,其中AVn,(VtVn)*。

例2.1 简单的算术表达式 list  list + digit list  list - digit list  digit 例2.1 简单的算术表达式 9-5+2 list list  list + digit list  list - digit list  digit digit  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 list + digit 2 list - digit digit 5 终结符号:+ - 0 1 2 3 4 5 6 7 8 9  Vt 非终结符号 :list digit  Vn 开始符号:list “”:推导,左部是非终结符,右部是(VtVn)* “|” 表示“或者” 9

例2.1 简单的算术表达式 list  list + digit | list – digit | digit 例2.1 简单的算术表达式 list  list + digit | list – digit | digit digit  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 上述文法定义的是由加号和减号分隔的数字序列构成的列表。

例2.2 数字序列9 - 5 + 2的推导(derive) list  list + digit  list - digit + digit  digit - digit + digit  9 - digit + digit  9 - 5 + digit  9 - 5 + 2 P1 : list  list + digit P2 : list  list - digit P3 : list  digit P4 : digit  9 P4 : digit  5 P4 : digit  2 从开始符号推导得到的所有的终结符号串的集合称为该文法定义的语言(language)。

例2.3 函数调用中的参数列表 call  id ( opt_params ) opt_params  params |  params  params, param | param main() square(n) max(m,n)

2.2.1 分析树(Parse Tree) A X Y Z 分析树描述如何从文法的开始符号推导出它的语言中的一个语句。 如果非终结符A有产生式 A XYZ,则A的一棵分析树为: A X Y Z

句法分析树Parse Tree 分析树具有如下性质: 根结点是开始符号Start Symbol 叶子结点是终结符或 内部结点是一个非终结符 Non-Terminal If A  x1x2…xn, Then A 是一个非终结符; x1x2…xn 是A 的孩子,是终结符或非终结符 一个文法生成的语言是它的某个分析树生成的串的集合。为给定的符号串找到一棵分析树的过程称为串的语法分析(parsing)。

推导过程可以用分析树( Parse Tree )表示 list  list + digit  list - digit + digit  digit - digit + digit  9 - digit + digit  9 - 5 + digit  9 - 5 + 2 list digit 9 5 2 - + token

2.2.2 二义性 Ambiguity 9-5+2 文法Grammar: list  list + digit | list – digit | digit 2.2.2 二义性 Ambiguity 9-5+2 文法Grammar: string  string + string | string – string | 0 | 1 | …| 9 string + 2 - 5 9 对某个文法,如一个句子有两棵以上的分析树,称为二义(歧义)文法。

2.2.3运算符的结合性 可以用括号来表明计算顺序,如 9-5+2 = (9-5)+2 如果对某个运算符op,x1,x2,x3为运算对象,且x1 op x2 op x3 表示 (x1 op x2) op x3,则称op是左结合的;如果x1 op x2 op x3 表示 x1 op (x2 op x3),则称op是右结合的。 左结合例子:a=3-4-5; a=3-4+5; 右结合例子:a=b=c+1; a=**p;q=&*p;

Left vs. Right a=b=c 9-5+2 right letter list digit list  list + digit | list - digit | digit digit  0 | 1 | … | 9 right  letter = right | letter letter  a | b | c | …| z 终结符在右侧 终结符在左侧

2.2.4 算符优先级 Operator Precedence 9 + 5 * 2 是什么含义? (9 + 2) * 5 或9 + (5 * 2) ? 不同的运算符号有不同的优先级,如9+5*2 表示 9+(5*2),所以*的优先级比+高。 ( ) * / + - 优先级

通过适当改写文法规则,可以描述不同的结合律和优先级: factor  digit | ( expr ) term  term * factor | term / factor | factor expr  expr + term | expr – term | term factor(因子):不能被任何运算符分开的表达式 term(项):可以被高优先级的运算符*和/分开,但不能被低优先级运算符分开的表达式 expr(表达式):expression 对于处理n层优先级的情况,我们需要n+1个非终结符号。

Java语句的语法 stmt  id = expr ; | if (expr )then stmt | if (expr ) stmt else stmt | while (expr) stmt | do stmt while (expr); | { stmts } stmts  stmts stmt |  假设改为:if (expr )then stmt; 又假设stmt为赋值语句, 那么 语句就会多出现一个分号, 例如:if( a>0 ) b++; ; 注意:“;”的设置

作业 中序表示转换为后序表示 1+2*3->123*+

重点 语法制导翻译器的组成部分? 什么是上下文无关文法? 上下文无关文法的形式化定义(四元组)? 什么是分析树? 什么是二义性? 什么是运算符的结合性?

练习 自己写表达式,基于文法构建语法树 自顶向下的方法 ppt-11页的文法规则 ppt-13页的文法规则