首页编程语言编程语言的历史,编程语言的历史与发展

编程语言的历史,编程语言的历史与发展

cysgjjcysgjj时间2024-03-30 16:28:16分类编程语言浏览107
导读:编程语言的发展历史是怎样的?软件是用编程软件编的,编程软件又怎么来的?编程语言的发展历史是怎样的?从种类看编程语言从机器语言,汇编语言,高级语言(人类英语 从载体看编程语言从打孔纸带,仿自然语言,公式语言,图形化,自然语言从思想看编程语言从面向过程,面向对象,面向分层,从运行方式看编程语言从独立进程,托管进程,跨进程,多线程跨线程,多……...
  1. 编程语言的发展历史是怎样的?
  2. 软件是用编程软件编的,编程软件又怎么来的?

编程语言发展历史是怎样的?

从种类看编程语言

机器语言,汇编语言高级语言(人类英语)

从载体看编程语言从

编程语言的历史,编程语言的历史与发展
图片来源网络,侵删)

打孔纸带,仿自然语言公式语言,图形化,自然语言

思想看编程语言从

面向过程,面向对象,面向分层,

编程语言的历史,编程语言的历史与发展
(图片来源网络,侵删)

运行方式看编程语言从

独立进程,托管进程,跨进程,多线程跨线程,多协程跨协程

从运行结构看编程语言从

编程语言的历史,编程语言的历史与发展
(图片来源网络,侵删)

单机,双机,集群,互联网

软件是用编程软件编的,编程软件又怎么来的?

***如你经历过纸带时代,z80等计算机原理必用的单板机,就应该搞得明白编程软件怎么来的。

简单地说是从拨开关开始一步一步发展来的。

首先,计算硬件只认机器码就是一个体系的计算机只认它硬编好的机器码——指令例如定义:01011001=寄存器相加,后面跟两个表示寄存器的数就行……;一堆不同的指令组成指令集,例如x86,arm什么的。硬件厂商为了写程序的方便,把这样机器码用人好理解的简写词来表示它,叫助记符,例如上面这个可以用add表示,例如:add r5, r6 对应的机器码可能是:01011001 00010101 00010110,你都记住指令集了,原理上通过几个开关就可以把指令输入给计算机,但……人总是很懒的,不停开关总是很麻烦很枯燥很容易出错,而且计算机运行再慢也比你按开关快,开始时硬件还巨贵,所以人们想到输指令和录入分离,便宜简单的方法就是纸带机,“编程序”的可以通过打孔机在纸带上打洞洞表示一串串指令及数据,打好后通过纸带机读入到计算机执行,计算结果再通过打孔机打到纸带上,程序猿判读结果……。

初期的计算机基本就是这样工作的,会编这些机器码的自然就是“编码”了,就是现在说的程序员

渐渐地,人们在实际工作中不断开发出各种***设备,例如键盘,显示器,磁带机,磁盘机,打印机等。工具进步又带动编码方式的进步,编的码越来越复杂,这样就不能让人一个机器码一个机器码地往里敲,计算机做重复的事情毕竟快嘛,固定的东西不犯错,所以就有人用纸带机什么的编出一些可以把助记符序列转成机器码的程序,可以理解成汇编语言编译程序,有了这个东西就可以用汇编写程序,再由编译程序翻译成机器码,编程语言就从简单到复杂不断迭代发展,例如盖茨在最早时就是用纸带机写出个人机的basic解释器的。

现在不少人总认为汇编语言是由机器语言写的,所谓“中级”语言是由汇编写的,“高级”语言又是由“中级”语言写的……其实这是乌有的事,用任何一种语言都可以写出其它语言的翻译器,没错,任何语言都行,只要你够牛,用解释型basic写一个c编译器没任何问题,同样,你脑子有够用的话用机器码也可以写一个。

现在的巨无霸级“开发系统”,没十G八G都不好意思出门,无他,这都是几十年积累来的。

用一句话回答就是:软件是用编程软件编的,那么编程软件同样是用编程软件编的。

编程软件有很多功能包括编辑、编译、调试、解释、测试等等。为简单起见,我们这里只讨论编译功能。不严格地说,编译可以理解为是将人类能看懂的程序代码翻译成机器能看懂能执行的机器语言。如果Windows上写C程序,那编译器的作用就是将C程序翻译成exe后缀的二进制文件(也可能是dll,这里不去深究)。

那么编译器本身也是exe,也是机器语言,它又是谁编译出来的呢?不失一般性,我们***设有一个编写C语言的编程软件,或者直接叫编译器,它的名字是cl。有一个很好玩的事实,编译器可以自己编译自己。说的具体点,cl3.0版本可以用cl2.0版本编译生成出来,cl2.0用cl1.0编译出来。当然前提是***设这个cl2.0以上都是用C语言写的源程序。所以说有了第一个cl版本,1.0版本,后面的都不是事。

现在问题来了,第一个cl.exe怎么来的呢?有很多可能。说不定当时市面上已经有了另一款C语言编译器,而第一个cl如果是用C语言开发的,它当然就可以用那款C编译器编译出来。

而如果***设cl本身就是世界上第一个C语言编译器,怎么破?那么它肯定不可能也是用C语言写的,因为第一个嘛,还没有谁能编译C语言程序。第一个C语言编译器可以用汇编,或者B语言,或者其他的某种已经有编译器的语言编译出来。至少用汇编是绝对没有问题的。

接着思考,第一个汇编程序怎么来的?那就没有办法了,靠手写了,人工写机器语言。而在那个时候,程序是非常短小的,用人工写也不会是太复杂。汇编程序就是把汇编语言翻译成机器语言的程序。比方说一句汇编指令,叫做mov ax,bx,翻译成机器语言就是1000100111011000。简单吧。基本上接近一一对应,至于如何对应,就要查CPU厂商的硬件手册。比如因特尔386,比如酷睿i7。只要手工写出一段用二进制形式的机器语言,能[_a***_]将汇编语言翻译成等价的机器语言,就搞定了。当然这不是一两天能搞定的,但是一旦写好,后面的事就简单了。有了第一个汇编程序,就能汇编出第一个C语言编译器,有了第一个C语言编译器,就能编译出第二个第三个其他的C语言编译器。有了C语言编译器,还可以编译出其他语言,比如JAVAC#的编译器。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/10779.html

语言编译器机器码
拍森编程语言 学习互联网技术的优点