C语言是不是汇编语言写出来的?

时间:2022-05-14 13:15:26
C语言是不是汇编语言写出来的?
C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)
自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码?

14 个解决方案

#1


C语言是不是汇编语言写出来的?
可以是,也可以不是。理论上,任何语言都可以写c语言编译器。

C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)
是的。

自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码? 
对的。不过既然是c语言,就要满足c语言规范定义的内容,否则就不叫c语言了。

#2


引用 楼主 tiwenid0 的回复:
C语言是不是汇编语言写出来的?
C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)
自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码?


感觉你把C语言和C编译器搞混了

#3


引用 楼主 tiwenid0 的回复:
C语言是不是汇编语言写出来的?

C语言是不是汇编语言写出来的?
嗯?lz这话不对吧

#4


C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)

准确的说,应该是不同指令集的CPU需要编译成不同的机器语言。
目前PC机的CPU的指令集都是一样的,所以,你在你的PC上编译了一份可执行文件,复制到你同学的PC里面,也可以用,但是复制到平板电脑里,就无法使用了。

#5


c语言在编译是时候会进行汇编,转换为机器指令,才可以运行。。。。

#6


一般不能用自身编译自己编译器的语言都是流氓.   编译器实现自举编译的版本都是要大书特书一把的.

#7


C语言是自编译语言,我的理解是自身滚动发展,不是鸡生蛋、蛋生鸡。

#8


参考Tiny C源代码。

#9


最早是,后来就不是了。
现在GCC好像是用C++开发的。

#10


borland TC2.0 是的,是使用汇编语言直接写出来的,包括他的IDE界面,都是用汇编写的;
早期的编译器,甚至和全部的源代码一起发行。

这个编译器的库里,甚至有库的初始化代码的,汇编源代码。
使用时,可能还需要自己汇编出来,生成.obj,不过提供了一个 build.bat 专门做这个。

另外,borland 早期的 pascal 也是用汇编写的。

#11


蛋生鸡,,然后开始滚动发展,就是这样

#12


蛋生鸡,和鸡生蛋的问题!
其实在计算机世界里,是先有的汇编,然后有汇编写成的编译器,然后再有高级语言编译器。C的第一版编译器肯定是汇编写成的,而后就可以有C语言写成的编译器。。。越来越多的语言以及编译器。。。

#13


你是问C语言的编译器吧

#14


C语言是不是汇编语言写出来的?

应该是“C的编译器是不是汇编语言写出来的?”

答案是,早期是。那时没有任何现成的语言的编译器,只有汇编语言及其汇编器。人们用汇编写了一个简单语法的编译器,然后由这个编译器及其简单语法,去写更复杂语法的编译器,直到语言和编译器都成熟。
先在有很多语言及其实现了,所以,用Java也可以写C的编译器,用Python也可以写编译器。

C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)

是,但是LZ举的例子不太好,AMD和intel的CPU是兼容的,都是x86的架构,所以“目标代码”是兼容的,不需要另外翻译。
举x86和mips或者arm就比较好,这种情况下,一份代码,多处编译。

自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码? 

首先,“语法风格”都不同了,那还是C么?所以其实就是LZ自行开发一个语言而已。
至于CPU不同,那么目标代码一定是不一样的。

#1


C语言是不是汇编语言写出来的?
可以是,也可以不是。理论上,任何语言都可以写c语言编译器。

C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)
是的。

自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码? 
对的。不过既然是c语言,就要满足c语言规范定义的内容,否则就不叫c语言了。

#2


引用 楼主 tiwenid0 的回复:
C语言是不是汇编语言写出来的?
C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)
自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码?


感觉你把C语言和C编译器搞混了

#3


引用 楼主 tiwenid0 的回复:
C语言是不是汇编语言写出来的?

C语言是不是汇编语言写出来的?
嗯?lz这话不对吧

#4


C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)

准确的说,应该是不同指令集的CPU需要编译成不同的机器语言。
目前PC机的CPU的指令集都是一样的,所以,你在你的PC上编译了一份可执行文件,复制到你同学的PC里面,也可以用,但是复制到平板电脑里,就无法使用了。

#5


c语言在编译是时候会进行汇编,转换为机器指令,才可以运行。。。。

#6


一般不能用自身编译自己编译器的语言都是流氓.   编译器实现自举编译的版本都是要大书特书一把的.

#7


C语言是自编译语言,我的理解是自身滚动发展,不是鸡生蛋、蛋生鸡。

#8


参考Tiny C源代码。

#9


最早是,后来就不是了。
现在GCC好像是用C++开发的。

#10


borland TC2.0 是的,是使用汇编语言直接写出来的,包括他的IDE界面,都是用汇编写的;
早期的编译器,甚至和全部的源代码一起发行。

这个编译器的库里,甚至有库的初始化代码的,汇编源代码。
使用时,可能还需要自己汇编出来,生成.obj,不过提供了一个 build.bat 专门做这个。

另外,borland 早期的 pascal 也是用汇编写的。

#11


蛋生鸡,,然后开始滚动发展,就是这样

#12


蛋生鸡,和鸡生蛋的问题!
其实在计算机世界里,是先有的汇编,然后有汇编写成的编译器,然后再有高级语言编译器。C的第一版编译器肯定是汇编写成的,而后就可以有C语言写成的编译器。。。越来越多的语言以及编译器。。。

#13


你是问C语言的编译器吧

#14


C语言是不是汇编语言写出来的?

应该是“C的编译器是不是汇编语言写出来的?”

答案是,早期是。那时没有任何现成的语言的编译器,只有汇编语言及其汇编器。人们用汇编写了一个简单语法的编译器,然后由这个编译器及其简单语法,去写更复杂语法的编译器,直到语言和编译器都成熟。
先在有很多语言及其实现了,所以,用Java也可以写C的编译器,用Python也可以写编译器。

C语言写的程序不同的CPU是否要翻译成不同的机器语言?(例如有intel和amd的CPU是否要分别编译)

是,但是LZ举的例子不太好,AMD和intel的CPU是兼容的,都是x86的架构,所以“目标代码”是兼容的,不需要另外翻译。
举x86和mips或者arm就比较好,这种情况下,一份代码,多处编译。

自己想写一个不同语法风格的C语言是不是要实现各个不同的CPU的汇编代码? 

首先,“语法风格”都不同了,那还是C么?所以其实就是LZ自行开发一个语言而已。
至于CPU不同,那么目标代码一定是不一样的。