(三)程序设计语言基础知识
程序设计语言
1、低级语言(机器指令、汇编语言)、高级语言(C,C++,Java,Pthon等)
2、源程序、编译程序、解释程序(是否产生独立的目标程序)
3、程序设计语言定义:语法(词法规则,单词符号书写规则、语法规则,语法成分规则)、语义(静态语义,编译时确定,动态语义,运行时确定)、语用。
4、程序设计范型:命令式程序设计语言(基于动作,过程式语言)、面向对象程序设计语言(封装、继承、多态)、函数式程序设计语言(程序与数据等价、多递归)、逻辑式程序设计语言(以形式逻辑为基础)
基本成分
1、程序设计语言基本成分:数据、运算、控制、传输
数据成分
1、数据:程序操作对象。属性:类型、名称、作用域、存储类别、生存期
2、常量和变量、全局量和局部量、数据类型(基本类型用户定义类型、构造类型、指针类型、特殊类型、抽象数据类型)
运算成分
1、运算成分:允许使用的运算符号及运算规则
控制成分
1、控制结构:顺序结构、选择结构、循环结构。控制语句:符合语句、if和switch语句、循环语句
函数
1、函数定义(函数首部、函数体)、函数声明、函数调用(传值调用,引用调用)
语言处理程序基础
1、语言处理程序:将高级语言或汇编语言编写的源程序翻译成某种机器语言程序
2、基本分类:汇编语言、编译语言、解释语言
汇编语言基础
1、汇编语言:为特定计算机设计的面向机器的符号化程序设计语言。功能:将汇编语言编写的源程序翻译成机器指令程序。工作:将每条可执行汇编语句转换成对应的机器指令,处理源程序中出现的伪指令和宏指令。
2、程序语句分类:指令语句、伪指令语句、宏指令语句
3、汇编程序需扫描2次源程序:第1次定义符号的值并创建符号表ST,第2次产生目标程序。
编译程序基础
1、编译程序功能:将用某高级语言所写源程序翻译成等价的目标程序。
2、编译器工作阶段:词法分析(对源程序从前到后(从左到右)逐个字符扫描,识别出单词符号)、语法分析(将单词符号序列分解成各类语法单位,如表达式、语句程序等)、语义分析(分析程序中各种语法结构的语义信息,类型分析和检查)、中间代码生成(四元式)、代码优化(等价交换)、目标代码生成(将中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码)
3、出错处理:动态错误(程序运行时发生)、静态错误(程序编译时发生,语法错误、静态语义错误)
4、编译阶段:前端(从词法分析到中间代码生成各阶段工作)、后端(从中间代码优化到目标代码优化阶段工作)
词法分析
1、字母表、字符串运算、正规表达式及正规集
2、确定的有限状态机DFA,不确定的有限状态机NFA,状态转移图,状态转换矩阵
语法分析
1、程序设计语言语法:上下文无关文法描述
解释程序基础
1、解释程序词法分析、语法分析、语义分析与编译程序相同,但在运行用户程序时,它直接执行源程序或源代码的内部程序。
2、主要区别:解释程序不产生源代码的目标程序
3、以解释程序实现高级语言上3种方式:对源程序逐个检查字符,执行程序语句规定动作;先将源程序翻译成某中间代码,在解释中间代码实现用户程序运行;
4、解释程序基本结构:分析部分(词法分析、语法分析、语义分析、中间代码生成逆波兰表达形式)、解释部分(解释执行中间代码)
5、解释程序与编译程序比较:编译可能效率更高、解释程序更灵活、解释程序移植性更高。