软考中级【数据库系统工程师】第2章:程序语言基础知识,自学软考笔记,程序语言概述程序语言翻译基础低级语言和高级语言编译和解释的区别中缀、前缀与后缀表达式程序语言的数据成分1)常量和变量2)全局变量和局

前言:本章篇幅比较短,所占分值也很小,只需要把2.1.2程序语言的基本成分这里读一遍即可,之前考过这部分的原话。下面是我记录的笔记。如有问题讨论,请联系我QQ2394799692

 

目录

2.1程序语言概述

考点1:低级语言和高级语言

考点2:汇编、解释、编译

考点3:编绎程序和解释程序

考点4:编译和解释的区别

考点5:75页的总结:编译和解释的比较

考点6:程序语言的数据成分

1)常量和变量

2)全局变量和局部变量

3)数据类型

考点7:程序语言的控制成分

2.2程序语言翻译基础

考点1:编译程序基本原理

考点2:中缀、前缀与后缀表达式

考点3:如何转换?

本章习题


2.1程序语言概述

考点1:低级语言和高级语言

• 低级语言:机器语言和汇编语言。是一种面向机器的语言,其格式取决于计算机的机器指令。

特点:难以理解,程序可读性差,程序设计效率低。

• 高级语言:面向各类应用的程序语言。如Java、C、C++、Python、PHP、JavaScript等等。

特点:与人们使用的语言较为接近,便于理解,提高了程序设计的效率。

总结:低级语言就是与机器指令差不多的语言,容易被机器理解。高级语言就是与人类使用的语言比较接近但最终需要转换为机器能理解的语言。

考点2:汇编、解释、编译

高级程序语言必须进行翻译才能为计算机硬件所理解,常用的翻译方式有汇编、解释和编译。 • 用汇编语言编写的:需要汇编程序翻译成目标程序,然后执行目标程序。 • 用高级语言编写的:需要解释程序或编译程序进行翻译,然后再运行。

考点3:编绎程序和解释程序

(1)解释程序(解释器):要么直接解释执行源程序,要么将源程序翻译成某种中间代码后再加以执行。它按源程序中语句的执行顺序,逐条翻译并立即执行相关功能。

(2)编译程序(编译器):将源程序翻译成目标程序(目标代码),然后再在计算机上运行目标程序。一般分为两个阶段: 编译阶段:把源程序翻译成目标程序。 运行阶段:执行目标程序

考点4:编译和解释的区别

• 编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程。

• 解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。

简单来说,在解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序。

总结:编译是会生成可执行文件.exe,一次编译,多次执行。解释是不会生成.exe文件,边解释边执行。

认真看教材P75页,会考这部分内容。

考点5:75页的总结:编译和解释的比较

• 编译比解释方式可能取得更高的效率。

• 解释方式比编译方式更灵活

• 解释方式可移植性好。

考点6:程序语言的数据成分

1)常量和变量

常量是指在程序运行过程中其值不会发生变化的量。比如#difine M 50 M就是一个常量。

变量是指在程序运行过程中其值会发生变化的量,比如int a=1;a就是变量。

2)全局变量和局部变量

参考我今年发的这篇博客,内容非常详细【2022年研究生入学考试中国海洋大学930大题答案】简答题1:什么是全局变量?什么是局部变量?两者的区别是什么?试通过实际案例说明两者各自的应用情况。(15分) 科目:程序设计基础_立志冲海大-CSDN博客

3)数据类型

这里枚举类型在很多书上到底是归类为构造类型还是基本类型有很大争议,本次考试我们就按官方教材给出的这个表,一定要牢记下面这个图的内容,会考到!

考点7:程序语言的控制成分

1)顺序结构

• 计算过程从所描述的第一个操作开始,按顺序依次执行后续的操作,直到序列的最后一个操作。

2)选择结构

• 选择结构提供了在两种或多种分支中选择其中一个的逻辑。

3)循环结构

• 循环结构描述了重复计算的过程,通常由三部分组成:初始化、循环体和循环条件。

2.2程序语言翻译基础

这一节的2.2.1汇编程序基本原理不用看,不重要。我主要记录的是2.2.2编译程序基本原理的第一部分编译过程概述,也就是从54-58页,其他的不用看。后面还有一个考点是中缀、前缀与后缀表达式之间的转换。

考点1:编译程序基本原理

下面是根据书上的话圈的重点,大家看书也行。主要是要看一遍留个印象。

考点2:中缀、前缀与后缀表达式

• 中缀表达式:即我们通常所使用的表达式。如(a+b)*c-d

• 前缀表达式(波兰式):将运算符写在前面,操作数写在后面,且不使用括号。-*+abcd

