2019-2020-1学期 20202429《网络空间安全专业导论》第四周学习总结
2019-2020-1学期 20202429《网络空间安全专业导论》第四周学习总结

在上一章学习完低级程序语言和算法设计后,我们对机器语言和汇编语言有了基础的了解,但是我们只是学习了语言所对应的操作,但并不了解操作是如何实现的。在第八、九两章中,我们将学习抽象容器和面向对象程序设计及相关联的拓展内容。
第八章 抽象数据据类型与子程序
抽象数据类型是指数据和操作明确地与特定实现分离的容器,而理解如何观察数据是理解抽象数据类型的前提。
观察数据何以从三个层面:应用层、逻辑层、实现层。
应用(用户)层是指特定问题中的数据视图,逻辑(抽象)层是指数据值(域)和处理它们操作的抽象视图,实现层是明确表示出存放数据项的结构,并用在程序设计语言对数据的操作进行编码,并且实现层和数据结构有很大的关联,即一种抽象数据结构中的符合数据域的实现。
最先学习的两种抽象复合结构是栈与队列,这是两种比较好理解的数据结构。
栈zhan可以理解为删除的项是存在于栈中时间最短的项,而队列可以理解为删除的项是存在时间最长的项。
列表也是抽象复合结构的一种,列表具有三个属性特征:项目是同构的,项目是线性的,列表是变长的。而列表和数组又是不一样的,列表属于抽象结构,数组属于内嵌结构。列表也可以被形象化为链式结构,就是每个存储数据还包括了下一个数据的存储地址,从而形成了链状的数据
栈,队列,列表都是线性的,对于不是线性的数据关系,我们用树来表示,就如同树杈分支一样,每个数据节点可能连着多个数据并依次”伸展“,而树中有一个重要的类型是二叉树,就是规定好每个节点最多有两个子节点的树。当规定了二叉树任何节点的值都要大于它的左子树的值并小于右子树的值时,这个二叉树也被叫做二叉检索树,当没有树节点之间的连接时(去掉约束),树上升到了图的层面。
子程序是一种算法概念,是用来辅助完成算法的嵌入算法,有可能在特定的输入下有输出,但也存在着无输出的情况。子程序被使用时有很多机制来帮助子程序的运行,参数列表用来规定程序中两部分之间的通讯机制,就如同两个城市之间的高速公路,实现子程序的接收和发送,调用程序用子程序的名字作为声明,参数有可能是引用参数也可能是值参,当实参为值参时,通过发送实参的副本到子程序的方式来传递,当实参为引用参数时,则通过发送实参的地址到子程序来完成传递。
第九章 面向程序设计与高级程序设计语言

面向对象设计语言时审视设计过程的另一种方式,它从数据的角度出发而非任务,我们对面对对象设计的过程中,一些接触到的元素下了定义。
对象是在问题背景中相关的事物或实体,对象类是一组具有相似的属性和行为的对象的描述,字段表示类的属性,而方法是处理对象中的数据值的指定算法。类是一种模式,它说明了对象是什么(字段)以及它的行为(方法)。
程序设计也是在对方法进行设计,设计方法分为几个阶段,通常是先进行头脑风暴,生成一份暂时的类列表,再对每个类进行场景分配对应的责任,责任的类型有两种,即类自身必须知道的和类必须能做到的。
我们在编写程序的时候都是适用的高级语言,就需要有工具能进行翻译过程,将高级语言翻译成机器语言。编译器就是将高级语言编写的程序翻译成机器码的程序,解释器就是输入高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
有很多高级程序设计语言的模型,被分为命令式和(面向过程和面向对象)或者声明式(功能或逻辑),命令式描述了被执行的处理过程。声明式模型描述了被执行的是什么而不是怎样被完成的。
浙公网安备 33010602011771号