C++编辑器是用什么写的

来源:百度知道 编辑:UC知道 时间:2024/09/21 05:35:09

C 编辑器 大部分是用C写的,小部分用汇编写的,也可能有极少部分是用机器码写的。

C++编辑器是在 C编辑器 基础上发展,扩展开来的,用C和C++写了新的部分。

所以C++编辑器即能编译C++程序,也能编译C程序。

现在C++编译器通常是C++写的 似乎是个鸡生蛋的问题

一般来说一种新语言的编译器是这样的
首先用一种低级语言写一个正确的,但不一定高效的编译器
我们称之为 编译器A
然后用这种高级语言写一个高效的编译器,用A编译,于是得到了新的编译器B 由于是A编译得到的,B肯定正确,却不一定好,很多编译器级别的优化A没有做
于是需要用B来编译B自己的源代码 这时候就是最终的编译器了

现在我们可以看出最早的C编译器是汇编写的 然后用这个原始的编译器得到一个C语言写的C语言编译器,而后来的新编译器大多是用C/C++写的,适用已有的编译器编译得到

其他语言的编译器多数是C/C++写的 毕竟他们和操作系统打交道方便。

L_o_o_n_i_e - 所说的
所以C++编辑器即能编译C++程序,也能编译C程序。

并不准确,标准的C++编译器之所以能编译C程序是因为C++兼容C的绝大部分语法,也就是说C语言很多时候也是C++的代码
如果在代码适用了C++不兼容的语法如void*的强制转换之类,严格来说用C++编译器是编译不过的,需要定义 extern C来告诉系统适用C编译器来编译该部分代码 现有的IDE和编译器通常把C++和C编译器一起发布的

再来讲述一下汇编和机器码的问题, 不存在所谓小部分汇编,极少部分机器码。 因为所有的高级语言(包括C,C++)都是被编译成体系相关的汇编,然后被体系相关的汇编器直接转化成机器码
在有汇编可用的情况下没有任何必要适用机器码