计算机导论课后总结-5
第四章 程序设计语言
程序设计语言简介
-
定义:程序设计语言是一组用来定义计算机程序的语法规则。
-
三个元素:语法、语义和语用
- 语法:用字符组合合成语法的规则集合
- 语义:一条合法语句的含义
- 语用:涉及语言使用者各方面的内容
-
程序设计语言的基本成分:数据成分、运算成分、控制成分、传输成分
程序设计语言的分类及编程模式
- 分类
- 机器语言:二进制代码表示的能直结识别的机器指令的集合。
- 机器语言:二进制代码表示的能直结识别的机器指令的集合。
指令包括操作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。
①三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。
②二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。
③单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。
④零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。
⑤可变地址数指令:地址域所涉及的地址的数量随操作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。
- 汇编语言:采用助记符来编写程序,是机器语言的符号化。
机器指令: 1000100111011000
汇编指令: MOV AX, BX
上述的机器指令和汇编指令是一一对应的,它们操作的含义都是:把寄存器 BX 中的内容送到 AX 中。
-
高级语言:一种面向对象的语言,是一种与自然语言相近并为计算机所接受和执行的语言。
-
编程模式:
- 面向对象:可以定义为·:数据对象+对象类+继承类。主要思想如下:
- 客观世界由对象组成,一切事物均可抽象为对象
- 将相同性质的对象抽象为类
- 对象之间的联系通过消息传递实现
- 类之间的联系通过继承实现
面向对象的三大特性:
1、封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
2、继承
提高代码复用性;继承是多态的前提。
3、多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。
- 过程式:一般是从上向下,步步求精,,最重要的思想是模块化、结构化。
- 函数式:在编程中将程序看作是一个函数。
- 说明式:依据逻辑推理的原则响应查询。
高级编程语言的介绍
- BASIC语言:一种直译式程序设计语言。名称字面为意思“初学者的全方位符式指令代码”,设计给初学者使用的编程语言,在完成编写后不须经由编译及链接等手续,经过解释器即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。
- PASCAL语言:Pascal是最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句。高级语言发展过程中,Pascal是一个重要的里程碑。Pascal语言是第一个系统地体现了E.W.Dijkstra和C.A.R.Hoare定义的结构化程序设计概念的语言。
- C语言:一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
- C++语言:C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
- JAVA语言:
1.简单性
2.面向对象
3.分布性
4.编译和解释性
5.稳健性
6.安全性
7.可移植性
8.高性能
9.多线索性
10.动态性 - 脚本语言:脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。
并行程序设计
- 并行程序设计提高计算机的运行速度和系统的处理能力,在总体设计和逻辑设计中广泛采用并行操作技术,使各部件并行工作。要求操作系统具有并发性及资源共享,于是采用了并行程序设计,它是能够同时执行2个以上运算或逻辑操作的程序设计技术。采用了并行程序设计技术后,可使分时和多道程序更全面地利用计算机资源,使系统效率提高,开销减小 (所占内存小,花费的处理时间短)
- 并行程序设计语言:SISAL、FORCE、LINDA等
- 编译过程:当我们在实际的并行机上设计并行程序时,绝大部分均是采用扩展Fortran和C语言的办法,有三种扩展的办法:一是库函数法:除了串行语言所包含的库函数外,一组新的支持并行性和交互操作的库函数(如MPI消息传递库和POSIXPthreads多线程库)引入到并行程序设计中。二是新语言结构法:采用某些新的语言结构来帮助并行程序设计以支持并行性和交互操作(如Fortran 90 中的聚集数组操作); 三是编译制导法:程序设计语言保持不变,但是将称之为编译制导的格式注释引入到并行程序中。
- OpenMP:
用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案(Compiler Directive) [1] 。OpenMP支持的编程语言包括C、C++和Fortran;而支持OpenMp的编译器包括Sun Compiler,GNU Compiler和Intel Compiler等。OpenMp提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenMp时,程序又可退化为通常的程序(一般为串行),代码仍然可以正常运作,只是不能利用多线程来加速程序执行。
第五章 计算机中的数据
数据
- 定义:所有能输入计算机并被计算机处理的符号的总称。
- 和信息的差别:数据是供计算机处理的,信息是供用户使用的。
- 计算机常用编码方式:
- ASCII:用7位表示的单字节编码系统,主要用于显示英语和其他西文字符。
- 扩展ASCII:微型计算机开发初期,确定的八位字长的编码方式。
- Unicode:目前用来解决ASCII字符集256个字符限制问题的一种比较常用的解决方案。
- UTF-8:对可以用ACSII表示的字符Unicode表示并不高效,因为Unicode占用空间比前者大一倍,而对于ASCII来说高字节的0毫无用处,UTF-8解决了这个问题,也称通用转换格式。
- GB-2312:由我国指定的统一汉字编码方案。
- 图形编码:人们试图采用新的编码方法以减少表示存储图像所需要的数据量,这是图形编码解决的主要问题。
数据结构
- 定义:程序中数据的一种组织形式,其目的是配合相应的算法编写出好的程序。
- 逻辑结构:
- 集合
- 线性结构
- 树形结构
- 图状结构
- 物理结构:
- 顺序存储
- 链式存储
- 索引存储
- 常见数据结构:线性表、栈、队列、树、图
算法
- 定义:基本的运算及规定的运算顺序所构成的完整的解题步骤。
- 特性:
- 输入非必须
- 输出必须
- 有穷性
- 确定性
- 可行性
十种重要算法:
- 合并排序,快速排序与堆排序
- 傅利叶变换与快速傅利叶变换
- 迪杰斯特拉算法
- RSA 算法
- 安全哈希算法
- 整数分解
- 链接分析
- 比例微积分算法
- 数据压缩算法
- 随机数生成算法
数据库
数据库:就是数据的仓库,它是长期存储在计算机内,有组织的、可共享的数据的集合。
数据库管理系统(DBMS: 用来对数据进行存储、管理等操作的软件。
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)
-
特点:
-
数据结构化
-
数据共享性高,冗余度低,易扩充
-
数据独立性高
-
数据由数据库管理系统统一管理和控制
1.数据的安全性保护
2.数据的完整性检查
3.数据的并发控制
4.数据库恢复
-
-
数据库的体系结构:
1.三级模式:对数据库中全体书的逻辑结构和特征的描述,是所有用户的公共数据视图。
2.二级映射:1)外模式、概念模式映射。2)概念模式、内模式映射 -
数据库模型
1.层次模型
2.网状模型
3.关系模型 -
数据库管理系统
数据库管理系统主要是实现对共享数据有效的组织、存储、管理和存取。围绕数据,数据库管理系统的功能为:
1、数据库定义和创建
2、数据组织、存储和管理
3、数据存取
4 、数据库事务管理和运行管理
5、数据库的建立和维护
6、其他功能
- 主流数据库:Oracle数据库、SQL数据库、MySQL数据库、Sybase数据库、DB2数据库
数据中心
- 定义:一个物理空间内实现数据集中处理、存储、传输、交换、管理的一整套复杂的设施。
- 组成:
1.基础环境:主要指数据中心机房及建筑物布线等设施,包括电力、制冷、消防、门禁、监控、装修等;
2.硬件设备:要包括核心网络设备、网络安全设备、服务器、存储、灾备设备、机柜及配套设施;
3.基础软件:服务器操作系统软件、虚拟化软件、IaaS服务管理软件、数据库软件、防病毒软件等;
4.应用支撑平台:一般来讲是具有行业特点的统一软件平台,整合异构系统,互通数据资源;剩下的是具体应用软件了,多数应该做成与硬件无关的。最最重要的是,光靠软件硬件的罗列是无法构成一个好的数据中心,关键是如何设计、如何集成、如何运营,这才是一个数据中心的价值重点。
参考:
1.https://baike.baidu.com
2.https://www.jianshu.com/p/90cae6902c00
3.https://www.jianshu.com/p/7a5b0043b035
4.https://www.huxiu.com/article/267404.html?rec=manual
5.https://blog.csdn.net/Bruce_Up/article/details/82749285
6.https://www.cnblogs.com/JerryZao/p/9846827.html