编译器入门问题
来源:互联网 发布:java获取本地ip地址 编辑:程序博客网 时间:2024/05/22 00:27
1、什么是编译器
编译器是一种翻译程序,作用是将一种计算机语言翻译成另一种计算机语言。将高级语言如C翻译成低级语言如汇编或机器码叫编译,反之则称反编译。
2、什么是解释器
解释程序是一种把高级编程语言直接运行的转译程序。解释器不会一次把整个程序转译出来。它每转译一行程序叙述就立刻运行,然后再转译下一行,再运行,如此不停的进行下去。
HOW?有哪些例子?
3、什么是目标文件(中间代码)
目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有被调整。其实它本身就是按照可执行文件格式存储的,只是跟真正的可执行文件在结构上稍有不同。
目标文件中的内容至少有编译后的机器指令代码、数据。没错,除了这些内容以外,目标文件中还包括了链接时所须要的一些信息,比如符号表、调试信息、字符串等。一般目标文件将这些信息按不同的属性,以"节"(Section)的形式存储,有时候也叫"段"(Segment)
4、编译过程有哪些
编译器的编译过程通常有:词法分析、预处理、解析、文法分析、代码生成以及代码优化。
一般从源代码生成PE文件的过程有: 源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 连接器 (Linker) → 可执行程序 (executables)
5、什么是交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。
要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下: a、在Windows PC上,利用ADS(ARM 开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。 b、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。 c、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码。
6、有哪些常见编译器
C的只知道VC的Nmake,GCC.
7、编译器输出的是什么
编译器的输入叫源代码,输出叫目标代码。
典型的编译器输出是由包含入口点的名字和地址, 以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。
8、什么是编译工具链(toolchain)
指编译过程中所用到的工具集合,如GNU Assembler "as", GNU Linker "ld"
The complete set of tools used in the compilation process is referred to as a toolchain.
- 编译器入门问题
- 编译器入门
- 编译器问题
- Lex 编译器入门
- GCC/G++ 编译器入门
- Java编译器使用入门
- Java编译器使用入门
- GCC编译器入门
- GCC编译器入门[转载]
- VC编译器的问题
- 编译器的优化问题
- 编译器优化问题
- vi编译器问题
- vs编译器问题
- gcc 编译器[-Wreorder]问题
- 交叉编译器安装问题
- GCC编译器的问题
- MATLAB的编译器问题
- 由13位数字组成的中国标准书号校验码计算实例
- 数据库范式
- dom4j学习总结(一)
- java中格式化输出数字
- 使用Hashtable对字符串进行碰撞
- 编译器入门问题
- 一个把整型数组包装成类的例子
- google风格代码
- 明媚千点光
- DOM 文档对象模型
- VC常用数据类型的使用
- mysql存储过程学习总结-操作符
- eclipse快捷键大全 (zhuan)
- 开会注意事项