软件设计师教程(第5版)第2章 程序设计语言基础知识(更新中)

2.1 程序设计语言概述

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

1 低级语言和高级语言

【机器指令】是最基本的计算机语言。P56

用【符号】表示的指令称为【汇编指令】。P56

【汇编指令】的【集合】被称为【汇编语言】。P56

【机器语言】和【汇编语言】为【低级语言】。P56

2 编译程序和解释程序

语言之间的翻译形式有多种,基本方式为【汇编】、【解释】和【编译】。P56

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

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

3 程序设计语言的定义

程序设计语言的定义都涉及【语法】、【语义】和【语用】等方面。P56

【语法】是指由程序设计语言的基本符号组成程序中的各个语法成分(包括程序)的一组【规则】。P56

由基本字符构成的符号(单词)书写规则称为【词法规则】。P56

由符号构成语法成分的规则称为【语法规则】。P56

程序设计语言的语法可用【形式语言】进行描述。P56

【语义】是程序设计语言中按语法规则构成的各个语法成分的含义。P56

语义可分为【静态语义】和【动态语义】。P56

【静态语义】指编译时可以确定的语法成分的含义。P56

运行时刻才能确定的含义是【动态语义】。P56

【语用】表示了构成语言的各个记号和使用者的关系,涉及符号的来源、使用和影响。P56

【语境】是指理解和实现程序设计语言的环境,包括【编译环境】和【运行环境】。P56

4 程序设计语言的分类

程序设计语言有交流【算法】和【计算机实现】的双重目的。P56

若一种程序设计语言不依赖于机器硬件,则称为【高级语言】。P56

若程序设计语言能够应用于范围广泛的问题求解过程中,则称为【通用】的程序设计语言。P56

1) 程序设计语言发展概述
2) 程序设计语言分类

设计程序的方法将程序语言大致分为【命令式】和【结构化】程序设计语言、【面向对象】的程序设计语言、【函数式】程序设计语言和【逻辑型】程序设计语言等范型。P59

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

程序设计语言的基本成分包括【数据】、【运算】、【控制】和【传输】等。P61

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

c++数据类型:【基本】类型(int,char等)、【特殊】类型(void)、【用户定义】类型(枚举类型)、【构造】类型(数组、结构、联合)、【指针】类型、【抽象数据】类型(类类型)。P62

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

大多数高级程序设计语言的基本运算可以分成【算术】运算、【关系】运算和【逻辑】运算。P62

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

可计算问题的程序都可以用【顺序】、【选择】和【循环】这3种控制结构来描述。P62

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

5 函数

2.2 语言处理程序基础

【语言处理程序】主要分为【汇编】程序、【编译】程序和【解释】程序3种基本类型。P67

2.2.1 汇编程序基本原理

1 汇编语言

汇编语言源程序由若干条语句组成,其中可以有三类语句:【指令】语句、【伪指令】语句和【宏指令】语句。P67

【指令】语句可分为【传送】指令、【算术运算】指令、【逻辑运算】指令、【移位】指令、【转移】指令和【处理机控制】指令等类型。P67

【指令】语句:汇编后能产生相应的机器代码,这些代码能被CPU直接识别并执行相应的操作。P67

【伪指令】语句指示汇编程序在汇编源程序时完成某些工作,例如为变量分配存储单元地址,给某个符号赋一个值等。P67

2 汇编程序

汇编程序一般需要【两】次扫描源程序才能完成翻译过程。P68

2.2.2 编译程序基本原理

1.编译过程概述

在这里插入图片描述
编译的工作阶段:①【词法】分析:识别出一个一个的单词。②【语法】分析:构造出语法树。③【语义】分析:分析各语法结构的含义,检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。④中间代码生成:是根据语义分析的输出生成中间代码。⑤代码优化。⑥目标代码生成:是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。P69

词法分析和语法分析在本质上都是对源程序的【结构】进行分析。P70

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

用户编写的源程序不可避免地会有一些错误,这些错误大致可分为【静态】错误和【动态】错误。P72

【静态】错误是指编译阶段发现的程序错误,可分为【语法】错误和【静态语义】错误。P72

单词拼写错误、标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误称为【语法】错误。P72

语义分析时发现的运算符与运算对象类型不合法等错误属于【静态语义】错误。P73

2.文法和语言的形式描述

1) 字母表、字符串、字符串集合及运算
2)文法和语言的形式描述

3.词法分析

【词法】分析的任务是把构成源程序的字符串转换成单词符号序列。P75

1) 正规表达式和正规集
2)有限自动机
3)NFA到DFA的转换
4)DFA的最小化

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

1) 有限自动机转换为正规式
2) 正规式转换为有限自动机

5.词法分析器的构造

