程序语言概述
- 计算机硬件只能识别由0,1组成的机器指令序列,即机器指令程序,是最基本的计算机语言
- 用符号表示的指令成为汇编指令,汇编指令的集成被称为汇编语言
- 程序设计语言定义:
1)语法:有程序语言的基本符号组成程序中的各个语言结构的一组规则
2)语义:按语法规则构成的各个语法成分的含义,一个程序的执行结果说明了该程序的语义
3)语用:语言的各个几号和使用者的关系
4)语境:理解和实现程序设计语言的环境,包括编译环境和运行环境 - 程序语言的分类
1)命令式程序设计语言
2)面向对象的程序设计语言
3)函数式程序设计语言
4)逻辑型程序设计语言 - 程序语言的基本成分:数据、运算、控制、传输
1)数据成分:指程序中的数据对象,是程序操作的对象,具有存储类别、类型、名称、作用域和生存期等属性,使用时需要分配内存空间。
从不同角度可以将数据进行不同的划分
1.常量和变量:常量是指在程序运行过程中其值不会发生变化的量,变量是指在程序运行过程中其值会发生变化的量
2.全局变量和局部变量:系统为全局变量分配的存储空间在程序运行的过程中一般是不改变的,而为局部变量分配的存储单元是可以动态改变的。
3.数据类型:基本类型、用户定义类型、构造类型、其他类型
image.png
- 程序语言的控制成分
1)顺序结构:计算过程从第一个操作开始按顺序一次执行到最后一个操作
2)选择结构:根据条件选择一个分支执行
3)循环结构:通常由初始化、循环体和循环条件组成,描述的是重复计算的过程
while是先判断后执行,do-while是先执行后判断是否继续执行
- 函数使用设计三个概念
1)函数定义:包括函数首部和函数体,函数的定义描述了函数做什么和怎么做,瘦不描述函数的返回值类型、函数名称和运算所需的参数与类型,所实现功能在函数体中描述
2)函数声明
3)函数调用:当一个函数中需要使用另一个函数实现功能时,以名字进行调用称为函数调用。函数体中调用自己成为递归调用。
调用函数和被调用函数之间信息交换的方式有两种:
1.由被调用函数把返回值返回给主调函数
2.通过参数带回
函数调用时,实参和形参之间交换信息有:值调用、引用调用
程序语言翻译基础
- 语言处理程序主要分为:汇编程序、编译程序、解释程序
汇编程序基本原理
- 汇编语言源程序有若干条语句组成,程序可以有三类语句:
1)指令语句:汇编后能产生相应的机器代码,能被CPU识别并执行。可分为:传送指令、算术运算指令、逻辑运算指令、位移指令、转移指令和处理机控制指令等
2)伪指令语句:伪指令汇编后不产生机器代码,操作在源程序被汇编时完成
3)宏指令语句:将多次重复使用的程序段定义宏,如需使用,在相应位置使用宏名 - 汇编程序功能时将汇编语言编程的源程序翻译成机器指令程序
- 汇编程序一般需要两次扫描源程序才能完成翻译过程
1)第一次扫描:定义符号的值并创建一个符号表,记录汇编是遇到的所有符号值
2)第二次扫描:产生目标程序,第二次扫描伪指令有着完全不用的处理
编译程序基本原理
- 编译程序的作用是把某高级语言书写的源程序翻译成阈值等价的目标程序
- 编译6个阶段:
1)词法分析:对源程序进行逐字扫描,识别出单词符号,如关键字、标识符、常数等
2)语法分析:根据语法规则将单词符号序列分解成各类语法单位,如表达式、语句和程序等
3)语义分析:检查源程序是否存在语义错误,并收集类型工后边代码使用,其工作主要是进行类型分析和检查
4)中间代码生成
5)代码优化:是编译器的重要组成部分,优化的基本原则是程序的等价变换规则
6)目标代码生成:将中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码
解释程序基本原理
- 解析程序直接对远程需进行逐字符的检查,进行词法、语法分析后就执行程序语句的规定动作
编译与解释的比较
- 编译程序与解释程序差异:解释程序不单独生成目标程序,编译程序需要将源翻译成独立目标程序
1)编译:机器运行的是与源程序等价的目标程序,源程序和编译程序都不在参与目标程序的执行。
2)解释:解释程序和源程序要参与到程序运行,运行程序的控制权在解释程序 - 编译比解释方式可能取得更高的效率。
- 解释方式比编译方式更灵活
- 解释方式可移植性好。
-
后缀表达式先算中间结点的左结点,再右结点,再中间结点,然后再父级结点
image.png -
正规式与正规集示例
image.png