[工学]编译原理02高级语言及其语法描述.pptVIP

[工学]编译原理02高级语言及其语法描述.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]编译原理02高级语言及其语法描述

第二章 高级语言及其语法描述 高级语言 及其语法描述 讲述内容 1 程序语言的定义 2 高级语言的一般特性 3 程序语言的语法描述 1 程序语言的定义 任何程序语言都是一定字符集(字母表)上的一字符串(有限序列) 程序语言主要由语法和语义两个方面定义 1.1 语 法 一个语言的语法是指一组可以形成和产生合式程序的规则,包括词法规则和语法规则 例:字符串0.5*X1+C称为语言的一个语法范畴(语法单位),其中常数0.5,标识符X1和C,算符*和+称为语言的单词符号 词法规则是指单词符号的形成规则,将用正规式和有限自动机理论描述词法结构并进行词法分析 语法规则是指语法单位的形成规则,将用上下文无关文法进行分析 1.2 语 义 一个语言的语义是指一组可以定义一个程序意义的规则,这些规则称为语义规则,将用基于属性文法的语法制导翻译方法分析 程序是描述一定数据的处理过程,可视为如下的层次结构: 程序语言的每个组成成分都有(抽象的)逻辑和计算机实现两方面的意义 2 高级语言的一般特性 高级语言的分类 程序结构 数据类型与操作 语句与控制结构 2.1 高级语言的分类 从语言范型分类可分为: 强制式语言(过程式语言) 特点:命令驱动,面向语句 形式: 语句1; 语句2; …… 语句n; 例:FORTRAN,C,Pascal等 应用式语言(函数式语言) 特点:注重功能 形式: 函数n(…函数2(函数1(数据))…) 例:LISP等 基于规则的语言 特点:条件满足时执行动作 形式: 条件1→动作1 条件2→动作2 …… 条件n→动作n 例:Prolog等 面向对象语言 特点:封装,继承,多态 例:JAVA,C++等 2.2 程序结构 FORTRAN 一个FORTRAN程序由一个主程序段和若干个(可以是0个)辅程序段组成。 PROGRAM MAIN … END SUBROUTINE SUB1 … END … SUBROUTINE SUBn … END Pascal 子程序可以嵌套定义。 Java 类(Class)及继承(Inheritance)是重要的概念。 Class Car{ int color_number; int door_number; int speed; … push_break(){ … } Add_oil(){ … } } class Trash_Car extends car{ double amount; fill_trash(){ … } } 2.3 数据类型与操作 一个数据类型的三要素: 用于区别这种类型的数据对象的属性 这种类型的数据对象可以具有的值 可以作用于这种类型的数据对象的操作 2.3.1 初等数据类型 数值数据,逻辑数据,字符数据,指针类型 标识符与名字,如:PI 一个名字的属性包括类型和作用域 2.3.2 数据结构 数组(确定数组,可变数组),记录,字符串,表格,栈,队列 2.3.3 抽象数据类型 包括: 数据对象的一个集合 作用于这些数据对象的抽象运算的集合 这种类型对象的封装 例:C++和Java通过类对抽象数据类型提供支持 2.4 语句与控制结构 表达式 赋值句 控制语句 无条件转移语句:goto L 条件语句:if B then S if B then S1 else S2 循环语句:while B do S repeat S until B for i:=E1 step E2 until E3 do S 过程调用语句:call P(X1,X2,…,Xn) 返回语句:return(E) 说明句 简单句和复合句 3 程序语言的语法描述 对于高级程序语言及编译程序而言,语言的语法定义是非常重要的,下面将介绍语法结构的形式描述问题 首先引入几个概念: 设?是一个有穷字母表,它的每个元素称为一个符号。 ?上的一个符号串是指由?中的符号所构成的有穷序列。不包含符号的序列称为空字,记为?。用?*表示?上的所有符号串的全体,空字也包括在其中。如:若?={a,b}则?*={??,a,b,aa,ab,bb, aaa,…}。?表示不含任何元素的空集{}。这里要注意?、{}和{?}的区别。 ?*的子集U和V中的(连接)积定义为: UV={??∣??U ??V } 即集合UV中的符号串是由U和V的符号串连接而成的。注意,一般UV?VU,但(UV)W=U(VW). V自身的n次(连接)积记为: Vn = V V…V (n个V) 规定 V0 = {?}. 令:V* = V0?

文档评论(0)

ipbohn97 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档