下载此文档

编译器-详解.docx


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
编译器-详解
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
编译器(Compiler)
目录
1 什么是编译器
2 编译器的分类[1]
3 参考文献
什么是编译器
   
 
   
编译器-详解
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
编译器(Compiler)
目录
1 什么是编译器
2 编译器的分类[1]
3 参考文献
什么是编译器
  编译器是指从高级语言到低级语言的翻译器,同样的技术可用于不同种类语言之间的翻译。编译器是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
  它主要的目的是将便于人编写,阅读,维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件。编译器将原始程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源代码一般为高阶语言 (High-level language), 如 Pascal、C、C++、C# 、Java 等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。
  一个现代编译器的主要工作流程如下: 源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行文件 (executables)
编译器的分类[1]
  典型的编译器输出是由包含人口点的名字和地址以及外部调用的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必须采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。
  在运行过程中,编译器又可分成只依赖于源语言的编译器前端和只依赖于目标语言的编译器后端两大部分,编译器前后端结构如图所示。
  
  前端主要负责解析(parse)输入的源程序,由词法分析器和语法分析器协同工作。词法分析器负责把源程序中的“单词”(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式、语句、函数等。例如“a=b+c”,前端词法分析器看到的是“'a'='b'+'c'”,语法分析器按定义的语法,先把它们组装成表达式“b+C”,再组装成“a=b+c”的语句。前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树AST(Abstract Syntax Tree),这样后端可以在此基础上进一步优化处理。编译器后端主要负责分析、优化中间代码以及生成机器代码。一般来说所有的编译器分析、优化、变型都可以分成两大类:函数内进行和函数间进行。很明显,函数间的分析优化更准确,但需要更长的时间来完成。
  一般编译器可以分为以下两类:
  ①“本地”编译器:编译器可以生成用来在与编译器本身所在的计算机和操作系

编译器-详解 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人科技星球
  • 文件大小88 KB
  • 时间2022-04-04