设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

编程语言简史

2014-11-10 12:12| 发布者: joejoe0332| 查看: 4497| 评论: 0|原作者: deepinmind.com|来自: deepinmind.com

摘要: 一个朋友在跟我一块吃午饭的时候问了我一个问题:现代编程语言的发展历程是什么样的,它是如何发展到现在这样的?他觉得我应该能答得上来,但其实我只能说个大概。我跟他提了下机器语言,以及人们为了简化它所做的努 ...

  一个朋友在跟我一块吃午饭的时候问了我一个问题:现代编程语言的发展历程是什么样的,它是如何发展到现在这样的?他觉得我应该能答得上来,但其实我只能说个大概。


  我跟他提了下机器语言,以及人们为了简化它所做的努力,并逐渐发明了一些更抽象的语言,它们最终会被翻译成0和1。


  但是——一个偶然的机会我看到了Crockford关于Javascript的一个分享,开篇的时候他讲的正是编程语言的发展史——尽管这主要是关于JavaScript以及影响到它的那些语言——这比我讲的可要生动多了。


穿孔卡

  一些都得从穿孔卡开始说起——就是一张张打满了小洞的纸片(下面有图有真相)。


发明

  美国宪法中要求,每10年就得进行一次人口普查。到了19世纪末期,人口增长的实在是太频繁了,以至于1880的人口普查历时8年才最终完成,当时还都是通过纸和笔来完成的。

  1890年,Herman Hollerith被授命去解决这一问题,他最终使用了穿孔卡来存储数据,并用一台制表机(tabulating machine)来进行统计和排序。

  数据是根据硬纸片上打孔的位置来进行编码的,排列的方式是我们现在所熟识的行列式,并可以通过机器来进行处理。

  这次人口普查只花了一年时间便完成了。


IBM

  1896年,Hollerith成立了制表机器公司,开始了自己的事业。他把自己的设备和卡片出售给大的保险公司,以及包括英国,意大利,德国,俄罗斯,澳大利亚,加拿大,法国,挪威,波多黎各,菲律宾等国在内的多国政府(参见http://en.wikipedia.org/wiki/HermanHollerith#Inventionsand_businesses)。

  他的公司后来跟别的公司进行了合并,并在1924年最终成为了国际商业机器公司。没错,它就是IBM。


现代用途

  穿孔卡被认为是将数据录入到机器的最便捷的一种方式。

  IBM后来仍然在使用这套系统——它叫做单位记录管理(Unit Record Management)——并一直用到了70年代,当然了,这比Hollerith最初的设计要先进得多。

  Hollerith的穿孔卡流传甚广。它很快便被改进成了更简单的行列组。


80个字符的限制

  确切来说是12行,80列。你可能看到过有80个字符这个限制,是的,这是因为一张卡片最大的字符数就是80个

  没错,这已经被淘汰了好几十年了,不过80个字符的这个限制仍然延用到了现在

  这个卡片可以用来做许多事情。比如说,顾客不会直接收到帐单而是收到了一些卡片,他们将卡片仔细地打上孔后再和要付的款项一同返还给商家。公司收到这些后会再进行处理并确认这次交易。

  记账机是可编程的,它应该可以算作是世界上第一台现代的计算机


大型机/分时时代

  大型机是政府与企业用来运行关键任务的大型计算机。

  在PC机发明以前(50年代到70年代),人们能使用的计算机就只有大型机。

  大型机非常昂贵且体型巨大,只有大型的企业以及一些大学才有。几乎每台机器都是独一无二的,跟别的大型机完全不同。一套完整的系统由多个单元组成,占的地方有一整间屋子那么大。

  大型机将程序和数据存储在内存中。你得使用最原始的指令来编写程序。


还是穿孔卡

  我为什么一开始就讲到穿孔卡是有我的原因的:-)

  你得将指令在一堆卡片上进行穿孔才能运行你的程序。作为程序员,你是没有自己的计算机的,你得将程序写在这些穿孔卡上(或者是纸上,当然得有人把它们转换成穿孔卡),然后把这些卡片交给一个操作员,他会负责把它们录入到大学或者公司的机器里。过几个小时你就可以回来了,操作员会把结果打印出来给你,当然了,也会把你的卡片还给你。

  如果你漏掉了一个分号的话,你得先修复这个问题,然后等第二天再来。

  幸运的是当这些都还是常态的时候我还没出生,不过我也明白了当一个程序员是得有多苦逼。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部