计算机导论第五次总结
第四章 程序设计语言
在本周的课程中,老师首先给我们讲解了程序设计语言的相关内容,让我们对于目前所学习的领域,所使用的计算机语言有了更深入地了解。
4.1 程序设计语言简介
程序设计语言是一种用来定义计算机程序的语法规则。我所理解的便是,程序设计语言是让程序员能够正确调控计算机,让计算机执行正确地命令,建立正确的数据的语法规则。这是程序员要掌握的最基本的知识。
和正常语言一样,程序设计语言也有三个元素:语法、语义和语用。这三个元素也基本上与正常语言类似。
我个人的感受是,程序设计语言其实和我们日常语言一样,只要我们学会了它的基本语法和基本词汇我们就能够表示写出能表达我们所需要的程序。语言是计算机行业的基础,只有掌握了语言关,才能有更突出的作为。
4.2 程序设计语言的分类及编程模式
机器语言在目前的使用中都是以二进制代码表示的。而我们所编写的程序,都会被计算机程序所自动转化为二进制代码,即机器语言,从而让计算机执行我们想要的命令。
汇编语言我理解,就是把机器语言进行了人性化的过程,即能让我们能够了解程序的具体内容。
高级语言也就是我们目前人类编写程序所用到的面向用户的语言。我们能够通过高级语言编写出我们想要的程序。高级语言与自然语言非常相似,所以掌握一门高级语言其实很简单,但想熟练掌握又需要非常多的努力才行。计算机会自动把我们用高级语言所编写的程序进行处理。
首先计算机会把程序进行编译转换成目标汇编程序,再将目标汇编程序进行汇编转化成机器代码,最后将机器代码进行装配。我认为,编译源程序的过程尤其重要。计算机要对源程序分别进行语法分析、词法分析、语义分析、中间代码生成、代码优化和目标代码生成。这么多步骤中如果出现错误,计算机也会及时进行出错处理。这是我最觉得厉害的地方,一个小小的计算机,能够在极短的时间内把我们编写的程序进行这么多操作处理,这也是我喜爱计算机的理由,很多日常生活中很难实现的想法通过计算机,通过编写程序很多都能够实现,不仅如此,通过计算机程序我们的生产效率也得到了很大的提升,生活质量也大大增加。
4.3 编程模式
想要计算机进行我们想要的操作,想与计算机进行交流,我们需要通过编程才行。而计算机也早已形成了4中成熟的编程模式,分别是过程式编程、面向对象编程模式、函数式编程模式和说明式编程模式。每种模式都有许多对应的高级语言。
其中,面向对象编程模式是我现在使用最多的模式。因为现在我所接触的语言基本上都需要面向对象设计。我对于面向对象的理解是,将你想解决的问题抽象成一个对象,你可以赋给这个对象许多属性,每种属性都可以通过函数等进行赋值设定,对象之间也有紧密的联系,对象之间也可以类比于自然世界的关系一样,有继承、多态、封装三种特征。通过构建函数等操作,将我们想对对象进行的操作实现。这就是我所理解的面向对象编程。这种模式,我认为是目前使用较多的一种编程模式。因为这种模式,我认为能够有很好的交互性,能够真正实现我们想进行的操作。所以我目前在学校学习最多便是面向对象的程序设计。
不过每种模式都有内在的联系,想要真正掌握好编程,需要不断地学习和练习,找到自己的编程思路是我们目前所要完成的最重要的任务之一。
4.4 高级编程语言介绍
目前比较主流的语言有很多,C语言、C++语言、Java语言等多种语言都有它们独特的特性。这一节,我对于目前的一些高级语言有了最基本的了解。我目前使用最多的是C++语言。这种语言支持面向对象抽象、设计与编程,并在C语言的基础上进行了改进,这种语言的灵活性很高,且比较安全,容易掌握。
不过这几年Java语言的使用率也在稳居前列,这主要依靠了Java更卓越的性能:①更加的简单②面向对象③分布性④可移植性⑤安全性⑥鲁棒性。而且Java语言有更多数据库能够使用在更多的领域,比如Java Applet,这是Java的小应用程序,这扩大了Java的使用范围。我目前认为Java比C++好的地方是,Java能够用try语句来处理语句,同时能够在遇到错误是及时报错,程序的可读性更好,目前我们所在做的Java面向对象实验中便多次用到了try。
不过每种语言都有其特点,且不同的语言都有其应用的领域,没有那一种语言是最好的,语言之间如果能够互相配合,计算机的应用将会更强更广。
4.5 并行程序设计
并行程序设计有其对应的并行程序设计语言。并行程序设计从字面上便可以理解在进行一项功能的同时也进行其他功能,这样能够大大地提高效率。不过这种高效率地运行程序需要对代码进行优化,这种优化能够尽可能的挖掘硬件的潜能。OpenMP主要用于共享式存储计算上的并行程序设计。OpenMP能够大大降低并行编程的难度和复杂度。
第五章 计算机中的数据
5.1 数据
数据是所有输入计算机中并能被计算机程序处理的符号的总称。不过,千万别把数据和信息搞混。我对于数据与信息的理解是:数据就是输入的所有符号,但是不一定有意义,如果这些符号有一定的含义,才能被称作信息。
目前常用的计算机编码有ASCⅡ、Unicode、UTF-8、GB-2312、音频编码、图像编码。但我目前接触最多的就是ASCⅡ码,尤其是字符的存储方式上,计算机都会自动将字符以ASCⅡ码的形式进行存储和识别。我认为有了计算机编码之后,计算机识别人们编写程序的能力得到了巨大的提升,且识别的正确率也因为每个字符都有独特的编码而大大增加。
5.2 数据结构
我在这一学期刚刚学习了数据结构,我对于数据结构的理解就是,数据元素之间的相互联系和结构。不同的数据结构适用的领域也有很大的不同。目前的数据结构主要包含数据的逻辑结构、数据的物理结构和对数据的基本操作。
5.2.1 数据的逻辑结构
目前我所知道的逻辑结构有4种①集合②线性结构③树形结构④图状结构。这些分类主要是根据数据间的逻辑关系。
5.2.2数据的物理结构
目前的物理结构主要有三种:①顺序存储②链式存储③索引存储
每种存储方式的优缺点也不同。我目前认为顺序存储利于查找,但删除和插入则比较麻烦,都需要涉及到很多数据元素的移动。链式结构则适合插入和删除,且对于存储的位置也很方便,不需要建立连续的存储空间,但查找却比较麻烦,需要从端开始遍历。
5.2.3 常见的数据结构
目前常见的数据结构主要有线性表,栈,队列,树,图。在数据结构这门课程中我们对这几种结构有了比较详细的学习。这些数据结构都会在很多的项目中用到,用来很好的解决数据之间的关联。而且,通常运用这些数据结构能够大大地提高项目的效率,因为这些数据结构都有很方便的可操作性,比如,对应的函数等。这也是为什么想要学好计算机,必须要学好数据结构。这节简单介绍了这些数据结构的特点。
5.3 算法
程序设计中,我认为最核心的就是算法,同时它也是最难的部分。一个程序中核心算法的好坏,往往可以说明这个程序的好坏。这也是为什么各大公司算法岗的待遇更高的一个重要原因。
算法必须要有以下特性,才能称作正确的算法:①输入和输出②有穷性③确定性④可行性。
满足以上的特性,只能保证算法是符合规则的,但是还有对其进行其他的改善。通过对算法进行细化、泛化等操作能够将算法逐渐完善,能够提高算法的适用范围和质量。
5.4 数据库
数据库是一个组织内被应用程序使用的逻辑相一致的相关数据的集合。具有
①数据结构化
②数据共享性高,冗余度低,易扩充
③数据独立性高
④数据由数据库管理系统统一管理和控制
正是有了这些特点,数据库在如今的工程项目中的地位非常高,许多数据都要放在数据库中,并可对数据库中的数据随时进行操作。
5.4.2 数据库的体系结构
目前数据库主要有三级模式和两级映射。三级模式主要分为概念模式、外模式和内模式。二级映射分别是外模式/概念模式和概念模式/内模式。有了这种体系结构,数据库就有了更多的层次和结构方式,其操作性也就进一步提升。
5.4.3 数据库模型
目前的数据库主要有三种模型:层次模型、网状模型和关系模型。这些模型将数据库中的数据以不同的联系关系进行了处理,在调用数据时也更加的方便。
对数据库中的数据用户可以进行插入、删除、更新和选择等操作。通过操作来不断完善数据库中的信息,正是这种可随时调节的能力,让数据库更加的符合日常的使用。同时数据库也有数据库管理系统,这个系统包含硬件、软件、数据、用户和规程能够对数据库进行定义、创建和维护,同时也能够完成数据的存取功能。目前主流的数据库有Oracle数据库、Microsoft SQL Server数据库、MySQL数据库、Sybase数据库和DB2数据库。
5.5 数据中心
数据中心主要是为了业务发展和管理的需要。当今时代信息大爆炸,越来越多的数据需要快速处理和存储,这些都需要数据中心。有了数据中心,许多信息就能够有序的处理,保证我们日常使用。
第七章主要介绍了计算机应用的主要发展方向,向我们介绍了计算机目前正在发展或者开发的方向。计算机作为这个时代最重要的工具,将会在更多的地方展现出它更大的潜力与价值。我们也要在未来不断学习新的计算机知识,不断完善我们自己,丰富自己的知识。才能在未来不断发展的社会中立足。