- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章高级语言及其语法描述
第二章 高级语言及其语法描述 程序语言的定义 高级语言的一般特性 2.1 程序语言的定义 程序语言由两方面定义: 语法 语义 一. 语法 程序本质上是一定字符集上的字符串。 语法:一组规则,用它可以形成和产生一个合式(well-formed)的程序。 语 法 词法规则:单词符号的形成规则。 单词符号是语言中具有独立意义的最基本结构。一般包括:常数、标识符、基本字、算符、界符等。 描述工具:有限自动机 语法规则:语法单位的形成规则。 语法单位通常包括:表达式、语句、分程序、过程、函数、程序等; 描述工具:上下文无关文法 二. 语义 语义:一组规则,用它可以定义一个程序的意义。 描述方法: 自然语言描述:隐藏错误、二义性和不完整性 形式描述: 操作语义(PL/1) 指称语义(ADA) 代数语义(PASCAL) 三.程序语言的基本功能和层次结构 程序语言的基本功能:描述数据和对数据的运算。 所谓程序,本质上说是描述一定数据的处理过程。 程序的层次结构 程序 | 子程序或分程序、过程、函数 | 语句 | 表达式 | 数据引用 算符 函数调用 程序语言每个组成成分的逻辑和实现意义 抽象的逻辑的意义 数学意义 计算机实现的意义 具体实现 2.2 高级语言的一般特性 高级语言的分类 强制式语言(Imperative Languge)也称过程式语言:命令驱动,面向语句 FORTRAN、C、Pascal,Ada 应用式语言(Applicative Language):注重程序所表示的功能,而不是一个语句接一个语句地执行 LISP、ML 2.2 高级语言的一般特性 2.2.1 高级语言的分类 基于规则的语言(Rule-based Language):检查一定的条件,当它满足值,则执行适当的动作 Prolog 面向对象语言(Object-Oriented Language):封装性、继承性和多态性 Smalltalk,C++,Java 2.2 高级语言的一般特性 2.2.2 程序结构 FORTRAN PASCAL PASCAL程序本身可以看成是一个操作系统所调用的过程,过程可以嵌套和递归。 一个PASCAL过程: 过程头; 说明段(由一系列的说明语句组成); begin 执行体(由一系列的执行语句组成); end 作用域:一个名字能被使用的区域范围称作这个名字的作用域。 允许同一个标识符在不同的过程中代表不同的名字。 名字作用域规则--最近嵌套原则 一个在子程序B1中说明的名字X只在B1中有效(局部于B1); 如果B2是B1的一个内层子程序且B2中对标识符X没有新的说明,则原来的名字X在B2中仍然有效。如果B2对X重新作了说明,那么,B2对X的任何引用都是指重新说明过的这个X。 PASCAL提供了丰富的数据类型和运算方式,它允许用户动态地申请和退还存贮空间。 ADA 程序包(package):把数据和操作代码封装在一起,支持数据抽象。 一个程序包分为两部分: 可见的规范说明部分,它定义了程序包外面可以访问的对象。 程序包体,它实际定义程序包的实现细节。 JAVA Java是一种面向对象的高级语言 类(Class) 继承(Inheritance) 多态性(Polymorphism)和动态绑定(Dynamic binding) 2.2.3 数据类型与操作 一.初等数据类型 数值类型:整型、实型、复数、双精度, 运算:+,-,*,/等 逻辑类型:布尔运算:∨,∧,┑ 字符类型:符号处理 指针类型 标识符与名字 标识符:以字母开头的,由字母数字组成的字符串。 标识符与名字两者有本质区别: 标识符是语法概念 名字有确切的意义和属性 标识符与名字 名字: 值:单元中的内容 属性:类型和作用域 名字的性质的说明方式: 由说明语句来明确规定的 隐含说明:FORTRAN 以I,J,K,…N为首的名字代表整型,否则为实型。 动态确定:走到哪里,是什么,算什么 二 数据结构 1 数组 逻辑上,数组是由同一类型数据所组成的某种n维矩形结构,沿着每一维的距离,称为下标。 数组可变与不可变:编译时能否确定其存贮空间的大小。 访问:给出数组名和下标值 存放方式: 按行存放,按列存放 2 记录 逻辑上说,记录结构由已知类型的数据组合在一起的一种结构。 record { char NAME[20]; integer AGE; bool MARRIED; } CARD[1000] 访问:复合名 CARD[k].NAME 存储:连续存放 域的地址计算:相对于记录结构起点的相对数OFFSET。 3 字符串、表格、栈 字符串:符号处理、公式处理 表格:本质上是一种记录
文档评论(0)