软考总结---(二)程序设计语言基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a954553391/article/details/83716630

前言:下面和大家分享一下第二章的知识点,希望对大家有帮助。

(一)程序设计语言概述

1.编译程序和解释程序

基本方式:汇编、解释、编译
【1】
①用某种高级语言或汇编语言编写的程序称为【源程序】,不能直接在计算机上执行。
②如果源程序是用【汇编语言】编写的,则需要一个【汇编程序】将其【翻译】成目标程序后才能执行。
如果源程序是用某种【高级语言】编写的,则需要对应的【解释程序和编译程序对其进行翻译】,然后在机器上运行。
【2】
解释程序(解释器)或者直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行。
编译程序(编译器)则是将源程序翻译成目标语言程序,然后再计算机上运行目标程序。

根本区别:
【编译】方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都【不能】再参与目标程序的执行过程。(效率更高)
【解释】方式下,解释程序和源程序都要【参与】到程序的运行过程。
(解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序。)

2.语法、语义、语用

【1】语法:由程序设计语言的基本符号组成程序的各个语法成分的一组【规则】
【2】语义:按照语法规则构成的各个语法成分的含义,包含静态语义(编译时确定)和动态语义(运行时刻取得含义)
【3】语用:构成语言的各个记号和使用者的关系,设计符号的来源、使用和影响。(语境:编译&运行环境)

3.程序设计语言分类

【1】命令式和结构化程序设计语言
结构特征:自顶向下逐步精华的编程方法;按模块组织的方法;程序只包含顺序、判定及循环构造
典型:【Fortran,PASCAL和C语言】

【2】面向对象的程序设计语言
支持程序设计的技术,如数据隐藏、数据抽象、用户定义类型、继承、多态
典型:【C++、JAVA、Smalltalk】

【3】函数式程序设计语言
典型:【LISP(递归)、Haskell、Scala、Scheme、APL】

【4】逻辑型程序设计语言
典型:建立在谓词基础上的【PROLOG(Programming in Logic)】

4.函数

函数定义:函数的【首部】和函数【体】
函数声明:先声明后引用
函数调用:值调用(实参的值传递给形参);引用调用

(二)语言处理程序基础

1.汇编语言

指令语句(机器指令语句):将其汇编后生成相应的机器代码,能被CPU直接识别并执行的操作。
伪指令语句:汇编后不产生机器代码
宏指令语句:允许用户多次重复使用

2.编译过程:

源程序→词法分析→语法分析→语义分析→中间代码生成→代码优化→目标代码生成
(中间代码生成、代码优化:可省略)(逻辑上前端:词法分析→中间代码生成)

3.文法

定义:描述语言语法结构的规则
分类:0型(短语文法,功能相当于图灵机)、1型(上下文有关文法)
2型(上下文无关文法)、3型(正规式)

4.自顶向下语法分析方法

消除文法的左递归、提取公共左因子、LL(1)文法、递归下降分析法、预测分析法

5.自底向上语法分析方法

移近-归约分析法(一步一规约),采用算符优先分析表,称为算符优先分析器;LR(核心:分析表的构造)成为LR分析器。

6.中间代码

常用的有:后缀式(逆波兰式)、三元式、四元式、树
(树和后缀适用于解释器,四元式编译器)

7.高级语言与解释方式比较

【效率】编译更高
【灵活性】解释程序更灵活
【可移植性】解释器更好

总结:软考的学习也是一个不断重复不断总结的过程,越重复越总结越清晰。在总结中不断地完善和提高。

猜你喜欢

转载自blog.csdn.net/a954553391/article/details/83716630
今日推荐