• 后缀表达式(逆波兰式):将运算符写在后面,操作数写在前面,且不使用括号。ab+c*d-

考点3:如何转换?

例:(a+b)*c-d

(1)中缀表达式转前缀表达式: ① 按计算顺序全部加上括号: (((a+b)*c)-d) ② 把每一对括号内的运算符移到括号前面: -(*(+(ab)c)d) ③ 把所有括号去掉:-*+abcd

(2)中缀表达式转后缀表达式: ① 按计算顺序全部加上括号: (((a+b)*c)-d) ② 把每一对括号内的运算符移到括号后面: (((ab)+c)*d)- ③ 把所有括号去掉:ab+c*d-

本章习题

1、20年第22~24题 程序设计语言的基本成分包括数据、运算、控制和( )。数据是程序操作的对象,按照数据组织形式可 以分为多种类型,其中枚举属于( )类型;数组属于( )类型。 (22)A. 存储 B.分配 C.传输 D.函数 (23)A. 基本 B.用户定义 C.构造 D.特殊 (24)A. 基本 B.用户定义 C.构造 D.特殊

答案:CBC,解析:22是P46页书上原话,23,24是P47页书上原话。

2、19年第22题 以下关于编译和解释的叙述中,正确的为( )。 ① 编译是将高级语言源代码转换成目标代码的过程 ② 解释是将高级语言源代码转换为目标代码的过程 ③ 在编译方式下,用户程序运行的速度更快 ④ 在解释方式下,用户程序运行的速度更快 A、①③ B、①④ C、②③ D、②④

答案:A,解析:编译比解释效率高,一次编译多次执行,因此程序运行的速度更快。

3、19年第23题 函数调用和返回控制是用( )实现的。 A、哈希表 B、符号表 C、栈 D、优先队列

答案:C,解析:记住这个定义即可,另外后缀式也是使用栈进行求值。

4、19年第24题 通用的高级程序设计语言一般都会提供描述数据、运算、控制和数据传输的语言成分,其中,控制包括顺序、 ( )和循环结构。 A、选择 B、递归 C、递推 D、函数

答案:A,解析:三大基本结构:顺序,选择,循环。

5、18年第5、6、7题 算术表达式采用后缀式表示时不需要使用括号,使用( )就可以方便地进行求值。a-b*(c+d)(其 中,—、+、*表示二元算术运算减、加、乘)的后缀式为( ),与该表达式等价的语法树为( )。 (5)A.队列 B.数组 C.栈 D.广义表 (6)A.a b c d -*+ B. a b c d*+ - C.ab-c*d+ D..a b c d+*-

答案:CDD,解析:

6、17年第20题 在高级语言源程序中,常需要用户定义的标识符为程序中的对象命名,常见的命名对象有( )。 ①关键字(或保留字) ②变量 ③函数 ④ 数据类型 ⑤注释 A.①②③ B.②③④ C.①③⑤ D.②④⑤

答案:B,解析:首先排除关键字和注释然后只能选B了

7、17年第22题 在以阶段划分的编译中,判断程序语句的形式是否正确属于( )阶段的工作。 A.词法分析 B.语法分析 C.语义分析 D.代码生成

答案:B,语法分析的定义。

8、16年第20题 以下关于高级程序设计语言实现的编译和解释方式的叙述中,正确的是( )。 A.编译程序不参与用户程序的运行控制,而解释程序则参与 B.编译程序可以用高级语言编写,而解释程序只能用汇编语言编写 C.编译方式处理源程序时不进行优化,而解释方式则进行优化 D.编译方式不生成源程序的目标程序,而解释方式则生成

答案:A,BCD都错了

9、16年第21题 以下关于脚本语言的叙述中,正确的是( )。 A.脚本语言是通用的程序设计语言 B.脚本语言更适合应用在系统级程序开发中 C.脚本语言主要采用解释方式实现 D.脚本语言中不能定义函数和调用函数

答案:C,脚本语言例如JavaScript,主要使用解释方式实现。

10、16年第22题 将高级语言源程序先转化为一种中间代码是现代编译器的常见处理方式。常用的中间代码有后缀式、 ( )、树等。 A.前缀码 B.三地址码 C.符号表 D.补码和移码

答案:B,解析见书上71页,以及百度百科:四元式_百度百科

四元式是一种更接近目标代码的中间代码形式。由于这种形式的中间代码便于优化处理,因此,在许多编译程序中得到了广泛的应用。

四元式实际上是一种“三地址语句”的等价表示。它的一般形式为:(op,arg1,arg2,result)

本章完结,谢谢你的耐心观看。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立志冲海大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值