一、程序设计语言概述
1.低级语言:机器语言
2.高级语言:功能更强
各程序语言特点
3.解释和编译:都是将高级语言翻译成计算机硬件认可的计算机器语言加以执行
编译程序:生成可独立的可执行文件,直接运行,运行时无法控制源程序
解释程序:不生成可执行文件,可逐条解释执行,用于调试,可控制源程序
二、程序设计语言的基本成分
1.数据成分:一种程序设计语言的数据和数据类型
2.数据类型:常量、变量、全局变量、局部变量
3.数据类型:整型、字符型、双精度、单精度浮点型、布尔型
4.运算成分:指明允许使用的运算符号及运算规则,算术运算、逻辑运算、关系运算、位运算
5.控制结构:顺序结构、选择结构、循环结构
6.函数:C程序由一个或多个函数组成,每个函数都有一个名字,其中有且仅有一个名字为main的函数作为程序运行时的起点
函数定义、函数声明、函数调用
三、传值和传址
1.传值调用:将实参的值传递给形参,形参的改变不会导致调用点所传的实参的值改变,实参可以是合法的变量、常量、表达式
2.传址调用:将实参的地址传递给形参,相当于实参存储单位的地址引用,因此其值给变的同时改变了实参的值,实参不嗯给你为常量,只能为合法的变量和表达式
四、编译程序基本原理
1.编译程序工作分为6个阶段
2.词法分析:编译过程的第一个阶段,对构成源程序的字符进行扫描然后根据构词规则识别单词
3.语法分析:编译过程的一个逻辑阶段,判断源程序在结构上是否正确
4.语义分析:编译过程的一个逻辑阶段,对结构上正确的源程序进行上下文有关性质额审查,进行类型审查
5.中间代码和目标代码生成:中间代码是根据语义分析产生,需要经过优化链接,最终生成可执行的目标代码
6.常用的中间代码:后缀式(逆波兰式)、三元式(三地址码)、四元式和树
五、表达式
1.树的三种遍历,正常的表达式是中序遍历,即中缀表达式,根据其构造出树,再按题目要求求出前缀或后缀式
2.后缀表达式:从左到右开始,先把表达式加上括号,再依次把运算符加到本层次的括号后面
六、有限自动机
1.确定的有限自动机:输入一个字符,得出唯一的后继
2.不确定的有限自动机:输入一个字符,得出多个后继