变量 存储单元及它的名称由变量的概念来代替;
可以代表一个或一组单元,可以修改。
绑定
绑定:一个实体(或对象)与其某种属性建立起某种联系的 过程,称为绑定。
静态绑定:凡是在编译时能确定的属性,称为静态属性;
若绑定在编译时完成,运行时不改变,称为静态绑定。
动态绑定:凡是在运行时才能确定的属性称为动态的。
若绑定在运行时完成,称为动态绑定。
变量及其属性
变量是对一个(或若干个)存储单元的抽象,赋值语句则是修改存储单元内容的抽象。
变量除名字外,具有四个属性:作用域、生存期、值和类型。
变量的作用域是指可以访问该变量的程序范围。
静态作用域绑定:按照程序的语法结构定义变量的作用域。
动态作用域绑定:按照程序的执行动态地定义变量的作用域。
变量的生存期:
一个存储区绑定于一个变量的时间区间,称为变量的生存期。
变量的值:即变量对应存储区单元的内容
关于变量的值的主要问题:
变量与它的值的绑定是动态的
变量的初始化,几种处理方法:
不初始化则出错
随机
缺省值0
变量的类型
类型的定义: 变量的类型是与变量相关联的值的类,以及对这些值进行的操作的说明。
静态绑定:通过说明语句完成 如:Pascal、Fortran、C
动态绑定:执行时隐式说明,且动态变化
虚拟机
虚拟机是由软件实现的机器。
翻译汇编语言的程序称为汇编程序(器)
翻译高级语言的程序称为编译程序(器)
机器语言就是二进制。汇编语言类似三元式
高级语言:
直观、自然、易于理解
易读、易写、易于交流、出版和存档
一般都是独立于机器的,易于移植
程序单元
程序单元:程序执行过程中的独立调用单元; 如子程序、分程序、过程等。
在编译时,单元表示是该单元的源程序。
运行时,单元表示由一个代码段和一个活动记录组成,称为单元实例
活动记录:执行单元所需要的信息,以及该单元的局部变量所绑定的数据对象的存储区。
引用环境:局部变量+非局部变量
副作用:对绑定于一个非局部变量的对象进行修改时,将产生副作用。
程序单元可以递归激活,从而一个单元可以有很多个实例,但代码段相同。不同的仅仅是活动记录。
数据类型
数据类型实质上是对存储器中所存储的数据进行抽象。 它包含了一组值的集合和一组操作。
数据类型的作用
实现了数据抽象
使程序员从机器的具体特征中解脱出来
提高了编程效率
数据类型的分类
内部类型:语言定义的
自定义类型:用户定义的
内部类型的优越性
内部类型是对硬件基本位串的抽象。
1.基本表示的不可见性:基本位串对程序员是不可见的。
优点(程序员): 导致不同的程序设计风格、可写性、可读性、可修改性
2.编译时能检查变量使用的正确性,进行静态类型检查
3.编译时可以确定无二义的操作
超载(多态)的概念:运算符的意义依赖于操作数的类型。如“+”可以表示整数加或实数加
编译时,可拒绝混合运算,或提供类型转换指令
4.精度控制:可以通过数据类型显式定义数据的精度
用户定义类型(6种聚合方式)
用户自定义类型是对内部类型和其他用户自定义类型的抽象。
1. 笛卡尔积
C语言:结构St