常用的高级程序设计语言
FORTRAN 数值计算
COBOL 事务处理
PASCAL 结构化程序设计
LISP 函数式程序设计
PROLOG 逻辑程序设计
C 系统程序设计
Smalltalk 面向对象程序设计
Java Internet 应用 可移植性
Python 解释性 动态编程
优点: 更接近数学语言 更容易验证 编写效率高 更容易移植
程序语言的定义
语法: 程序本质上是一定字符集上的字符串 一组规则,用它可以形成和产生一个合式的程序。
词法规则: 单词符合的形成规则
单词符合是语言中具有独立意义的最基本结构
一般包括: 常数、标识符、基本字、算符、界符等
描述工具: 有限自动机
语法规则: 语法单位形成的规则
语法单位通常包括:表达式 语句 分程序 过程 函数 程序
描述工具:上下文无关文法
语义:一组规则,用它可以定义一个程序的意义
描述方法:自然语言描述
形式描述
语用:
高级语言的分类
强制性语言
应用式语言 注重程序过程
基于规则的语言 Prolog
面向对象语言 封装 继承 多态性
程序结构
Fortran :
一个程序有一个主程序和若干辅程序段组成
PASCAL:
可以看成一个操作系统调用的过程,过程可以递归
JAVA:
面向对象的语言 类 对类进行扩展
数据类型与操作
数据类型通常包括三要素:
用于区别这种类型数据对象的属性
这种类型的数据对象可以具有的值
可以作用于这种类型的数据对象的操作
初等数据类型:
整型 实型 复数 双精度
运算:+ - * /等
逻辑类型: true false ^ !
字符类型 指针类型
标识符与名字
标识符: 以字母开头 由数字和字符构成
名字: 具有语义色彩 有意义和属性 有值:单元中的内容
名字的说明方式:
由说明语句来明确规定的
隐含说明: FORTRAN
动态确定: 走到哪里,是什么,算什么
数据结构
数组:
逻辑上,数组是由同一类型数据组成的某种N维矩行结构,沿着每一维的距离,称为下标
数组可变与不可变
访问 给出数组名和下标值
存放方式: 按行存放 和 按列存放
记录:
由已知类型的数据组合在一起的一种结构
记录或者结构的元素,也叫做域
访问: 复合名
存储: 连续存放
域的地址计算
record{
int age;
char name[20]
}cards[1000]
字符串、表格、栈
字符串: 符合处理、公式处理
表格:本质上一种记录结构
线性表: 一组顺序化的记录结构
栈: 一种线性表; 后进先出
抽象数据类型:
抽象数据类型:
抽象数据类型由数据集合、及其相关的操作组成,这些操作由明确的定义,而且定义不依赖于具体的实现。
一个抽象数据类型包括:
数据对象集合
作用于这些数据对象的抽象运算的集合
这种类型对象的封装,即 除了使用类型中所定义的运算外,用户不能对这些对象进行操作。
程序设计语言对抽象数据类型的支持:
Ada通过程序包来支持抽象数据类型
C++ 和 JAVA 通过类来支持抽象数据类型
语句和控制结构
表达式:
由运算量和算符组成
形式:中缀 前缀 后缀
表达式形成规则:
变量 常数是表达式
若E是表达式 则 (E)是表达式
算符的优先次序
赋值语句
A:=B
名字的左值:该名字代表存储单元的地址
名字的右值: 该名字代表存储单元的内容
控制语句
无条件转移语句
条件语句
循环语句
过程调用语句
返回语句
按照功能分类:
执行语句 说明语句
按照形式分类:
简单句 复合语句