程序开发过程的演变

1 最早的程序开发过程

用机器语言编写程序,并记录在纸带或卡片上。
在这个阶段,输入可能是按钮、开关;输出可能是指示灯等。所有信息都是0/1序列!

程序开发过程的演变
若在第4条指令前加入指令,则需重新计算地址码(如jxx的目标地址),然后重新打孔。不灵活!书写、阅读困难!
程序开发过程的演变


2 用汇编语言开发程序

汇编语言的特点:

  • 用助记符表示操作码
  • 用标号表示位置
  • 用助记符表示寄存器

汇编语言的优点:

  • 不会因为增减指令而需要修改其他指令
  • 不需记忆指令编码,编写方便
  • 可读性比机器语言强

程序开发过程的演变
在第4条指令前加指令时不用改变add、jxx和sub指令中的地址码!

我们需要用汇编程序将汇编语言转换为机器语言才能够被CPU执行。

机器语言和汇编语言都是面向机器结构的语言,故它们统称为机器级语言。


3 用高级语言开发程序

随着技术的发展,出现了许多高级编程语言:

  • 它们与具体机器结构无关
  • 面向算法描述,比机器级语言描述能力强得多
  • 高级语言中一条语句对应几条、几十条甚至几百条指令
  • 有“面向过程”和“面向对象”的语言之分
  • 处理逻辑分为三种结构
    • 顺序结构、选择结构、循环结构
  • 有两种转换方式:“编译”和“解释”
    • 编译程序(Complier):将高级语言源程序转换为机器级目标程序,执行时只要启动目标程序即可
    • 解释程序(Interpreter ):将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件。

现在,几乎所有程序员都用高级语言编程,但最终要将高级语言转换为机器语言程序。


4 不同层次语言之间的等价转换

程序开发过程的演变
任何高级语言程序最终通过执行若干条指令来完成!


5 开发和运行程序所需要的支撑条件

最早的程序开发很简单(怎样简单?)

  • 直接输入指令和数据,启动后把第一条指令地址送PC开始执行

用高级语言开发程序需要复杂的支撑环境(怎样的环境?):

  • 需要编辑器编写源程序

  • 需要一套翻译转换软件处理各类源程序

    • 编译方式:预处理程序、编译器、汇编器、链接器
    • 解释方式:解释程序
  • 需要一个可以执行程序的界面(环境)

    • GUI方式:图形用户界面
    • CUI方式:命令行用户界面

程序开发过程的演变
支撑程序开发和运行的环境由系统软件提供,最重要的系统软件是操作系统和语言处理系统。语言处理系统运行在操作系统之上,操作系统利用指令管理硬件。


参考资料:

  1. 计算机系统基础(一):程序的表示、转换与链接