问个鸡生蛋,蛋生鸡的问题(编译器的开发)

aspnet30 2009-07-24 03:16:34
汇编是由编译器编译成二进制文件的,那编译器就是二进制直接写的咯??

再者,C语言的编译器是由什么写的,这么复制的应该先由一个高级语言来写编译器吧,不可能由二进制吧,我想是不是一个“层级”关系,比如,C语言的编译器最上层由汇编写,然后,汇编编译器又由二进制写,这样一层层解析??

我是做web开发的,但喜欢从底层研究问题,所以喜欢来C,C++版问,见笑了!

...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aspnet30 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangs2000 的回复:]
第一个编译器是用机器语言直接写的。是汇编语言的编译器。
然后用这个编译器,编写更复杂的,支持功能更多的汇编编译器。
再用这个编译器。编写其他语言的编译器。以此类推。

编译器本质上就是一个语言翻译。吧高级语言按照语义翻译成cpu指令。后来又多了很多功能。比如宏。优化。等等。到最后的IDE编译环境。
[/Quote]

和我预想的意思基本一致,谢了!
DarkChampion 2009-07-24
  • 打赏
  • 举报
回复
存在交叉编译的情况
challenge99 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fz_zhou 的回复:]
你直接看计算机怎么诞生的就知道了,

第一台计算机实际上用了很多晶体管搭起来的,实际功能还不如现在的很多计算器。

然后再慢慢开始可以按预计的程序来跑

而且一开始的程序也不是二进度的,是纸带,在纸上特定的位置打特定的孔,
[/Quote]

是不是二进制和是不是纸带没啥关系吧...
s510601017 2009-07-24
  • 打赏
  • 举报
回复
up
zgjxwl 2009-07-24
  • 打赏
  • 举报
回复
UP
lingyin55 2009-07-24
  • 打赏
  • 举报
回复
http://www.openlab.net.cn/forums/threads/414422.aspx

我不是大明 2009-07-24
  • 打赏
  • 举报
回复
你直接看计算机怎么诞生的就知道了,

第一台计算机实际上用了很多晶体管搭起来的,实际功能还不如现在的很多计算器。

然后再慢慢开始可以按预计的程序来跑

而且一开始的程序也不是二进度的,是纸带,在纸上特定的位置打特定的孔,
yangs2000 2009-07-24
  • 打赏
  • 举报
回复
第一个编译器是用机器语言直接写的。是汇编语言的编译器。
然后用这个编译器,编写更复杂的,支持功能更多的汇编编译器。
再用这个编译器。编写其他语言的编译器。以此类推。

编译器本质上就是一个语言翻译。吧高级语言按照语义翻译成cpu指令。后来又多了很多功能。比如宏。优化。等等。到最后的IDE编译环境。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