世界上第一个编译器是怎么来的?开发编译器的最初衷原始目的是,想用机器自动把非机器码转化为机器码,代替人工查表机器码的手动汇编,可以设想编译软件由最原始的机器码逐代升级积累机器码汇编C及更高级语言编写

世界上第一个编译器是怎么来的?开发编译器的最初衷原始目的是,想用机器自动把非机器码转化为机器码,代替人工查表机器码的人工汇编,可以设想编译软件由最原始的机器码逐代升级积累机器码汇编C及更高级语言编写

 

告诉你一个秘密吧,有一种编译方法叫跌代法,我们将c语言切分为100份,然后让第一份写出的编译器编译第二份,依次类推,得到c100,也就是最后的c,而编译c1的编译器是由汇编写的,这样就大大降低了汇编编译器的工作量。开始简单的C1编译器重复性的进行编译工作,代替人工手动编译

世界上第一个有「编译器」作用的东西是 Zuse 给 Z4 制造的外设 Planfertigungsgerät,它可以把「易读的」输入转换成 Z4 使用的穿孔胶片带。此装置 1945 年便安装到了 Z4 上。
世界上第一个高级语言编译器是 1957 年的 Fortran,是直接用机器码敲进穿孔纸片里的。



作者:Belleve
链接:https://www.zhihu.com/question/30023409/answer/46671692
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

作者:知乎用户
链接:https://www.zhihu.com/question/30023409/answer/109419429
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

在计算机科学中,的确遇到很多这样的案例。比如我们现在使用的gcc和c语言程序的关系,记得大一那会儿一直搞不明白,感觉很奇怪。既然c语言程序要用gcc编译才能运行,而gcc本身又是c语言程序,那gcc是怎么被编译出来的,gcc吗?解答一是gcc由其他语言编译器编译出来。那其他语言的编译器又是什么编译器编译出来的呢?也就是说,总得有一个上帝一样的编译器,它一开始就不用编译。这个上帝一样的编译器到底是什么啊。学过汇编的人应该知道,汇编语言是最接近硬件的语言,如果你的程序是汇编语言写的,那么需要一个汇编器,但是最开始哪儿有汇编器。其实,汇编语言又叫助记符,每一个指令都对应着一个二进制编码。二进制码对应的机器码是机器可以识别的。然后有人查表机器码手动汇编呵呵,上帝编译器其实就是人啊……计算机早期,其实都是自己在纸条上写完程序后,然后对照编码表,一步一步翻译成机器语言的。人脑是计算速度最慢的编译器,但却是计算机的上帝编译器。另一个案例是机器学习,有很多这样的问题,输入一批数据,训练,再用输出结果,调整参数再将输出作为输入。这样一来,就是先有输出还是输入的问题,但是问题是一开始输入和输出都没有。此时的办法就是人为设定一个输入,比如一批随机输入数据。最后,还有一个比较常见的就是对数据的描述信息,我们称之为元数据meta data。元数据就是一个链,一直指向目标数据,而同时目标数据中也可以含有发现元数据的能力,这样一个双向链中,也需要一个最初的元数据,而这个元数据可能就是人为设定死的。

这个问题其实不复杂。
早期的程序员是要靠手写机器码来编程的,手动跳转,控制内存等等。
比如这张表:
http://www.jegerlehner.ch/intel/IntelCodeTable.pdf

这个表其实是汇编语言的对应机器码
查表按照指令写代码。
第一个编译器就是这种机器码写出来的,然后再在这个编译器的基础上构造更加复杂的工具,一代代的迭代,最终就构成了你所使用的各类compilers。



作者:知乎用户
链接:https://www.zhihu.com/question/30023409/answer/46486137
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

世界第一台编译器是用纸片打孔机打进去的,但是,我觉得这不重要,重要的是这个纸片的二进制形式你是怎么知道的。这要对硬件非常非常的熟悉,我们可以认为这个时候就是人在编译,世界第一台编译器就是人,真的就是人。后来通过人这个编译器就做了很多事情。就可以造出一个语言了,但是这种语言和二进制的形式非常紧密,几乎看的懂这种语言,就可直接翻译成作用于硬件的二进制了,这就是汇编。至少没以前那么麻烦了吧。在汇编基础上面就可以编一个c语言的编译器,那c语言又容易多了。但是这些语言翻译成的二进制都是可以直接作用于硬件的,不像java,python等等,java等等这些语言编译器编译成的二进制不能够直接作用于硬件的。所以,操作系统是不可以用java,python等等这些语言编写的。



作者:啥都想知道
链接:https://www.zhihu.com/question/30023409/answer/141984913
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一开始只有机器码,后来觉得太难记了,所以说在有了键盘和显示器后发明了汇编,然后发现汇编不够,开始在汇编的基础上添加公式和变量功能,然后就慢慢发展成了结构化语言.......于是C就被发明出来了,至于是怎么演化的可以自行百度

 

https://www.zhihu.com/question/30023409

 

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值