当前位置: 首页 > news >正文

汇编语言和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的错误。

http://www.lryc.cn/news/321082.html

相关文章:

  • 堆(数据结构)
  • 医药工厂5G智能制造数字孪生可视化平台,推进医药企业数字化转型
  • C语言学习--八种排序算法
  • Infineon_TC264智能车代码初探及C语言深度学习(二)
  • 第十三届蓝桥杯(C/C++ 大学B组)
  • 数据结构从入门到精通——排序的概念及运用
  • react面试题总结
  • 5_springboot_shiro_jwt_多端认证鉴权_禁用Cookie
  • 条形码申请指南:外地人如何成功注册香港条形码
  • Covalent Network借助大规模的历史Web3数据集,推动人工智能发展
  • test测试类-变量学习
  • 【DL经典回顾】激活函数大汇总(二十七)(Bent Identity附代码和详细公式)
  • element-plus el-table表格默认选中某一行
  • Vue+SpringBoot打造民宿预定管理系统
  • 基于单片机的模糊PID炉温控制系统设计
  • 深入浅出落地应用分析:AI数字人「微软小冰」
  • 【早鸟优惠|高录用|EI稳定检索】2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)诚邀投稿/参会!
  • CPU设计实战—异常处理指令
  • Elasticsearch(13) match_phrase的使用
  • 通过路由器监控,优化网络效率
  • 使用canvas实现图纸标记及回显
  • 鸿蒙-自定义组件的生命周期
  • 【Linux】自动化构建工具-make/Makefile
  • week07day03(power bi dax公式 零售数据业务分析)
  • rembg报错onnxruntime_providers_tensorrt.dll
  • 精酿啤酒:一口啤酒,一份享受
  • git报: “fatal: detected dubious ownership in repository“
  • 代码随想录算法训练营第27天|93.复原IP地址、78.子集、90.子集二
  • Java微服务轻松部署服务器
  • Wordpress站点通过修改.htaccess 设置重定向实现强制 https 访问