总结软考(软件设计师中级)——计算机语言基础的知识

程序语言概述

程序设计语言的基础概念

低级语言和高级语言(了解)

1、低级语言:通常称机器语言和汇编语言,机器语言是指用0、1字符组成的机器指令序列,是最基本的计算机语言;汇编语言是指用符号表示指令的语言
2、高级语言:高级语言是从人类的逻辑思维角度出发、面向各类应用程序语言,其抽象程度大大提高,需要编译成特定机器上的目标代码才能执行的。(我们所学的都是高级语言)

编译程序和解释程序

1、汇编程序: 汇编程序是把汇编指令转换为可执行的机器语言
2、编译程序:编译程序把高级编程语言(如Java、C#)编写的程序转换为可执行的机器语言。其具体过程是先把高级语言编写的程序转换为汇编指令,然后再转换为可执行的机器语言
2、解释程序:另一种语言处理程序,在词法,语法,语义分析方面和编译程序的原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。因此,不产生目标程序

这里一般记住 编译程序会生成目标代码,解释程序不会生成目标代码

程序设计语言的分类(了解)

1、命令式的程序设计语言:命令式程序设计语言是基于动作的语言,计算被看作是动作的序列(C语言,Pascal和Fortran
2、面向对象的程序设计语言:就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。Java、C++和Smalltalk
3、函数式程序设计语言:函数式程序设计语言是一类以λ-演算为基础语言,(Python,js,LISP,其中大量使用递归
4、逻辑型程序设计语言:逻辑型程序设计语言是一类以形式逻辑为基础的语言(Prolog

程序设计语言的基本成分

数据类型

1、常量与变量
2、全局量与局部量
3、数据类型:int、char、float、double、bool、void、enum、数组、指针

运算成分

加减乘除或与括号

控制成分

1、顺序结构
2、选择结构:if-else、switch
3、循环结构: while、do-while、for

函数

1、传值调用(Call by Value):实参---->形参(实参传数给形参,形参获得实参的数值),改变形参不改变原先的实参,因为两者在获得值之后没有任何关系。
2、引用调用(Call by Reference):实参---->形参(实参传地址给形参,形参获得实参的地址),改变形参会反映在存储单元中,实参会被改变。
这里一般会出一道函数的题目,例如:
在这里插入图片描述

语言处理程序基础

汇编语言基本原理

汇编语言

1、汇编语言:是为特定的计算机或计算机系统设计的面向机器的符号化的程序设计语言。用汇编语言编写的程序称为汇编语言源程序。汇编语言源程序由若干个语句组成。

编译程序基本原理(必考)

需要理解这一副图,并且什么错误是在哪个阶段发出的。
在这里插入图片描述
1、词法分析阶段:这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描, 从中识别出一个个"单词"符号, "单词"符号是程序设计语言的基本语法单位, 如 关键字、标识符、常数、运算符和分隔符(标点符号, 括号)等.

2、语法分析阶段:语法分析的任务是在词法分析的基础上行, 根据语言的语法规则将单词符号序列分解成各类的语法单位, 如 表达式、语句、程序等. 通过语法分析确定整个输入串是否构成一个语法上正确的程序. 是如果源程序中没有语法错误, 语法分析后就正确的构造出语法树.否则就指出语法错误, 并给出相应的诊断信息.

3、语义分析类型分析和检查
这里主要是审查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用
只有语法和语义都正确的源程序才能被翻译成正确的目标代码

4、中间代码生成:中间代码生成阶段的工作是根据语义分析的输出生成中间代码. 它是一种简单且含义明确的记号系统, 他们的共同特征是与 机器无关. 中间代码的设计原则: 一是容易生成, 二是容易被翻译成目标代码.

5、代码优化阶段:代码优化阶段的任务是对前一阶段产生的中间代码进行变换或进行改造目的是使生成的目标代码更加高效,即省时间和空间。
优化过程可以在中间代码生成阶段进行,也可在目标代码生成阶段生成

6、目标代码生成阶段:这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,
这个阶段的工作与具体的机器密切相关.
目标代码生成是编译器工作的最后一个阶段

7、符号表管理:符号表的作用是 记录源程序中各个符号的必要信息, 以辅助语义的正确性检查和代码生成, 在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除操作

8、出错处理:包括动态错误与静态错误(基本会考到)
动态错误:又称语义错误,指程序中包含的逻辑错误,例如:变量取零作除数、数组下标越界等错误

静态错误:是指编译阶段发现的程序错误,可以分为语法错误和静态语义错误;

例如:单词拼写错误、标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误称为语法错误; 而语义分析时发现的运算符与运算对象类型不合法等错误属于 静态语义错误.

解释程序基本原理

解释程序是另一种语言处理程序, 在词法、语法和语义分析方面与编译程序的工作原理基本相同, 但是在运行用户程序时, 它直接执行源程序或源程序的内部形式. 因此解释程序不产生源程序的目标程序, 这是它和编译程序的主要区别.

在这里插入图片描述
解释程序的基本结构分为两部分:
第一部分是分析部分, 包括与编译过程相同的词法分析、语法分析和语义分析程序, 经语义分析后把源程序翻译成中间代码, 中间代码常采用 逆波兰 表示形式.
第二部分是解释部分, 用来对第一部分产生的中间代码进行解释执行.

文法和有限自动机

这里我自己还没有吃透,但是我认为只要会做这类的题目就可以了,正规式与有限自动机的装换还有几个概念
例如:
类似这种题目把握初始与终态,就差不多了
在这里插入图片描述

有限机

1、确定的有限自动机(DFA):开始状态是唯一,一个输入对应一个状态转换
2、不确定的有限自动机(NFA):开始状态是一个状态集合; 一个输入对应多个状态转换(状态集);有向弧的标记上可以为空

正规式

记住运算符就差不多了:“|”,“.”,“*”分别表示的是“或”,“连接”,“闭包”

要是有什么错误的地方还请多多指点!!!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值