有了【正规式】和【有限自动机】的理论基础后,就可以构造出编译程序的词法分析模块。P81

6.语法分析

【语法】分析的任务是根据语言的语法规则分析单词串是否构成短语和句子,即表达式、语句和程序等基本语言结构,同时检查和处理程序中的语法错误。P81

语法分析方法有多种,根据产生语法树的方向,可分为【自底向上】和【自顶向下】两类。P81

1) 上下文无关文法
2) 自顶向下语法分析方法
3) 自底向上语法分析方法

一个LR分析器由【驱动器】、【分析表】、【分析栈】3个部分组成。P87

【分析表】可分为【动作表】(ACTION)和【状态转换表】(GOTO)两个部分。P87

【分析栈】包括【文法符号栈】和相应的【状态栈】。P87

在LR分析过程中,改变格局的动作有4种:【移进】(Shift)、【归约】(Reduce)、【接受】(Accept)、【报错】(Error)。P88

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

描述程序语义的形式化方法主要有【属性文法】、【公理语义】、【操作语义】和【指称语义】等。P88

1)中间代码
2)常见语法结构的翻译
3)动态存储分配和过程调用的翻译

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

【优化】就是对程序进行等价变换,使得从变换后的程序能生成更有效的目标代码。P95

2.2.3 解释程序基本原理

1.解释程序的基本结构

解释程序通常可以分成两部分:第一部分是【分析】部分,第
二部分是【解释】部分。P97

2.高级语言编译与解释方式的比较

对于高级语言的编译和解释工作方式,可以从以下几个方面进行比较:效率、灵活性、可移植性性。P98

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 系统架构设计师教程第5pdf是一本关于系统架构设计的指导教程,它提供了系统架构设计的基本理论和实践知识。这本教程主要包括以下几个方面的内容。 首先,教程介绍了系统架构设计的基本概念和原则。它解释了系统架构设计的重要性和目标,并介绍了常用的系统架构设计模式和方法。通过学习这些理论知识,读者可以对系统架构设计有一个清晰的认识。 其次,教程提供了具体的案例分析和实践经验。它通过分析一些典型的系统架构设计案例,引导读者了解如何在实际项目进行系统架构设计。教程还介绍了一些常见的架构设计问题和解决方法,帮助读者避免常见的设计错误。 此外,教程还讲解了系统架构设计的工具和技术。它介绍了一些常用的架构设计工具和建模语言,如UML和SysML,以及一些实用的技术,如面向服务架构(SOA)和微服务架构。这些工具和技术可以帮助读者更好地进行系统架构设计和沟通。 最后,教程还提供了一些对未来系统架构设计趋势和发展方向的展望。它介绍了一些新兴的架构设计理念和方法,如云计算和大数据架构。这些内容使读者能够跟上系统架构设计领域的最新发展。 总之,系统架构设计师教程第5pdf是一本全面而实用的教程,适合那些希望学习系统架构设计的读者。通过学习这本教程,读者可以了解系统架构设计的基本概念和原则,掌握实践经验和工具,提高系统架构设计的能力。 ### 回答2: 系统架构设计师教程第5是一本专门针对系统架构设计师的书籍,它的特点是全面、实用、系统性强。本书的PDF本可以提供给读者在线阅读或下载阅读。 首先,该教程首先介绍了系统架构设计的基本概念和原则,包括系统架构的定义、目标、视图和模式等。它帮助读者建立了一种全面的、系统化的架构设计思维方式,使得读者能够准确理解和把握架构设计的核心要素。 其次,该教程介绍了常见的架构设计模式和策略,如分层架构、微服务架构、事件驱动架构等。它深入解析了每种架构模式的原理、应用场景和优缺点,为读者提供了丰富的设计思路和方法。 此外,该教程还涵盖了系统架构设计过程的关键技术和工具。它介绍了常用的架构设计工具、建模语言和标准,如UML、TOGAF等。它还详细介绍了架构评审、设计文档编写和项目管理等实践技巧,帮助读者更好地应对实际工作的挑战。 最后,该教程还提供了大量的案例分析和实践经验,让读者通过实际项目的实例学习和应用系统架构设计的知识。这些案例涵盖了各行各业的不同类型的系统,如电子商务系统、金融系统、物联网系统等,具有很强的针对性和实用性。 综上所述,系统架构设计师教程第5PDF提供了一种全面、系统的学习和实践平台,帮助读者掌握系统架构设计的理论与实践,提升自己在架构设计领域的专业能力。无论是初学者还是有经验的架构师,都可以通过该教程获得宝贵的知识和经验,为自己的职业发展打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

福大大架构师每日一题

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

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

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

打赏作者

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

抵扣说明:

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

余额充值