2023-2024-1 20231304 《计算机基础与程序设计》第八周学习总结
作业信息
这个作业属于哪个课程 | 2023-2024-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2023-2024-1计算机基础与程序设计第八周作业 |
这个作业的目标 | 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行 |
作业正文 | 2023-2024-1 20231304 《计算机基础与程序设计》第八周学习总结 |
教材学习内容总结
1. 功能设计与面向对象设计:
功能设计主要是确定系统的功能需求,包括模块划分、功能模块之间的交互等。面向对象设计则是一种基于对象(类和实例)的设计方法,它强调将问题分解为多个独立的、可重用的对象,以实现的高内聚、低耦合。
2. 面向对象设计过程:
面向对象设计过程主要包括以下几个步骤:
- 确定需要的类:根据需求描述,找出职责相近、操作相同属性的功能点,尽可能细粒度地划分类。
- 提供完整的操作:为每个类提供一组完整的操作,包括获取和修改对象状态的方法等。
- 使用继承表现共同点:通过继承关系体现类之间的共同特性,将相似的功能聚合在一起。
3. 面向对象语言的三要素:
面向对象语言的三要素包括:类(class)、对象(object)和继承(inheritance)。
- 类:类是面向对象语言中的基本单元,定义了一组相似对象的属性和行为。
- 对象:对象是类的实例,它具有类定义的属性和方法。
- 继承:继承是子类可以继承父类属性和方法的一种机制,使得类具有代码复用和扩展的能力。
4. 汇编、编译、解释、执行:
- 汇编:汇编是将汇编语言代码转换为机器语言的过程,生成的可执行文件较小,但编写和阅读难度较高。
- 编译:编译是将高级编程语言(如C、C++、Java等)编写的代码转换为机器语言的过程,生成的可执行文件较大,但编写和阅读相对容易。
- 解释:解释是将高级编程语言编写的代码逐行解释为机器语言并执行的过程,执行速度较慢,但易于调试。
- 执行:执行是指计算机根据程序指令执行具体操作的过程,包括取指令、分析指令、执行指令等步骤。
这些概念在编程过程中有着重要的作用,了解它们有助于更好地编写高效、可维护的代码。
基于AI的学习
我在学汇编、编译、解释、执行知识点,请你以苏格拉底的方式对我进行提问,一次一个问题
当我们谈到汇编语言时,你认为它在计算机科学中的作用是什么?
汇编语言在计算机科学中的作用主要有以下几点:
- 底层操作:汇编语言是面向机器的程序设计语言,它允许程序员直接与计算机硬件进行交互,实现对硬件资源的控制和操作。
- 理解硬件:学习汇编语言能够帮助程序员深入理解计算机硬件的工作原理和底层资源访问方式,增强对计算机系统的整体认识。
- 性能优化:由于汇编语言直接对应机器码,它的执行速度快于高级语言,对于需要优化性能的程序,汇编语言是一个有效的选择。
- 定制硬件:汇编语言可以充分利用计算机硬件的特性,编写出具有高度针对性和定制化的程序。
- 跨平台:汇编语言不依赖于特定的编程语言或平台,可以在各种处理器体系结构上使用。
- 教育与研究:汇编语言常被用作计算机科学教育的入门教材,帮助学生理解计算机底层原理,同时也被用于研究计算机体系结构和操作系统等领域。
你能告诉我,汇编、编译、解释和执行这几个概念中,你最困惑的是哪一个吗?
编译
编译是指将源代码转换为可执行文件的过程。在这个过程中,编译器会将编程语言写的代码转换为计算机可以理解和执行的低级语言。编译后的可执行文件可以在任何具有相应运行环境的主机上运行。编译主要有两种类型:编译型和解释型。编译型语言如C、C++、Java等,一次编译后可生成可执行文件,执行效率较高。解释型语言如Python、Ruby等,需要通过解释器逐行解释执行,执行效率相对较低。
编译的过程主要包括以下几个阶段:
-
预处理:预处理器负责处理源代码中的预处理指令,如宏定义、条件编译等。预处理后的代码不包含预处理指令,但可能包含编译器需要处理的注释。
-
编译:编译器将预处理后的代码编译为中间代码,也称为目标代码。这个过程涉及到语法分析、语义分析、代码优化等步骤。
-
汇编:汇编器将编译后的目标代码转换为汇编语言代码。汇编语言是一种更接近底层硬件的低级编程语言,每条汇编指令对应一条或多条机器码。
-
链接:链接器将汇编代码中的外部符号(如全局变量、函数等)与库文件(如标准库、第三方库等)进行合并,生成最终的可执行文件。
-
装载:装载器将生成的可执行文件加载到计算机内存中,为程序的执行做好准备。
需要注意的是,不同编程语言的编译过程和编译器可能有所不同,但总体上都遵循上述步骤。此外,有些编程语言的编译器和解释器可以相互转换,如Java和Python。这意味着,虽然它们在执行方式上有所不同,但它们的编译过程和原理是相似的。
上周考试错题总结
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 | |
第五周 | 300/1600 | 2/11 | 20/110 | |
第六周 | 200/1800 | 3/14 | 25/135 | |
第七周 | 200/2000 | 1/15 | 20/155 | |
第八周 | 200/2200 | 3/18 | 20/175 |