【召唤精灵】【顾师傅学编程】编程语言发展史
用户:
士官长z查看:0 回复:2 评论:0 创建时间:2018-12-24T17:19:03
大家好,我是顾师傅。今天来给大家分享一些编程趣闻。
今天要讲的是编程语言发展史,你知道几种呢?
- 世界上第一个可编程的机器是由法国人Joseph Marie Jacquard于1801年发明的雅卡尔织布机,使用打孔卡片进行编程,控制织布机织出不同图案的布,图片来自喵。 <figure><noscript>
</noscript>
</figure>
- 英国诗人拜伦的女儿、数学家Ada Lovelace描述了一个计算伯努利数的算法和程序,被认为是最早的计算机程序,并被尊为第一位程序员。但是,1815年才出生的她,不可能比上一则说的Jacquard更早地进行编程工作。后来喵国防部组织开展研发的Ada语言以这位女数学家的名字命名。
- 我们一般认为1957年发明的Fortran是世界上第一门高级编程语言,而实际上早在1942至1945年,发明了世界上第一台图灵完全的通用数字计算机Z3的德国工程师Konrad Zuse还研发了一种叫作Plankalkül的语言。可惜的是,Z3在1944年柏林轰炸中被炸毁,Plankalkül在战争结束前既没有正式发表,也没有被实现。这门语言的设计一直到了1972年才被正式发表出来,而1998年第一个该语言的编译器才首次被实现。这门语言对后世的编程语言设计几乎没有任何影响,但是它却考虑了包括赋值语句、子程序、条件判断、循环、浮点小数计算、数组、拥有层次结构的结构体、断言、异常处理、结果导向执行(注:书上写作目标搜寻,英文似乎是goal-directed execution)等后来许多语言都不具有的功能,这些设计在当时以及之后的很长一段时间内都是非常具有先进性的。
- 编程语言Perl的名字来源于珍珠Pearl,发明者Larry希望给语言起一个简短而有积极含义的名称。受到这个影响,松本行弘在发明Ruby的时候也从珠宝中选择名字,并且选择了Ruby。松本还提到,Ruby还跟诞生石(birthstone)有关,可是生于4月的松本行弘为什么选择了七月份出生的同事的诞生石红宝石呢,一定是好基友啊。
- JavaScript的命名还真跟Java有关,所以他们不是喵和雷峰塔的关系,更像是印度和印度尼西亚的关系。Netscape希望这是一个Java的客户端版本,一种轻型的脚本语言,并且不像Java和C++那样针对专业的开发人员。
- Lua的意思是月亮女神,是由三个巴西人Roberto Ierusalimschy、Waldemar Celes、Luiz Henrique de Figueiredo发明。发明的原因是巴西石油公司(当然,是一个国企)PETROBRAS没办法使用指定的硬件,使用公众的资金需要通过一系列的严格手续,并且现有设备中什么平台什么系统都有,所以Lua被设计成一个基于ANSI C开发可以任意跨平台的语言。
- Smalltalk现在已经很难见到,但是他影响了我们今天还在使用的许许多多语言,以及后来的所有面向对象编程语言的开发者。
- Brainfuck是一门奇葩编程语言,由Urban Müller发明,只有8种符号,语言本身难懂,但是他是图灵完全的,也就是你用C、Java或者Haskell实现的算法都能用brainfuck来实现。这门语言除了高效也并不是完全没有用,用来学习和理解图灵机,以及作为编程习题,都是挺不错的。
- 说补充一下Whitespace。好吧,这门语言更奇葩了,使用空格和制表符(TAB)的交替组合来表示程序,其他字符全部是注释,也就是能看得见的内容全是注释。
- 编程语言Haskell的名字来源于逻辑学家Haskell Curry,他提出的柯里化(currying)是一种把多元函数变成若干个一元函数的嵌套的方法,使得形式语义学里面,研究lambda演算可以只针对一元的lambda演算进行,然后通过currying推广。Haskell Curry的厉害之处在于一帮人为了纪念他搞出了Haskell语言,而另一帮人为了纪念他又搞出了Curry语言。
- 现在iOS开发者所使用的、在现在大红大紫的Objective-C,是一个和C++同岁的语言,都是早期对C语言进行拓展的面向对象编程的开拓者。不过iOS上使用的Objective-C 2.0,跟Objective-C的作者Brad Cox没有一点关系,“除了我喜欢Apple的产品以外,我同他们没有什么关系”。
回复
上一页第 1 页 / 共 1 页下一页