前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >程序如何"进入"计算机

程序如何"进入"计算机

作者头像
硬核编程
发布2019-08-19 21:32:46
5100
发布2019-08-19 21:32:46
举报

转载请联系授权

01

机器编程需求

你应该记得在前面,我们一步步讲了例子程序,当时为了简单,我们假设程序已经魔法般在内存里了,但事实是,程序需要加载进内存,这不是魔法,是计算机科学!

给机器编程这个需求,早在计算机出现之前就有了。

最著名的例子来自纺织业,如果你只想织一块红色大桌布,可以直接放红线进织布机。但如果想要图案怎么办? 比如条纹或者方格,工人要每隔一会儿 调整一次织布机,因为非常消耗劳动力,所以图案纺织品很贵,特定位置有没有穿孔,决定了线是高是低,横线是从上/从下穿过。为了让每行图案不同,纸卡连成长条,形成连续指令,听起来很熟?很多人认为雅卡尔织布机是最早的编程

02

穿孔纸卡用于人口普查

事实证明 穿孔纸卡便宜、可靠、也易懂。

近一个世纪后,穿孔纸卡用于 1890 年美国人口普查,我们在第一节提过,一张卡存一个人的信息,比如种族、婚姻状况、子女数量、出生国家等等。

针对每个问题,人口普查工作者会在对应位置打孔,当卡片插入汇总机,孔会让对应总和值+1。可以插入整个国家人口的卡片,在结束后得到各个总值。

值得注意的是,早期汇总机不算计算机,因为它们只做一件事 - 汇总数据,操作是固定的,不能编程。穿孔纸卡存的是数据,不是程序。

03

插线板

之后60年,这些机器被加强,可以做减、乘、除,甚至可以做一些小决定,决定何时执行某指令。为了正确执行不同计算,程序员需要某种控制面板。面板有很多小插孔,程序员可以插电线,让机器的不同部分 互相传数据和信号,因此也叫 "插线板"。

不幸的是, 这意味着 运行不同程序要重新接线,所以到 1920 年代,控制面板变成了可拔插。让编程更方便,可以给机器插入不同程序。

比如,一个插线板算销售税,另一个算工资单,但给插线板编程很复杂,图中乱成一团的线 。负责算盈亏总额 用于 IBM 402 核算机。

在 1940 年代这样做很流行,用插线板编程不只在机电计算机流行,世上第一台通用电子计算机,ENIAC,完成于 1946 年,用了一大堆插线板。程序在纸上设计好之后,给 ENIAC 连线,最多可能花三个星期。

因为早期计算机非常昂贵,停机几个星期只为换程序,完全无法接受。人们急需更快、更灵活的新方式来编程。

04

存储程序计算机

幸运的是,到 1940 年代晚期 1950 年代初,内存变得价格下降, 容量上升。 与其把程序存在插线板,存在内存变得可行。这样程序易于修改、方便 CPU 快速读取,这类机器叫 "存储程序计算机"。

如果内存足够,不仅可以存要运行的程序,还可以存程序需要的数据,包括程序运行时产生的新数据,程序和数据都存在一个地方,叫 "冯诺依曼结构"。命名自 约翰·冯·诺依曼,杰出的数学家和物理学家,参与了曼哈顿计划和早期电子计算机项目。

他曾说:我在思考比炸弹重要得多的东西—计算机。

冯诺依曼计算机的标志是,一个处理器(有算术逻辑单元)+数据寄存器+指令寄存器+指令地址寄存器+内存(负责存数据和指令)。希望这听起来很耳熟,因为前面我们造了一个冯诺依曼计算机。第一台冯诺依曼架构的"存储程序计算机",由曼彻斯特大学于 1948 年建造完成,绰号"宝宝"。甚至你现在看视频的计算机,也在用一样的架构。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员成长充电站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01
  • 机器编程需求
  • 02
  • 穿孔纸卡用于人口普查
  • 03
  • 插线板
  • 04
  • 存储程序计算机
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档