软考-软件设计师 - 第2章 程序设计语言基础知识【附补充常考知识点】

2022-10-22,,,,

本章导图:

2.1 程序设计语言概述

2.1.1 程序设计语言的基本概念

1 低级语言与高级语言

低级语言:机器语言、汇编语言
高级语言:面向各类应用的程序设计语言,如Java,C,C++,PHP,Python,Delphi,PASCAL等

2 编译程序和解释程序

“语言处理程序”的翻译方式有:汇编、解释和编译。

3 程序设计语言的定义

语法、语义、语用

❤❤补充 源程序错误类型
词法错误:非法字符,拼写错关键字、标识符
语法错误:语法结构,如少分号,begin/end不配对等
语义错误:
静态语义:类型不一致,参数不匹配(编译错误)
动态语义:如死循环,除数为0(逻辑错误)

4、程序设计语言的分类

  • Fortran语言(第一个高级程序设计语言,科学计算,执行效率高)
  • Pascal语言(结构化程序设计语言,表达能力强,Delphi)
  • C语言(通用、结构化程序设计语言,指针操作能力强,高效)
  • Lisp语言(函数式程序语言,符号处理,人工智能)
  • C++语言(C语言基础上增加了类机制,面向对象,高效,与C兼容)
  • Java语言(面向对象,中间代码,跨平台,通用的程序设计语言)
  • Python(面向对象,解释型程序设计语言,胶水语言,通用的脚本语言)
  • PHP(服务器端脚本语言,制作动态网页)
  • Ruby(简单快捷、面向对象、脚本语言)
  • Delphi(快速应用程序开发工具,可视化编程环境)
  • COBOL(数据处理领域最为广泛的程序设计语言,高级编程语言)
  • XML(可扩展标记语言,标准通用标记语言的子集)
  • PROLOG(逻辑式语言,间接性,表达能力强,建造专家系统、数据库、自然语言理解、智能知识库等)
    注:C/C++常被用于操作系统开发;脚本语言是解释性语言。

2.1.2 程序设计语言的基本成分

这部分主要靠平时积累,知识点很少。

1 程序设计语言的数据成分

(1)常量和变量
(2)全局量和局部量
(3)数据类型

2 程序设计语言的运算成分

算术运算、关系运算和逻辑运算等

3 程序设计语言的控制成分

顺序
选择
循环

4 程序设计语言的传输部分

传输方式:如赋值、数据输入和输出等。

5 函数

定义
声明
调用❤❤❤
(1)值调用
形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变

(2)引用调用
形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值


2.2 语言处理程序基础

2.2.1 汇编程序基本原理

1 汇编语言

组成:指令语句、伪指令语句、宏指令语句。

2 汇编程序

2.2.2 编译程序基本原理

1 编译过程概述

  • 符号表
    符号表的作用是记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作。符号表的存在可以贯穿编译所有阶段。
  • 错误管理
    静态错误:编译时所发现的程序错误,分为语法错误和静态语义错误。
    语法错误包含:单词拼写错误、标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误。
    静态语义分析:运算符与运算对象类型不合法等错误。
    动态错误:发生程序运行时,也叫动态语义错误。包括死循环、变量取零时做除数、引用数组元素下标越界等错误。

2 文法和语言的形式描述

一般的程序设计语言属于上下文无关文法。
(1)字母表、字符串、字符串集合以及运算
(2)文法和语言的形式描述

3 词法分析

词法规则使用正规文法,表示的语言集合是正规集,正规集的规律可以用正规式表示。

4 正规式与有限自动机的转换

正规式:❤❤

有限自动机:❤❤

这个部分文字描述太麻烦了……我们多做几次题就明白了

5 词法分析器的构造

6 语法分析

自下而上:递归下降分析法、预测分析法
自底而上:移进-规约分析法

7 语法制导翻译和中间代码生成❤❤

中间代码是一种简单且明确的记号系统,与具体的机器无关。常见的有逆波兰记号(后缀式)、四元式、三元式。

8 中间代码优化和目标代码生成

树与后缀式形式适用于解释器,编译器多采用四元式格式。

2.2.3 解释程序基本原理

1 解释程序的基本构成

2 高级语言编译和解释方式的比较❤❤❤❤

  • 编译方式下【生成中间代码】机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,因此执行时效率较高;
  • 解释方式下解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,边解释边执行,执行效率较低。
    即:解释方式,翻译程序不生成独立的目标程序,而编译方式则生成独立保持的目标程序。

《软考-软件设计师 - 第2章 程序设计语言基础知识【附补充常考知识点】.doc》

下载本文的Word格式文档,以方便收藏与打印。