编程分为两个部分:编写程序和修补程序(俗称改bug),通常而言,修补工作所花费的时间和精力远大于编写。
结构化编程:
将问题系统的分解为多个独立的、足够小的模块,这些小模块可以被独立的开发,运行和测试。这种机制又称为系统分解,
即将一个大任务分解为多个子任务集合。
大问题划分为小问题贯穿了整个编程的过程,拥有良好的问题拆分的编程思维是设计高效的算法和实现优秀的程序的必要条件。
三种结构:
顺序、条件、循环。
顺序就是多个子任务按照一定顺序执行。
条件就是在不同条件下执行对应的子任务,就是多选一。
循环就是一个子任务不停的被重复执行,直到满足某个条件跳出循环。
调试:
最简单的办法是通过程序跟踪到你的位置,跟踪内容包括指令执行顺序和每条指令的结果,通过执行序列的跟踪,可以发现控制流方面的错误(跳转到预想之外代码执行序列),每条指令的检查发现程序的逻辑错误。最有效的办法也是对问题进行拆分,分割成很多小块,检查每个小模块的执行结果是否符合预期。
编码和调试是一个非常需要实践经验的事情,我们要设计出好的算法,写出好的程序,同时要能很快的定位问题,这些不是三言两句就能说清的了。
汇编语言
ISA指令能明确的告诉计算机做什么,但是对于人来说不够友好。所以为了方便人的阅读和开发,设计出了ISA的上层语言。
分为高级语言和低级语言。
高级语言编写的程序在运行前,必须先被翻译为特定的ISA机器语言格