说到编程语言,我们通常会想到JAVA、C#之类的。不知道你有没有好奇过,编程语言到底是怎么发展而来的。别急,听小编慢慢道来。
编程语言的定义为计算机和人都能识别的语言,通过编程语言,程序员将指令发给计算机,让计算机按照程序员的要求做出某种反应。根据这个定义,可能会有人觉得,编程语言的出现是晚于计算机的,但事实相反,最早的编程语言是要早于电子计算机的。之前我们在《计算机奇女艾达·拜伦》这篇文章中提到过,最早的程序出现在艾达·拜伦在1842年的差分机手稿中,此时距离电子计算机的出现还有差不多一个世纪。艾达·拜伦在手稿中提出用打孔纸带来控制差分机,并采用循环嵌套的方式来节约成本、优化计算。虽然艾达写下的这些程序在当时并没有实际运行过,但里面的许多编程理念在后世均有使用,所以IT界达成共识,尊艾达·拜伦为“程序员之母”。
抛开这些“概念程序”不谈,我们一般认为的编程语言与电子计算机同时诞生于上世纪四十年代。编程语言的发展主要经历了机器语言、汇编语言、高级语言三个时代,越来越通用、越来越亲民是其主要发展路线。最早的编程语言被称为“机器语言”,它也是最基本的编程语言,完全由0和1构成,编写的时候在纸带上打孔,放入机器中运行,是就是“1”,否就是“0”,如果有虫子飞到纸带上面,就会导致“bug”,这也是“bug”一词的由来。
机器语言的优点显而易见,更快。因为这就是计算机的原生语言,好比有人用你家乡话和你聊天,你的大脑反应起来就很快。但问题是,我们都不是机器人,我们是人类,机器语言对于人类而言如同天书,不仅复杂、冗长,还特别容易错,效率非常低下,于是,汇编语言应运而生。
其实汇编语言相对于我们熟悉的这些编程语言而言也很复杂,但它最起码加入了人的语言在里面,不完全是机器语言。它会用到英文缩写,比如“MOV”代表数据传递,“ADD”代表加,机器会自动将这些缩写符号转变为0和1的二进制码。可以说,汇编语言其实相当于在机器语言上套了曾皮,本质上还是使用机器语言的逻辑,所以它继承了机器语言的缺点:繁琐、容易错,最关键的是严重依赖机器本身,泛用性很差。但不像机器语言基本上已被淘汰,汇编语言还有一定的应用空间,只是都集中在底层硬件操作和一些小程序上。
我们熟悉的所有编程语言,无论是中小学信息课教的“BASIC”和听起来更高大上的“C++”“python”和“JAVA”,都属于高级语言。高级语言的特点就是可以将多条指令整合成一条进行发送。计算机并不能直接识别高级语言,需要将其翻译成机器语言后才能运行,所以需要一个翻译的过程,速度相对于前两种语言而言就会更满一点,但它的优点显而易见。因为更加贴近自然语言,它极大地降低了编程的门槛,提高了编程的效率,而且拥有很强的通用性。世界上第一个高级语言名叫FORTRAN,由一名叫做约翰·巴克斯的人于1954年发明,至今,FORTRAN还在许多高端领域有着广泛的应用。令程序员们又爱又恨的C语言诞生于1970年,与它有继承关系的C++诞生于1983年,而JAVA、Python等语言都诞生于90年代,属于编程语言中的后辈了。