汇编语言和IBM的关系

一 缺乏汇编的硬件没有灵魂

1964年,在IBM没有发明System 360大型计算机之前,IBM已经发明了很多计算机。如IBM 1952年发布的第一台商用计算机:701计算机。1959年,IBM首次利用晶体管、磁芯存储器、印刷电路技术,发明了小型数据处理计算机 IBM1401,但这些计算机都没有完整的操作系统概念,算是软件和硬件一体化。
IBM在1953年发布IBM 650大型主机时,才研发出来汇编语言,使人类终于告别了直接用最原始的01010编写程序的历史,人类终于可以靠打字机+打孔卡片,人类输入符合汇编语言规范的字母和数字,打孔机输出的就是用打孔卡片表示的01010。把打好孔后的卡片送入到计算机的卡片读入设备,计算机就能执行程序了。
1964年,IBM发布了System 360大型计算机。这算是出现了计算机的操作系统雏形。早期的计算机,都是一个型号就有一套CPU指令集。但是IBM在设计System 360的时候,就做了精良的设计,承诺以后IBM出的计算机CPU指令集具有向上兼容性,而且IBM出的其他系列的计算机,指令集和System 360的CPU指令集也兼容。为了达到这个标准要求,IBM就开始抽象出薄薄一层软件,但当时,这层软件也是最后和硬件计算机一体的,并不单独发布和售卖。

二 程序是为了实用,而不是炫技

比如GE购买计算机后主要用来四个具体任务:工资支付、原材料规划和库存管理、订单管理和支付、会计管理。这些场景原来就是基于IBM的卡片计算机(也可以解释为何后来IBM能够统治计算机市场,因为这个属于延续式技术创新),而更先进设备带来的人力节省(卡片计算机需要很多人力搬运卡片)是说服高管更换设备重要原因。
程序不是炫技,而是解决问题的,汇编语言实现了人类书写指令,机器执行指令。而编译器则负责将数学公式,以及更高阶的编程语言转换成为机器能直接执行的语言。1957年,IBM基于704型号推出了Fortran编程语言,由于早期计算机编程效率很低,编程+debugging的成本甚至超过了执行程序的成本,因此Fortran出现更多将程序员从冗余的过程中解放,更多聚焦真正想解决的问题。比如Fortran用于计算的符号和语法和代数很接近,其编程效率和表现很强。
早期的程序分享主要基于民间组织,1955年一群IBM 701客户组成了SHARE分享组织,很快聚集了62个会员单位,并且开始分享类似求逆矩阵等基础数学程序,这些分享组织是早期开源社区的基础。SHARE分享程序里面还包括早期操作系统的雏形,由于内存资源很稀缺,这些软件在本身体量很小的前提下提供管理内存等功效,早期GM(通用汽车)是实验室开发了一个batch processing的程序,用来控制程序运行的流程,告诉计算机接下来运行是Fortran程序,还是一个新的程序,其后来演变成为IBM计算机的早期的操作系统。
Algol发布于1958年,也是早期重要编程语言,其引入了Block架构,拥有begin和end的block可以成为一个独立的指令,且Algol支持一个程序调用自己不断重复运行(recursion)。Stack(堆栈)的数据结构也被提出来,用来和Algol进行结合,而无线循环的程序就会遇到Stackover的错误。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值