Jeffrey Wang
文章84
标签144
分类12
【软考知识总结】程序设计

【软考知识总结】程序设计

前言

程序设计这一章节,主要是讲程序的基本组成、编译原理、知识产权、标准化

基本概念

编程语言的类型

解释和翻译

  • 解释型:不生成可执行文件,由运行时由解释器逐条解释执行,运行时可以控制源程序,执行速度慢,效率底

  • 翻译型:生成可执行文件,直接运行,运行时无法干预源程序,速度快,效率高

编译过程大概分为几个阶段

  • 词法分析

  • 语法分析

  • 语义分析

  • 中间代码生成(可选)

  • 代码优化(可选)

  • 最终代码生成

程序设计语言的组成:

  • 语法(规则)

  • 语义(含义)

  • 语用(关系)

程序基本成分

数据成分:

  • 数据和数据类型

    • 数据分常量、变量、局部量、全局量

    • 数据类型分整数、字符、单/双精度浮点、布尔、字符等

运算成分:

指明的运算符号和规则,算数运算、逻辑运算、关系运算、位运算

控制成分:

控制结构,顺序、循环、选择

传输成分:

指明允许的传输方式,赋值、输入输出等

函数:

函数是程序运行的主要成分,包含定义、声明、调用

传值/传址:

传值是拷贝值,函数内修改该值并不会造成原有值的改变,传址是拷贝一个地址,函数内修改该值会造成原有值的改变

实参:

实际参数,调用时传入的参数,可以是变量、常量、表达式、函数调用

形参:

形式参数,函数参数列表中的参数

编译原理

编译的目标是把高级程序翻译成目标程序(汇编、机器语言)

1654161024666.png

编译过程分为六个阶段

  • 词法分析,顺序扫描,识别符号

  • 语法分析,判断源程序在结构上是否正确

  • 语义分析,进行上下文有关性质的审查,比如类型匹配等

    • 静态语义错误就在这个阶段

    • 动态语义错误在运行时才能发现

  • 中间代码生成,只是根据语义生成的,因为目标代码需要根据机器不同做不同的处理,有一个中间代码可以方便移植有利于跨机器的实现

    • 后缀式

    • 三元式

    • 四元式

  • 代码优化

  • 目标代码生成,简洁高效

    • 如何生成较短目标代码

    • 充分利用寄存器减少存储单元访问

    • 利用指令系统特点,提高代码质量

相关计算:

掌握中缀式到后缀式,就是通过中缀还原树然后后缀式表达出来即可,与二叉树部分的遍历类似,相关例题如下,正确答案是B

1654159127386.png

文法定义

1654159442142.png

代码被解析抽象为文法,而文法在概念上是一个有序四元组 G = (V, T, S, P)

  • V 非终结符

  • T 终结符,最终结果

  • S 启始符

  • P 产生式

大概过程就是 S -> V(在 P 的作用下)->T 这么个过程

闭包只需要记住一个公式

正则闭包:(ab)+ = {ab, abab, ababab, ….}

闭包:(ab)* = {segma} ∪ (ab)+, 正则集合里边加上 {segma} 即可

比如这个例题,需要做的就是把 AB 带入文法,进而得到 S 的可能结果

1654159509463.png

文法类型关键点:

上下文无关->语法

上下文有关->语义

所以这个例题应该选 B,上下文无关描述语法

1654159664144.png

表达式到正规式的转换,一定要注意是可逆的有充要性的转换,能否通过有限自动机识别,就看里边有没有动态的不可确认的属性,有无终态即可。

1654159714678.png

1654159747086.png

语法分析方法,两个重点

  • 自上而下的分析,相当于从左到右的推导

  • 自下而上的分析,相当于从右到左的规约

图内例题,移进-规约法是自下而上的分析方法,所以选 B

1654159834429.png

知识产权

保护期限重点

  • 署名、修改等所属权力,没有限制

  • 商业上的权利,50年(12月31日)

  • 注册商标10年,需要续注

  • 发明专利,20年,不可续注

  • 实用新型+外观设计专利,10年

  • 商业秘密,不确定

1654160125591.png

知识产权人重点

  • 只有作品与单位一点关系没有,属于其他类别才享有著作权,否则权力都属于单位

  • 作品著作权受保护,使用的数学思想,算法思想不受保护

在程序员生涯中,有一点需要注意就是,供职于公司,哪怕业余时间开发的程序,著作权和专利权都是属于公司的,大名鼎鼎的 NGINX 就有这样的纠纷

1654160136430.png

委托开发重点

委托开发合同不做申明,著作权默认属于创作方,有合同的时候,默认归属于单位(委托方)

1654160220294.png

1654160723921.png

标准化

标准分类:

  • 国际标准,ISO/IEC 等

  • 国家标准,GB 中国,ANSI 美国,BS 英国,JIS 日本等

  • 区域标准,PASC 太平洋地区标准

  • 行业标准,GJB 中国军用标准

  • 地方标准,地方一级机构制定的标准

  • 企业标准

  • 项目规范

国际标准组成:标准代号+专业类号+顺序号+年代号

我国标准组成:GB 强制国标,GB/T 推荐国标,GB/Z 指导国标

行业标准组成:一般是首拼,比如汽车 QC

地方标准组成:DB + 省级代码前两位

企业标准组成:Q/ 企业代号

总结

程序设计这一部分,概念比较多,对应考来说,理解题目的考察模式,结合自身经验进行理解即可,最后的产权、标准化,可作为尝试理解记忆。

本文作者:Jeffrey Wang
本文链接:https://blog.wj2015.com/2022/06/02/%E3%80%90%E8%BD%AF%E8%80%83%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93%E3%80%91%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×