- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 - 陈火旺版 - 第二章课件
编译方法 中国人民大学信息学院 陈文萍 第二章 高级语言及其语法描述 高级程序语言:描述算法和计算机实现 不同的应用侧重点不同: 数值计算-- FORTRAN 系统程序设计---C 事务处理--COBOL VLSI设计---VHDL 人工智能---PROLOG 大型嵌入式实时处理---Ada 符号处理---SNOBOL 内容 2.1 程序语言的定义 2.2 高级语言的一般特性 2.3 程序语言的语法描述 2.1 程序语言的定义 程序设计语言:是由一组记号所构成的集合。 语言的定义 语言用户:语言的成分,使用意义 编译程序:语言的规则,语法单位对应的含义 组成部分 语法 (Syntax) 语义( Semantics) 语用( Pragmatics) 语法 语法 (Syntax):程序构成的一组规则 词法规则:单词符号的形成规则 单词符号:语言中具有独立意义的最基本的结构 类型:常数,标识符,基本字,算符,界符 例如:字符串 100-(8+a)*0.5 100,8:整型常数;0.5:实型常数; -,=,*:算符; (,):界符 分析工具:正规式和有限自动机 语法 语法规则:语法单位的形成规则 语法单位:比单词符号更大的语法结构 例如:表达式,语句,分程序,函数,过程,程序 分析工具:上下文无关文法 语义 语义( Semantics)定义程序的含义的一组规则 例如:C 语句 a = 18+b; 分析方法:基于属性文法的语法制导翻译方法 语用( Pragmatics)程序设计技术和语言成分的使用方法 程序的层次结构 2.2 高级语言的一般特性 高级高级语言的分类:按语言范型 强制式语言,应用式语言,基于规则的语言,面向对象的语言 强制式语言:命令驱动,面向语句。一个强制式语言程序由一系列的语句组成,每个语句的执行引起若干存储单元中的值的改变,这种语言的语法形式通常具有如下形式: 语句1; 语句2; … 语句n; 例如---C, Fortran, Pascal 应用式语言 注重程序所表示的功能,而不是一个语句接一个语句地执行 程序的开发过程是从前面已有的函数出发构造出更复杂的函数 这种语言通常的语法形式是: Function n(…function2(function1(data))…) 程序执行:执行一个个函数,得到数据上的变换,最终得到的结果 例如:ML,Lisp 基于规则的语言 程序的执行过程:检查一定的条件,当它满足值,则执行适当的动作。 也称逻辑程序设计语言:基本允许条件是谓词逻辑表达式。 这类语言的语法形式通常为: 条件1 ? 动作1 条件2 ? 动作2 条件3 ? 动作3 例如:Prolog 面向对象的语言 主要特征:封装性,继承性和多态性 例如:C++, JAVA 程序结构 不同的语言,如 Fortran, Pascal, Ada,Java 程序结构不同 名字的作用域不同 例如:Pascal 的最近嵌套原则 procedure P; var x: interger ; procedure Q; var x: real ; begin x := 1.2; end; begin x := 5; end; 数据类型 数据类型的三要素:属性,值,操作 属性:包括类型和作用域 类型:决定数据可以是什么样的值,允许的运算,计算机内如何表示 作用域:值的有效范围 初等数据类型 数值数据:如整型,实型 逻辑数据:布尔型 字符数据:字符型(字符串型) 指针类型:指向另一种数据类型 数据类型 数据结构:从初级数据定义的复杂(高级)数据 数组 内情向量:便于计算数据元素的地址,包括:维数,各维的上、下限,首地址,数组元素类型等。 例如: Pascal的说明 var a: array[1..50] of char 是一个下标从1至50的字符数组 记录:由已知类型的数据组合而成 例如: Pascal 语言中 Student: record name: array [1…20] of char ; age: integer ; id: array [1…8] of char ; major: integer ; classid: integer ; end; 字符串,表格,栈,队列 抽象数据类型:数据对象,运算,封装 语句与控制结构 表达式:由操作数和算符组成 例如:x-y, -x 通常的形成规则 变量,常数是表达式 若E1,E2是表达式,
文档评论(0)