二. 技术类-程序设计语言基础
程序设计语言的分类
| 命令式和结构化程序设计语言(过程式程序设计语言) | Fortran、PASCAL、C语言等 |
|---|---|
| 面向对象的程序设计语言 | Java、C++、C#等 |
| 函数式程序设计语言 | lisp、scala |
| 逻辑型程序设计语言 | Prolog |
| 脚本语言 | PHP、js、Python** |
高级与低级语言
低 级 语 言
面向机器的语言
由0、1组成的机器指令序列或汇编语言(如:mov ax,bx )。
可读性差,难以修改和维护。
高 级 语 言
面向应用程序的语言
如,java、C、C++、Python、Delphi、PASCAL等。
接近人类语言,提高程序设计效率
解释与编译型区别
| 解释型 | 编译型 |
|---|---|
| (1)不产生目标程序 | (1)生成目标程序 |
| (2)效率低 | (2)效率高 |
| (3)灵活性好 | (3)灵活性差 |
| (4)可移植性好 | (4)可移植性差 |

编译程序


语法分析阶段:
语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位。通过语法分析确
输出形式:记号流
定整个输入串是否构成一个语法上正确的程序。

语义分析阶段:
主要检查源程序是否存在语义错误,并收集类型 信息供后面的代码生成阶段使用。语义分析分为静态分析和动态分 析两个部分。静态语义分析使用语法制导翻译。
中间代码:
不依赖具体计算机,表现形式如下。
1.后缀式(逆波兰式)
2.树型表示
3.三元式:X=(a+b)(c+d)
①(+,a,b)②(+,c,d)③(*,①,②)④(=,③,x)
4.四元式
出错处理:
静态错误
编译时出现
1)语法错误:
单词拼写错误、标点符号错误、表达式中缺少操 作数、括号不匹配等有关语言结构上的错误。
2)静态语义错误:
运算符与运算对象类型不合法。
动态错误
程序运行时出现
变量取0做除数
引用数组下标越界
2-5文法(了解即可)
一个形式文法是一个有序四元组 G =( V , T , S , P) ,其中:
- V: 非终结符。不是语言组成部分,不是最终结果,可理解为占位符。
- T: 终结符。是语言的组成部分,是最终结果。$ V \cap T=Ø$
- S :起始符。是语言的开始符号。
- P :产生式。用终结符替代非终结符的规则。形如 $\alpha \rightarrow \beta$


2-6有限自动机
确定的有限自动 DFA:
该状态机在任何一个状态,基于输入的字符 都能做成一个确定的状态转换
不确定的有限自动机NFA:
该状态机在任何一个状态,基于输入的字符都不能做成一个确定的状态转换。
这里分为两种状况
①对于一个 输入,它有两个状态可以转换;
②存在ε的情况,即没有任何字符 输入的情况下,NFA可以从一个状态迁移到另一个状态。


2-7正规式

2-8表达式
前缀表达式
中缀表达式
后缀表达式(逆波兰式)

Comments NOTHING