编程语言是怎么开发的(编程语言是怎样开发的)
本文目录
编程语言是怎样开发的
一开始使用汇编写的,后来也有用高效的语言来写较低效却比较简单的语言(比如c++写python 的库,:)这也算开发吧~)(但python不是c++写得)。其实很难说一种语言完全是怎样什么开发的,都是一开始定好了语法,写好了编译器,然后后人不断完善那些库。
编程语言 是通过什么开发出来的
你所说的VB是由什么编写的?VB是自身是一门语言,和汉语是怎么来的是一个道理。你要问的应该是VB开发工具是由什么编写的吧?VB开发工具以及VS开发工具以及JAVA开发工具都是由编译器的原始内核是汇编直接实现的。然后通过迭代的方式,用自己语言进一步实现自己的更完整的编译器的。没有什么语言那么神,可以直接写其他语言的编译器(开发工具),要不然直接去写那个不就好了.....计算机语言主要分为四类:低级语言,高级语言,专用语言,脚本语言低级语言:没有固定的语法与用法,是计算机语言,比如二进制语言。高级语言:最早的是由尼法克公司开发成功的Short Code。但是真正得到推广应用的是 Fortran,是IBM公司的一个员工编写而来。C语言也是最早的语言,C++、C#、以及JAVA都有他的影子。至于专有语言和脚本语言我了解的不多....就不多说了..
像c++这样的编程语言是怎么创造出来的
编程语言的发展是随着硬件一起发展的,最初没有当前成熟的101键盘前,技术人员是无法用字母输入命令和语句的,显然也不存在任何高级语言的。机械计算机我就不谈了,太遥远,第一台电子计算机是ENIAC是1946年制造的,开始用的是连接线,后来用的是打孔机,以纸带作为输入,一根纸带边上是齿孔用于步进电机带动纸带,类似现在的针式打印机的纸张,当然纸带比针式打印机纸张窄,编程人员事先写好二进制指令的编码和数据,逐一在纸带上打孔,比如一个指令和数据是8位,如果是1,则打一个孔,如果是0则不打孔,打完一个字节让步进电机进一格,打后面一个数据。所有程序代码和数据打完,将纸带装到计算机的读入设备中并逐一读入并运行,当时还没有存储器,所以执行完如果需要再运算一遍,要复位重新装纸带。当然如果程序要改写就得重新打一卷纸带。这就是电子计算机最原始的编程(机械计算机则还要麻烦),后来有了存储器,还是用纸带输入程序,然后可以重复运算,因为输入的指令和数据都存入存储器了,不需要再跑一遍(真正意义的跑)。此时程序员编写的程序都是机器语言,形式就是二进制码类似这样010101001100110101101010...后来人们觉得这样很麻烦,考虑到一种CPU的指令都是固定,如果有一种简单容易能帮助记忆符号来代替一串二进制就方便多了,因此设计出了汇编语言,因此汇编指令称为助记符,比如MOV,ADD,JMP等等。这时候就需要一种新的输入设备代替打孔机,而且能直接连接在计算机上,之后随着晶体管的发展,单片机出现,一个按钮代表一个指令,同时结合数码键(0-9,A-F)输入16进制数据,让设备转成二进制数据,这应该算最早的编译器了,属于硬件编译器。再之后,人们发现计算机不仅可以处理数据,还可以处理文本,因此有了ASC码,ASC码也发展了好几代,既然可以处理文本,随着计算机设备的发展,把打字机键盘复制过来,扩展单片机的按钮,这样计算机键盘的雏形出现了,取消了专用汇编指令键,而改用程序来翻译输入的文本,比如单个汇编指令MOV改用键盘输入这三个字母的文本,由翻译程序翻译成二级制码,这应该是最早的源代码了,而这个翻译程序最先当然还是用单片机开发的,而这个翻译程序就是最早的汇编指令编译器了。有了汇编指令编译器,人们可以直接通过键盘输入汇编指令,由编译器编译成二级制码执行程序,有了汇编编译器,人们不仅直接用于各种科研运算,而且开发了更高级的语言了,那么后来各种语言蓬勃发展起来了,在C语言前还有A,B,以及其他高级语言陆续出现,比如1954年的Fortran。所以你可以看到,技术都是迭代发展的,你只要学习到足够的知识,可以用任何语言开发你的编译器,当然这可是件不简单的任务,同时,所开发的编译器受你所用的语言限制。
本文相关文章:
c++单元测试工具(c++开发必备:最好用的单元测试工具:Parasoftc++Test9.0,该如何解决)
2024年9月7日 06:45
head first java英文版电子书(推荐几本适合java开发者必看的书,并且拍个序,先看什么后看什么谢谢~~)
2024年9月6日 10:05
linux内核视频教程(哪家的S5PV210开发板有视频教程呢主要是Linux和Android部分)
2024年9月6日 02:15
java编程游戏推荐(《java程序设计》实训——网络三子棋游戏开发)
2024年9月4日 19:35
java开发工程师需要具备的能力(合格的Java开发人员应该具备的能力)
2024年9月3日 10:55
swift playground(swift playground里怎么开发ui界面)
2024年8月30日 18:20
java容器的概念(java开发中很多都提到了容器,容器到底里什么概念,详细点说一下,谢谢)
2024年8月28日 07:10
安卓系统属于系统软件吗(请问 安卓系统是硬件还是软件开发后使用也需要服务器吗怎么开发的)
2024年8月28日 04:35
xamarin安卓开发(用xamarin和原生开发有什么区别)
2024年8月27日 22:50
昆山今日疫情实时报(昆山市体育中心开放时间+区域昆山开发区体育休闲中心什么时候可以建好)
2024年8月24日 06:51
有了源码怎么做小程序(有小程序前端源码如何基于该基础开发后端)
2024年8月23日 15:00
更多文章:
jquery设置select选中(jquery怎么根据value来动态选中select下的option)
2024年7月13日 01:01
fished out(fish out的用法fish out是不是捕捞的意思每天捕捞鱼能用fish out这短语吗怎么用英文说)
2024年8月27日 17:05
nginx负载均衡数据库(nginx负载均衡怎么访问数据库)
2024年7月22日 02:34
用于字符串比较的库函数是(函数sstrcmp()的功能是对两个字符串进行比较)
2024年7月24日 07:56
teamviewer(teamviewer和teamviewer host有什么区别求指教)
2024年7月23日 09:33
简述for与foreach语句的区别(for in,for of, for,forEach,map的区别)
2024年7月12日 09:57
nginx停止和启动命令(重启nginx服务器用哪个指令比较好)
2024年6月13日 12:58
部署图显示代码本身的结构(用图形画出一个web程序部署在tomcat的基本目录结构)
2024年3月15日 05:50
conservative party(conservative什么意思)
2024年5月3日 09:53
java中相等怎么表示(java怎么比较两个字符串是否相等)
2024年6月15日 03:08
setinterval越来越快(setinterval速度重叠)
2024年7月16日 17:48
数控css和rpm什么意思(数控车床操作键盘上26个字母,分别是什么意思啊)
2024年7月23日 12:25
json格式化工具有哪些(有哪些方法可以将JSON格式的数据集转化为EXCEL格式)
2024年7月18日 04:18