其实这篇文章本来是想写写虚拟机如何搭建汇编环境的,想想还是算了,毕竟玩汇编纯属个人爱好,你们也不一定喜欢是不是。打住,(一本正经)今天我们主要聊聊编程语言的那些事。
要说现在编程语言的数量那可多了去了,算上主流的,非主流的,半路夭折的,还剩一口气的差不多2500种,当然至今还算活跃的差不多有600种。很头大是吧?(偷笑)其实完全可以再细分一下,就剩下3种了,“机器语言”,“汇编语言” 和 “高级语言”。如果你还是嫌多可以勉强把机器语言和汇编语言绑一起丢在“低级语言”的圈子里。如果再让我归类反手一个“编程语言”丢给你信不信。
说机器语言反人类绝不是空话,大家都知道,最早的电子计算机出现在1946年,而穿孔卡片式计算机出现在1935年,35年出现的是一个升级款,更早的机器应该是1931年IBM公司推出的IBM601(IBM的601乘法冲床),输入是制式的带孔纸带,输出也是制式的带孔纸带,解读的过程很考验发量的。后来呢第一台电子计算机出来了,操作方式又变了,用一个个的开关代替的打孔纸带,这次不光是费头发了还费鞋。(170平的大房间里“摸电门”)
这就是最最低级的语言——机器语言了,也称为“第一代计算机语言”。从上面来看机器语言不但费时费力,还费鞋,更费头发。
再后来就是汇编语言了,本体出现在1949年,被应用于延迟存储电子自动计算机(EDSAC)。当然这还不是汇编语言的“完全体”,只是作为助记符来用,简单来说就是先用汇编语言写好程序,然后把汇编语言按照规定翻译成二进制,再把这些信息做成打孔纸带使用,没错,汇编语言刚出现时还是用打孔纸带输入数据。终于有人灵光一闪想到把翻译这么费头发的工作交给计算机多好,我们只需要写汇编程序就好了,所以后来就有了汇编器,总算是避免和机器语言打交道了。
完全体的汇编语言也被称为“第二代计算机语言,它的出现保护了一大群人的头发。
最后就是高级语言也被称为“第三代计算机语言”,企业级应用的“扛把子”是Java,偏硬件一点的代表是“C/C++”,Python(爬虫)作为一匹黑马在人工智能领域战功赫赫,HTML让我们看到了更精美的网页,还有太多就不说了,不是对其它编程语言有偏见,你要知道还有差不多600种语言在排队呢,捡几个主流的说说就差不多了(机智)。
咱们再来说说编程语言的“低级”和“高级”,这是个相对的概念,越接近计算机底层换句话说就是越接近“机器语言”的编程语言就越低级,没有比机器语言更低级的语言了,有人会说了“电平信号”不就是吗,这个还真不是。确切地说,电平信号和二进制的“0”和“1”只是机器语言两种不同的表现方式,一种用电平高低表示,一种用人们能理解的“0”和“1”来表示,归根结底都是机器语言,
汇编语言是通过一种相对于机器语言更容易被人们接受的方式来操作硬件,当然这种方式在现在看来还是过于繁琐。说它简单在于语法,说它难在于要与硬件“掰腕子”。我们不但要知道一个指令是干什么的还要知道它是怎么运作的。
高级语言对一些经常用到的处理过程做了封装,也就是类和方法,我们不需要知道它是如何运作的,只需要知道它是干什么的可以取得什么结果就行了,这就是有人觉得高级语言比较简单的原因了(当然架构思想什么的也够你喝一壶了)。