网络空间安全导论 20212305杨贯宇 第三周学习总结
低级程序
机器语言是让计算机直接执行程序设计的。每一条机器语言只可以完成简单的操作,如移动内存,保存结果等。很繁琐,故几乎没有程序是由机器语言编写的,而大多是高级语言。
每个CPU都因为其机器的不同而拥有不同的机器语言。故我们可以使用虚拟机来解决这个问题,虚拟机是个假象的机器。
Pep、9由1024*64个字节的存储空间构成。
寄存器里有PC IR A
汇编语言给每一个机器语言都编了注记指令码,让程序员可以通过指令码来编写程序,但是最后汇编语言都会转化为机器语言而在机器上完成。
寻址模式(i(立即寻址)(d(直接寻址))
伪代码:
一种可以无视各种高级语言语法,直接表达意思的计算机语言,不像python c++可以编译,执行,但是便于理解与程序员之间的沟通
一些概念:
变量:
不用定义,直接写就可以,sum就代表和,i,t什么的迭代递归时使用的变量基本上不会有
赋值
sum<-0 //将sum赋值为0
箭头代表赋值
输出
write//代表输出
不用printf,cout>>,print()啥的
重复
while(条件)
选择
if
如此就基本上可以完成计算机的大部分运算
代码的测试:
测试计划 即一个文档 说明了要全面测试的程序及数据
代码覆盖测试法
数据覆盖测试法 代码为暗箱,基于数据测试
测试计划实现 即完成了目标
问题求解与算法设计:
解决问题四步:
理解问题
设计方案
执行方安
分析方案 找问题
排序算法我还是懂一些的
有冒泡排序。快速排序。插入排序。选择排序。二叉树排序。堆排序,。后面两个实现有些困难,不过原理都理解
几个重要思想:
消息屏蔽,抽象 我理解就是黑箱 只关注它有啥用,即输入输出,而忽略内部结构
事物命名
我应该使用有意义的命名,而非i a z b 之类只有我看得懂 的命名