预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PL复习一、历史的回顾与程序设计语言分类·本章按年代给出了程序设计语言发展的各阶段,程序设计语言研究最主要是高级程序设计语言。它的出现,奠基研究、完善、向对象式发展,九十年代只给出六个可能的发展方向,并发式、多媒体(5GL)、4GL完善、规格说明式、数据库程序设计语言、多范型式。·可以按多种准则为程序设计语言分类。一个语言可以在多个类别,本书按对机器依赖程序、应用领域、实现计算方式、使用方式、编程范型和断代划化,六个角度分类。所指语言一般至少在某个领域是比较通用的。特别专门的*语言不是本书研究范围。·历史上有较大影响的语言是:FORTRAN,COBOL,Algol-6o,PL/1,LISP,Algo1-68,BASIC,Pascal,APL,Simula,C,Ada,Smalltalk,Prolog,ML,C++,SQL,Java二、程序设计语言的设计概述·本章首先介绍程序语言中非常重要的概念:表示与抽象,即同一事物可在不同的抽象层表示它。程序语言的实现实质是不同抽象层次的等价变换。继而讨论抽象的内涵与外延问题。·从抽象层次的角度可以把计算机解题分为四个世界。用户看到的程序设计语言是程序世界使用程序对象,实现者要涉及机器世界,要处理存储对象。·即使只限定程序世界,对象表示有显式也有隐式的。·本章讨论了语言设计目标。它们是模型能力、语义清晰、实用性、方便性、简单性、可读性、可移植、效率高、适当的灵活性等九个方面,只能定性举例比较难于量化。·为了实现以上九个目标应遵循的设计准则:频度、结构一致、局部性、词法内聚.语法一致、安全性、正交性/正则性、数据隐藏、抽象/修饰表达、移植性等。·本章从表示的角度介绍了程序设计语言的规格说明。它们的术语、基本概念。·语法规格说明一节介绍上下文无关文法的基本概念与表示。介绍了形式语言理论中按文法的产生式划分的Chomsky四种文法和四种语言。指出程序语言规格说明中一般采用上下文无关文法(包含正则文法)。·上下文无关文法的元语表示是BNF或EBNF范式,EBNF由于纳入正则表达式表示法比BNF简炼但表达能力一样。EBNF和语法图完全一致对应,只是语法图更直观,语法定义中一般两者都给出。·本章介绍了当前广泛研究、使用的形式语义。虽然定义程序设计语言文本时并不是必须的。形式语义描述程序执行中的行为。本节给出了每种语义学如何描述程序行为的初步概念。·操作语义将每个操作抽象并形式表达它的操作后果。注重细节、表达复杂,非行家一时难看出程序净效应。但在重要的涉及硬件、控制的应用中还有用到它。·指称语义把程序看作是一个数学函数的实现。用语义函数在语义域上如何取值表征语法特征的行为,是较为抽象的表示,这样只关心程序净效果。是当前语义学研究中的'标准'语义。·公理语义并不给语法特征以确切的数学映射值,它只定义公理及推理规则以此证明程序的某些性质。这些证明规则就是抽象语义。·代数规格说明用以表达抽象数据类型,它以代数方法处理满足给定逻辑系统的各种模型,即可模型程序的各种代数结构。刻划了语义范畴。·上下文说明是使形式语法和语义不致过于复杂的折衷。以自然语言给出相应约束。以便语言处理器的实现者遵照。三、值与类型·值是对事物性态的表征和度量。同一事物在不同论域不同抽象层次上有不同的值。按抽象层次上层的值可以是下层的名(概括抽象的值)。·程序世界的值是有类型的,并寓于某种表示之中。程序世界的基本类型一般是整、实、字符、真值、枚举型;结构类型有元组、数组、记录、表、串;用户定义的递归复合类型。·除类型分类而外,另一维分类是字面量、常量、变量。变量的时、空特性是过程式语言最大特点。·程序世界的值是字面量、复合量、指针值、变量引用(包括函数、过程调用)、和函数和过程抽象。它具有这两维的特点。·程序世界中求值方式是利用表达式和函数引用。表达式本质上是嵌套复合的函数引用。一个运算符就是一个函数。·第一类(头类)对象在该类型所有运算面前不受任何限制。具体到程序世界它们的运算是可作操作数求值;可存储;可作参数传递;可作返回值;可进一步构成复杂数据结构。类型完整性原则要求所有涉及值的对象都是头等对象。·类型是值的集合以及在这个集合上的操作集合。类型定义、类型规则、类型检查统称类型系统。·简单集合、笛卡儿积、不相交的联合、映射、幂集、递归函数等数学概念是以描述一般程序设计语言的各种类型的数学模型。·给出类型定义和规则之前要设计类型,按它的性态分有动态/静态,弱/强,因此有不同的等价规则。按名,按结构等价是决定类型强弱的重要因素。·表达式是操作数、运算符的序列。运算符有前缀、中缀、后缀表示法。一个表达式对应一棵语法释义树,不同结点上的运算符有不同优先级。同等优先级靠结合性决定其求值