软件设计师备考笔记
上午题 | 下午题 |
---|---|
计算机网络概述 | 数据流图设计(下午试题一) |
程序设计语言基础知识 | 数据库设计(下午试题二) |
标准化和知识产权 | UML分析与设计(下午试题三) |
数据库 | 面向对象程序设计与实现(下午试题六) |
操作系统 | 算法设计与C语言实现(下午试题四) |
结构化开发与方法 | |
软件工程 | |
网络与信息安全 | |
数据结构 | |
算法分析设计 |
2.1 程序设计语言概述
2.1.1 程序设计语言的基本概念
2.1.2 程序设计语言的基本成分
2.2 语言处理程序基础
语言处理程序式一类系统软件的总称,其主要作用是将高级语言或汇编语言编写的程序翻译成某种机器语言程序,使程序能在计算机上运行。
2.2.1 汇编程序基本原理
-
汇编语言
汇编语言是为特定的计算机设计的面向机器的符号化的程序设计语言。
-
汇编程序
汇编程序的功能是将汇编语言编写的源程序翻译成机器指令程序。
2.2.2 编译程序基本原理
-
编译程序
-
文法
-
Vt:非空有限集合的符号,它的每个元素称为终结符号
-
Vn:非空有限集合的符号,它的每个元素称为非终结符号
-
S:文法G的开始符号
-
P:非空有限集合,它的元素称为产生式
正则闭包:A+ = A1 U A2 U A3 U … U An U … (也就是所有幂的组合)
闭包:A* = A0 U A+(在正则闭包的基础上,加上A0 = { ε \varepsilon ε})
例如:ab* = {ab,abab,ababab,…, ε \varepsilon ε}
类型 | 别称 | 说明 | 对应自动机 |
---|---|---|---|
0型 | 短语文法 | G的每一条产生式 α ⟶ β \alpha\longrightarrow\beta α⟶β满足 α \alpha α属于V的正则闭包且至少含有一个非终结符,而 β \beta β属于V的闭包 | 图灵机 |
1型 | 上下文有关文法 | G的任何产生式 α ⟶ β \alpha\longrightarrow\beta α⟶β满足| α \alpha α|<=| β \beta β|,仅仅S ⟶ ε \longrightarrow\varepsilon ⟶ε例外,但S不得出现在任何产生式右部 | 线性界限自动机 |
2型 | 上下文无关文法 | G的任何产生式 A ⟶ β A\longrightarrow\beta A⟶β,A为非终结符, β \beta β为V的闭包 | 非确定的下推自动机 |
3型 | 正规文法 | G的任何产生式 A ⟶ α A\longrightarrow\alpha A⟶αB或 A ⟶ α A\longrightarrow\alpha A⟶α, α \alpha α属于非终结符的闭包,A,B都属于非终结符 | 有限自动机 |
-
有限自动机
计算机控制系统的控制程序具有有限状态(FA)的特征,可以用有限状态机理论来描述。
M={S, Σ \Sigma Σ, δ \delta δ,s0,Z}
S:是一个有限集,每个元素为一个状态
Σ \Sigma Σ:是一个有穷字母表,每个元素为一个输入字符
δ \delta δ:是转换函数:是一个单值对照
s0:属于S,是其唯一的初态
Z:是一个终态集(可空) -
正规表达式
对于字母表 Σ \Sigma Σ,其上的正规式及其表示的正规集可以递归定义如下。
1. ε \varepsilon ε是一个正规式,它表示的集合L( ε \varepsilon ε)={ ε \varepsilon ε}
2.若a是 Σ \Sigma Σ上的字符,则a,是一个正规式,它所表示的正规集为{a}
3.若正规式a和s分别表示正规集L(a)和L(s),则:
a|s是正规式,表示集合L(a) ∪ \cup ∪L(s)
a ∙ \bullet ∙s是正规式,表示集合L(a)L(s)
a*是正规式,表示集合(L(a))*
(a)是正规式,表示集合L(a)
在正规式的书写中,连接运算符" ∙ \bullet ∙"可以省略。运算符的优先级从高到低为"*“,” ∙ \bullet ∙",“|”。 -
正规式与有限自动机之间的转换
2.2.3 解释程序基本原理
解释程序是另一种语言处理程序,在词法,语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。因此,解释程序不产生源程序的目标程序,这是它和编译程序的主要区别。