[软考中级]软件设计师-计算机基础知识(2)

4dBmk 学习笔记 0 次阅读 发布于 10 小时前 最后更新于 1 天前 868 字 预计阅读时间: 4 分钟


二. 技术类-程序设计语言基础

程序设计语言的分类

命令式和结构化程序设计语言(过程式程序设计语言)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)可移植性差
image-20250922200723980

编译程序

(image-20250922204108547)
image-20240319210427086

语法分析阶段:

语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位。通过语法分析确

输出形式:记号流

定整个输入串是否构成一个语法上正确的程序

image-20240319214213324

语义分析阶段:

主要检查源程序是否存在语义错误,并收集类型 信息供后面的代码生成阶段使用。语义分析分为静态分析和动态分 析两个部分。静态语义分析使用语法制导翻译

中间代码:

不依赖具体计算机,表现形式如下。

1.后缀式(逆波兰式)

2.树型表示

3.三元式:X=(a+b)(c+d)

​ ①(+,a,b)②(+,c,d)③(*,①,②)④(=,③,x)

4.四元式

出错处理:

静态错误

编译时出现

1)语法错误

单词拼写错误、标点符号错误、表达式中缺少操 作数、括号不匹配等有关语言结构上的错误。

2)静态语义错误

运算符与运算对象类型不合法。

动态错误

程序运行时出现

变量取0做除数

引用数组下标越界

2-5文法(了解即可)

一个形式文法是一个有序四元组 G =( V , T , S , P) ,其中:

  1. V: 非终结符。不是语言组成部分,不是最终结果,可理解为占位符。
  2. T: 终结符。是语言的组成部分,是最终结果。$ V \cap T=Ø$
  3. S :起始符。是语言的开始符号。
  4. P :产生式。用终结符替代非终结符的规则。形如 $\alpha \rightarrow \beta$
image-20250922213407906
image-20250922213538476

2-6有限自动机

确定的有限自动 DFA:

该状态机在任何一个状态,基于输入的字符 都能做成一个确定的状态转换

不确定的有限自动机NFA:

该状态机在任何一个状态,基于输入的字符都不能做成一个确定的状态转换。

这里分为两种状况

①对于一个 输入,它有两个状态可以转换;

②存在ε的情况,即没有任何字符 输入的情况下,NFA可以从一个状态迁移到另一个状态。

image-20240320103715564
image-20240320103725102

2-7正规式

image-20240320103755719

2-8表达式

前缀表达式

中缀表达式

后缀表达式(逆波兰式)

image-20250922212546401