1、低级语言:0、1组成的机器指令序列或汇编语言
2、高级语言:java、c、c++、Python、Delphi、PASCAL
3、编译程序:将源程序翻译成目标语言程序,然后再计算机上运行目标程序。
4、解释程序:直接解释或翻译成中间代码。不生成独立的目标程序。
1、词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词,删掉无用的信息,报告分析时的错误。
2、语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的逻辑结构。
3、语义分析阶段:主要检查源程序是否存在静态语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零等。
4、中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是使编译程序的结构在逻辑上更为简单明确。使用中间代码可提高编译程序的可移植性,常见的有逆波兰记号、四元式、三元式和树。
5、中间代码优化和目标代码生成
6、符号表管理——记录符号的信息
7、出错处理——静态错误(语法错误、静态语义错误)、动态错误
文法G定义为一个四元组(VN,VT,P,S),其中,VN为非终结符集合,VT终结符集合;P是产生式结合;S称为识别符或开始符号,也是一个非终结符,至少要在一条产生式的左边出现。
0型文法:短语文法、图灵机、递归枚举
1型文法:上下文有关文法
2型文法:上下文无关文法(广泛使用)
3型文法:正规式
计算机控制系统的控制程序具有有限状态自动机(FA)的特征,可以用有限状态机理论来描述。