程序开发过程的演变

1 最早的程序开发过程

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

在这里插入图片描述
若在第4条指令前加入指令,则需重新计算地址码(如jxx的目标地址),然后重新打孔。不灵活!书写、阅读困难!
在这里插入图片描述
机器语言称为第一代程序设计语言(First generation programming language ,1GL )。
在这里插入图片描述


2 用汇编语言开发程序

汇编语言的特点:

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

汇编语言的优点:

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

在这里插入图片描述
在第4条指令前加指令时不用改变add、jxx和sub指令中的地址码!

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

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

汇编语言称为第二代程序设计语言(Second generation programming language ,2GL )。
在这里插入图片描述


3 用高级语言开发程序

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

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

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

第三代程序设计语言(3GL)为过程式语言,编码时需要描述实现过程,即“如何做”。
第四代程序设计语言(4GL) 为非过程化语言,编码时只需说明“做什么”,不需要描述具体的算法实现细节。
在这里插入图片描述


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

在这里插入图片描述
任何高级语言程序最终通过执行若干条指令来完成!


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

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

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

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

  • 需要编辑器编写源程序

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

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

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

在这里插入图片描述
支撑程序开发和运行的环境由系统软件提供,最重要的系统软件是操作系统(包括人机交互界面、
提供服务功能的内核例程)和语言处理系统(各种语言处理程序,如编译、汇编、链接;运行时系统,如库函数,调试、优化等功能)。语言处理系统运行在操作系统之上,操作系统利用指令管理硬件。


参考资料:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值