天津大学编译原理讲义-Part2高级语言及其语法描述.ppt

天津大学编译原理讲义-Part2高级语言及其语法描述.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
天津大学编译原理讲义-Part2高级语言及其语法描述概要

数据库原理与Oracle——SQL语言 Part2 高级语言及其语法描述 授课:胡静 内容提要 预备知识——形式语言基础 程序语言的定义(语法定义、语义定义) 高级语言的一般特性(程序结构、数据类型和操作、语句与控制结构) 程序语言的文法 文法的类型 上下文无关文法及其语法树 有关文法实用中的一些说明 预备知识 更多的概念和一些约定 A, B, C, … 用来表示非终结符 a, b, c, … 表示终结符 …, X, Y, Z 可以用来表示终结符或者非终结符 …, w, x, y, z 表示终结符号串 α, β, γ, δ, … 表示由终结符或非终结符构成的符号串 在产生式A→α中, A 是产生式的左边(lefthand side,LHS) α是产生式的右边( righthand side, RHS) A→α1|…|αn 表示产生式 A→ α1 ,…, A→ αn 符号串和符号串集合的运算 符号串和符号串集合的运算 将字符看做符号,则单词就是符号串,单词集合就是符号串的集合 将单词看做符号,则句子就是符号串,而所有句子的集合(语言)就是符号串的集合 程序语言的定义 程序语言的语法定义 所谓一个语言的语法是指这样一组规则,用它可以形成和产生一个合式的程序。这些规则一部分称为词法规则则,另一部分称为语法规则(或产生规则) 词法规则:词法规则规定了字母表中哪样的字符串是一个单词符号,是单词符号的形成规则 语法规则:语言的语法规则规定了如何从单词符号形成更大的结构(即语法单位),换言之,语法规则是语法单位的形成规则 程序语言的定义 程序语言的语义定义 所谓一个语言的语义是指这样的一组规则,使用它可以定义一个程序的意义。这些规则称为语义。 我们将要介绍的是目前大多数编译程序普遍采用的一种方法,即基于属性文法的语法制导翻译方法,虽然还不是形式系统,但是比较接近形式化的。 高级语言的一般特征 高级语言的程序结构 数据类型和操作 数据类型的要素: 用于区别这种类型的数据对象的属性; 这种类型的数据对象可以具有的值; 可以作用于这种类型的数据对象的操作; 数据类型分类: 初等数据类型:数值数据、逻辑数据、字符数据、指针类型 数据结构:数组、记录、字符串、表格、栈、队列和抽象数据类型(Ada通过程序包package提供,其余通过类class提供) 语句与控制结构 表达式:一个表达式是由运算量(操作数,即数据引用或函数调用)和算符组成的。 语句:不同程序语言含有不同形式和功能的各种语句 执行语句:描述程序的动作,分为赋值语句、控制语句、输入/输出语句; 说明性语句:定义各种不同数据类型的变量或运算 从形式上分,语句可以分为简单句、复合句和分程序等。 文法的直观概念 关于文法的定义 定义3.1 文法G定义为四元组(VN, VT, P, S)。 其中VN为非终结符号(或语法实体,或变量)集;VT为终结符号集;P为产生式(也称规则)的集合;VN, VT和P是非空有穷集。S称做识别符号或开始符号,是一个非终结符(S∈ VN),至少要在一条规则中作为左部出现。 VN和VT不含公共元素,即VN∩VT=Φ。通常V表示VN∪VT,V称为文法G的字母表或字汇表。 例3.1 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号 文法可以简写,只需要指出开始符号和产生式即可。 关于文法的定义(续) 定义3.2 如α→β是文法G=(VN, VT, P, S)的规则(或说是P中第一个产生式),γ和δ是V*中的任意符号串,若有符号串v,w满足:v=γαδ,w=γβδ,则说v(应用规则α→β)直接产生w,或说w是v的直接推导。 (v=w) 例:G[S]: S→0S1, S→01 S ?0S1 ?00S11 ?000S111 关于文法的定义(续) 定义3.3 如果存在直接推导的序列:v=w0=w1=w2…=wn=w,(n0),则称v推导出(产生)w(推导长度为n)。记做v=+w。 定义3.4 若有v=+w,或v=w,则记做v=*w。 规范推导(最右推导) 最左推导:若规则右端符号串中有两个以上的非终结符时,先推导左边的。 最右推导:若规则右端符号串中有两个以上的非终结符时,先推导右边的。 关于文法的定义(续) 定义3.5 设G[S]是一文法,如果符号串x是从识别符号推导出来的,即有S=*x,则称x是文法G[S]的句型。若x只由终结符号组成,则称x为G[S]的句子。 定义3.6 文法G所产生的语言定义为集合{x | S=*x,其中S为文法的开始符号,且x∈VT *}。可用L(G)表示该集合。 例:G: S→0S1, S→01 S

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档