前言:
计算机导论是笔者大学期间第一门结课的专业课,也是在这门课上笔者取得了大学生活中第一次满分。笔者近日整理文件发现笔记数十页,不忍抛弃,因稍加整理后发布于此。
内容共八章,涵盖了计算机类专业学生的基础知识。对于行业初学者,可以提供一个专业的视角以便后续选择进一步发展方向;对于业外人士,也可做科普性质文章对待。需要注意的是,笔记并不等于确切的、已知的考点,请校友(尤其是同门师弟师妹们)理性对待此资料,认真听讲,认真复习。
后续章节将会逐步更新,请各位读者静候。
作者注:本章节为自学内容
考点整理:
计算机语言经过多年的发展已经从机器语言、汇编语言演化到高级语言。
在计算机发展早期,机器语言是唯一的程序设计语言。不同的计算机有其自己的机器语言,由0和1组成的二进制码构成。特点:
优点:速度快,不需要翻译,可以被计算机直接执行。
缺点:依赖机器,可读性差,难以掌握
汇编语言:用带符号或助记符的指令和地址代替二进制码。
汇编程序:用于将汇编语言代码翻译成机器语言的特殊程序。
高级语言:为了提高程序员效率、更加关注要解决的问题,发展出了高级语言。
特点:可移植到不同计算机、开发效率高,摆脱汇编语言繁琐的细节、需要解释或编译,转化为机器语言。
为了在计算机上运行程序,程序需要被翻译成为它要运行的计算机的机器语言。高级语言程序被称为源程序(source code),被翻译成的机器语言程序称为目标程序(Object program)。
翻译有两种方式:编译(compile)和解释(interpret),分别由两种程序来完成。
编译在执行前翻译整个源代码,而解释一次只翻译和执行源代码的一行。但都遵循以下过程:词法分析、语法分析、语义分析、代码生成。
编译→链接→加载→执行的过程:
编译器在执行前翻译整个源代码,成为对应的机器语言程序,存储于外存。链接程序将一个或多个目标程序与一个或多个相关的程序库组织在一起,产生可执行代码并存入外存。执行时,程序从外存载入内存运行。
解释器把源程序的每一行翻译成目标程序中相应的行,并执行它。
可以翻译为计算机的机器语言,立即执行。也可以翻译为某种中间语言,再将中间代码发布到不同平台的相应运行环境进行运行。
编程范式:当今计算机语言按照它们使用的解决问题的方法来分类,有4种模式:过程式,面向对象,函数式和声明式。
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
软件工程(software engineering)是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件也有一个孕育、诞生、成长、成熟和衰亡的生存过程,我们称这个过程为软件生命周期。
软件生存期由软件定义、软件开发和运行维护3个时期组成,每个时期又可划分为若干个阶段。
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
两种常见的过程模型:瀑布模型、增量模型
软件工程包含技术和管理两方面的内容,是技术和管理紧密结合所形成的工程学科。
通常将软件开发全过程中使用的一整套技术方法的集合称为方法学,也称为范型。
结构化方法学也称为生命周期方法学或结构化范型
包含结构化分析(SA)、结构化设计(SD)、结构化程序设计(SP)三个方面,分别对应了软件开发中的分析、设计和编码阶段。
特点:强调自顶向下顺序地完成软件开发的各阶段任务; 结构化方法要么面向行为,要么面向数据,缺乏使两者有机结合的机制。
面向对象方法学是将数据和对数据的操作紧密地结合起来的方法。
面向对象=对象+类+继承+消息通信
对于大型、复杂及交互性比较强的系统,使用面向对象方法学更有优势。