程序开发过程的演变
1 最早的程序开发过程
用机器语言编写程序,并记录在纸带或卡片上。
在这个阶段,输入可能是按钮、开关;输出可能是指示灯等。所有信息都是0/1序列!
若在第4条指令前加入指令,则需重新计算地址码(如jxx的目标地址),然后重新打孔。不灵活!书写、阅读困难!
2 用汇编语言开发程序
汇编语言的特点:
- 用助记符表示操作码
- 用标号表示位置
- 用助记符表示寄存器
汇编语言的优点:
- 不会因为增减指令而需要修改其他指令
- 不需记忆指令编码,编写方便
- 可读性比机器语言强
在第4条指令前加指令时不用改变add、jxx和sub指令中的地址码!
我们需要用汇编程序将汇编语言转换为机器语言才能够被CPU执行。
机器语言和汇编语言都是面向机器结构的语言,故它们统称为机器级语言。
3 用高级语言开发程序
随着技术的发展,出现了许多高级编程语言:
- 它们与具体机器结构无关
- 面向算法描述,比机器级语言描述能力强得多
- 高级语言中一条语句对应几条、几十条甚至几百条指令
- 有“面向过程”和“面向对象”的语言之分
- 处理逻辑分为三种结构
- 顺序结构、选择结构、循环结构
- 有两种转换方式:“编译”和“解释”
- 编译程序(Complier):将高级语言源程序转换为机器级目标程序,执行时只要启动目标程序即可
- 解释程序(Interpreter ):将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件。
现在,几乎所有程序员都用高级语言编程,但最终要将高级语言转换为机器语言程序。
4 不同层次语言之间的等价转换
任何高级语言程序最终通过执行若干条指令来完成!
5 开发和运行程序所需要的支撑条件
最早的程序开发很简单(怎样简单?)
- 直接输入指令和数据,启动后把第一条指令地址送PC开始执行
用高级语言开发程序需要复杂的支撑环境(怎样的环境?):
-
需要编辑器编写源程序
-
需要一套翻译转换软件处理各类源程序
- 编译方式:预处理程序、编译器、汇编器、链接器
- 解释方式:解释程序
-
需要一个可以执行程序的界面(环境)
- GUI方式:图形用户界面
- CUI方式:命令行用户界面
支撑程序开发和运行的环境由系统软件提供,最重要的系统软件是操作系统和语言处理系统。语言处理系统运行在操作系统之上,操作系统利用指令管理硬件。
参考资料: