软考中级 软件设计师个人总结 (程序语言部分)

(前部分是文字部分,由于未知原因插图无法上传,故在文末添加PDF版)

程序语言

程序语言

1.完全连通图的边数:n*(n-1)/2

2.函数传递。

(1)传递地址(引用调用):形参和实参可以实现数据的双向传递

(2)传递数值:将实参的值传递给形参

3.程序中的数据具有类型的作用:

(1)便于为数据合理的分配存储单元

(2)便于对参与表达式计算的数据对象进行检查

(3)便于规定数据对象的取值范围及能够进行的计算

4.程序设计语言

(1)Python可以用来编写独立程序和快速脚本。

(2)C/C++是编译型程序设计语言,常用于进行系统级软件的开发

(3)java、Python和JavaScript都是解释型程序设计语言。Python、JavaScript、PHP是脚本语言

(4)脚本语言主要采用解释方式实现。脚本语言都是动态语言,动态语言都是解释型语言

(5)Lisp是一种通用高级计算机程序语言,作为人工智能领域的应用,是一种函数式编程语言

5.编译程序和解释程序

(1)解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行

(2)编译程序也称为编译器,它将源程序翻译成目标语言程序,然后执行目标程序,目标程序完全独立于源程序

(3)在解释方式下,不生成独立的目标程序;在编译方式下,要生成目标程序

(4)解释程序有着运行程序的控制权,而编译程序没有,解释器程序执行的速度较慢

6.编译器对高级语言源程序的处理过程可以分为:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码的生成。

(1)中间代码生成和代码优化不是必须的

(2)语法分析的输入是记号流,该阶段判断程序语句的形式是否正确,如单词拼写错误、标点符号错、括号不匹配等,可以发现所有的语法错误。

语法分析方法分为两类:自上而下(自顶而下)和自下而上(自底而上),递归下降分析法和预测分析法属于自上而下,移进-归约分析法属于自下而上。

(3)词法分析的任务是对源程序从前到后逐个字符的扫描,从中识别出一个一个的符号(源程序可以看成字符串),有限自动机(NFA或DFA)是合适的工具。

(4)中间代码是一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式,比如树或图三地址码四元式三元式后缀式(逆波兰式),但不包括栈和队列。使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性

(5)语义分析不能找出所有的语义错误

(6)目标代码是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,与具体的机器密切相关。在该阶段进行分配寄存器的工作。

(7)编译成功的程序肯定不会包含语法错误。

7.**程设计语言的基本成分包括数据、运算、控制和传输等。

  **程序设计语言的控制成分包括顺序、选择和循环三种结构

8.编译与反编译。

(1)编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程

(2)反编译通常不能把可执行文件还原成高级语言源程序,只能转化成功能上等价的汇编程序

9.正规表达式。

例:语言L= {ambn|m≥0,n≥1}的正规表达式是?

A.aa*b*        B.a*bb*         C.aa*bb*        D.a*b*

C选项表示的是若干个a后面跟若干个b,a与b都至少出现一次

A选项表示的是a至少出现一次,b可以不出现

D选项表示的是a和b都可以不出现

故本题选择B,因为a可以不出现,而b至少出现一次

10.文法表示语言。

例:已知文法G:S->A0|B1, A->S1|1, B->S0|0,其中S是开始符号。从S出发可以推导出?

由题目推导出1010的过程为S->A0->S10->A010->1010;推导出0110的过程为S->A0->S10->B110->0110

对于0000、1111、1100等则推导不出,所以从S出发可以推导某些0和1个数相等的字符串

11.编译过程中为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址

12.出错处理和符号表管理

(1)出错处理和符号表管理是编译的六个过程之后的两个过程。

(2)符号表的作用是不断收集、记录和使用源程序中一些相关符号的类型和特性等信息。它的建立可能会在词法分析阶段、语法分析和语义分析阶段,使用有时候会延续到目标代码的运行阶段。即建立可能在前三个阶段,整个编译过程都可能使用。

13.程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区。

(1)栈区和堆区也称为动态数据区

(2)全局变量的存储空间在静态数据区

14.后缀式:也称为逆波兰式,是一种把运算符号写在运算对象之后的式子,例如a+b写成ab+,常用栈处理。

若需要判断语法树,对选项中语法树进行后序遍历,序列一样即正确。

15.运行时结合是动态绑定,编译时结合是静态绑定。

16.有限自动机的确定和不确定性。(正规式表示有限自动机未懂)

17.编译过程中,对于声明语句,主要是将所需要的信息正确地填入合理组织的符号表中;对于可执行语句,则是翻译成中间代码或目标语句

18.

图M1中,当在状态A输入0时,它可以转移到它自己,也可以转移到状态B,所以M1是非确定的。

图M2中,不存在这种情况,所以M2是确定的有限自动机

17.正规集可用正规式描述,用有限自动机识别。

18.若一个程序语言可以提供链表的定义和运算,则其运行时的数据空间必须采用堆存储分配策略。链表中的结点空间需要程序员根据需要申请和释放,因此,数据空间应采用堆存储分配策略。

19.大多数程序设计语言的语法规则用上下文无关文法描述即可。

20.DFA和NFA区别:DFA中的每个状态都有且只有一条关于这个符号的出边(未懂)

21.一个文法的语言是该文法能产生的句子的集合。一个文法产生的句子是从文法开始符号出发推导出的所有终结符号串

例:设某语言的语法规则用上下文无关文法G = (N, T, P, S)表示,其中N是非终结符号的集合,T是终结符号的集合,P是产生式集合,S是开始符号,令V = NUT,那么符合该语句的句子是?

从S出发推导的、仅包含T中符号的符号串

22.汇编语言。使用汇编语言编写的程序,机器不能直接识别,要由汇编程序将汇编语言翻译成机器语言。汇编程序输入是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。

23.对于int a = 0;c = b / a;语句,编译时不会报错,运行时产生异常。

24.程序设计语言的语义分为静态语义和动态语义,其中静态语义分析方法是语法制导翻译。

25.HTML知识。

(1)alink用于设置正在被击中的链接的颜色

(2)vlink用于设置已使用的链接的颜色

(3)background用于设置背景图片的URL

(4)bgcolor用于设置文档整体背景颜色

(5)<HR>表示分割线

(6)<TITLE>表示文档的标题

(7)<I>表示文字斜体

(8)<tr>用于定义表格中的一行

(9)<col>用于定义表格中一个或多个列的属性值

(10)<td>用于定义表格中的一个单元格

(11)<mailto>用于定义一个指向电子邮件地址的超级链接,通过该链接可以在internet中发送电子邮件

(12)align用于设定图像的对齐方式

完整版:

 

另附上博主还存在困惑的几道题目

 

 希望有高手可以在评论区给出答案!感激不尽!

更新记录:

2022/7/22

2022/7/24

2022/7/25(完结)

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值