1. c语言编译器如何运行
编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。
1、预处理阶段:
主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)
2、汇编阶段:
插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。
3、编译阶段:
将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。
4、链接阶段:
在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。
2. 编译器如何将编程语言翻译成目标CPU的特定指令集
编译器如何将编程语言翻译成目标CPU的特定指令集?
MSIL
MSIL是将.NET代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.NET程序时,编译器将源代码翻译成Microsoft 中间语言 (MSIL),它是一组可以有效地转换为本机代码且独立于CPU的指令。当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码。由于公共语言运行库支持多种实时编译器,因此同一段msil代码可以被不同的编译器实时编译并运行在不同的结构上。从理论上来说,MSIL将消除多年以来业界中不同语言之间的纷争。在.NET的世界中可能出现下面的情况一部分代码可以用EFFIL实现,另一部分代码使用C#或VB.NET完成的,但是最后这些代码都将被转换为中间语言。
3. c语言翻译器
不知道你这样问的意思。不过看到分值挺诱人的,我也来说两句。
C语言翻译器。翻译器是早前的叫法,现在大都叫编译器。
以前条件比较艰苦,开发的时候,程序的编辑工具、编译工具、链接工具、调试环境等等这些统称为“工具链”的东东都是分开的(意思是说它们是不同的几个软件),说得通俗一点,就是写代码需要一个编辑软件,编译写好的代码,又需要用到别的软件,这样极其的不方便。
发展到现代,很多开发过程都集成到一个软件去了,就是说上面介绍的那些编写、编译、链接甚至是执行等等这些开发环节在一个集成开发软件当中都能完成。
所以,现在通常所说的编译,已经隐含地表示一个程序从预编译、编译、汇编、链接等等这么些过程了。
什么是编译(也就是你所问的翻译)?编译就是将人认识的高级一点的C语言翻译成机器认识的低级一点的机器码(就是二进制码,全是0和1)。翻译器呢,就是完成这个过程的一个软件啦。
这么说,你能不能理解?
速度采纳给分。
4. 怎么把用c语言开发的程序变成软件
1、打开Microsoft Visual Studio;
5. java编译器如何实现把原始的代码翻译成目标机的机器语言
你编写的.java 经过 javac.exe 编译后变成了字解码文件 .class ;.class 是java 用来实现跨平台的一门技术,C# 也是照着它学做出来的,.class 经过 本地 jvm.dll 装在jre 中,解释执行。就变成了机器语言。不同的jvm 编写不同。linux mac windows 等。具体的你可以去看 java 编程思想。不过这个对你以后工作没有什么帮助,也不会有人问,理解一下即可。