大数跨境

编程趣事|编程祖先:打孔卡的0和1

编程趣事|编程祖先:打孔卡的0和1 AI小白实战营
2021-04-21
4



1801年,第一句“hello world”诞生了

至今编程也有快300年历史


那300年前的代码

是用什么编写的呢?



往下看,解锁编程趣事👇




#打孔卡编程

我们知道,计算机是用0和1来交流的。最早期的代码就是用0和1写出来,我们将此称为“机器语言”


计算机靠机器语言来直接运行,输入方法是靠打孔带(一个条带上面有实心空心的小点,对应1和0)。



1725年,法国人布乔(Basile Bouchon)发明了穿孔卡,并用于控制纺织机绘制图案。


基本设计思路如下:在织布机在编织过程中,编织针往复滑动,根据打孔卡上小孔的存在与否,正对小孔穿孔的编织针可以通过钩起经线,反之编织针则被纸带挡住。


因而,编织针就可以自动按照在打孔卡上预先设计的图案去挑选经线、编织图案。这种编织图案的“程序”也就“储存”在穿孔纸带的小孔之中。


穿孔卡设计(图片来源于网络)

这种发展被认为是半自动化机械的第一个工业应用。


1801年,Joseph Marie Jacquard用打孔卡为一台织布机编写指令,在挂毯上织出了“hello world”的字样,但在当时的艺术圈和时尚圈对这项工作的反响并不热烈,因为字样没有区分大小写。


后来将这种设计的打孔卡应用于提花织机上,这就是打孔纸带的雏形。


利用卡上不同位置孔的组合可以表示不同的信息,这种思想和方法在很长一段时间内得到广泛的使用。


穿孔纸带(图片来源于网络)

历史上第一位程序员Ada·Lovelace就是利用打孔卡片的控制来实现公式计算等复杂的操作。


18世纪末期到19世纪后期,穿孔磁带和穿孔卡片被广泛用于“程序化”的织机和其他工业机器。



#磁性存储

利用穿孔卡形式的机械存储,信息的读取和写入,都依赖于纸带上孔的设计,随着电磁学的发展,从机械自动化逐步发展到电气自动化。


存储核心是利用两个状态二进制来表征数据信息。


磁性材料,利用磁矩的取向,从而替代机械打孔,后续出现的磁带存储技术,一定程度上还保留着打孔卡设计的影子。


1933年,Eduard Schueller发明了环形磁头,这是磁记录的一个重要进展。


磁场可以被控制在很小范围内,从而实现了较高密度的信息存储。然而,磁带用于计算机则是从1951年开始的。



磁带存储是当时存储器设备中单位存储信息成本最低、容量最大、标准化程度最高的常用存储介质,也是一些重要资料档案的首选存储介质之一。




#现代编程

1936 年,Alan Turing(图灵)发明了世间一切程序语言的最终形态——图灵机,但很快他就被英国军情六处“请”去当007了,以至于他根本来不及为这些语言申请专利


如今,计算机世界赫赫有名的图灵奖就是以他的名字命名的。


到了20世纪40年代,一些直接采用布线和开关来进行程序控制的“计算机”出现了,工程师们当时这么做,据说是为了避开“用空格还是用制表符缩进”这样的论战。


传说当时负责设计ENIAC的工程师中间曾经发生过这样的争论:


1.空格比制表符好

2.制表符比空格好

3.4个空格比8个空格好

4.什么?用2个空格的“统统烧死”



1958年 , John McCarthy发明LISP。由于冷战期间的战略括号资源储备所造成的巨大成本,LISP从未流行过。

尽管欠缺足够的流行度,LISP(现在叫做“Lisp”,有时叫“Arc”)仍然被视作一门有影响力的语言,在关键的算法思想诸如递归和提升逼格上尤为典范。




接着70年代80年代,C语言、Python、Java等各种编程语言诞生……


1972 年,Dennis Ritchie发明了C语言。从此,无数程序员为其前赴后继,聪明绝顶者不在少数。


1983 年,Bjarne Stroustrup把他所听说过的一切都试图嫁接到C语言上,梦醒之后,他创造了C++语言,专治各种C语言的不服。


Python诞生于1989年的一个圣诞节,其创作者Guido van Rossum为了打发圣诞节假期的无聊,便开始了Python语言的编写。


1995年,James Gosling发明Java。Java拥有单实现继承和多接口继承,是一个相对繁冗的面向对象的语言。


这些语言到现在也是被多数开发者所用,也在不断的更新迭代,编程语言每一次的创新与创造,都将关乎未来。







#THE END

看完了编程祖先历史
你想自身体验编程到底是什么吗?

如果你想——
#用好玩有趣的方式学习编程 


欢迎到公众号菜单栏
点击“领体验课”~


【声明】内容源于网络
0
0
AI小白实战营
1234
内容 163
粉丝 0
AI小白实战营 1234
总阅读30
粉丝0
内容163