编译原理(一):引言

文章目录

  • 语言翻译的两种基本形态
  • 编译器各阶段的工作(编译程序的工作过程)
  • 编译器扫描的遍数


【编译原理博客列表】》》》》》》


语言翻译的两种基本形态

  • 先翻译后执行
    在这里插入图片描述
  • 边翻译边执行
    在这里插入图片描述

编译器各阶段的工作(编译程序的工作过程)

编译程序的工作过程一般划分为5个阶段:

  • 词法分析
  • 语法分析
  • 语义分析和中间代码生成(可选)
  • 代码优化(可选)
  • 目标代码生成
  • PS另外还有:符号表管理和出错处理

意思解释:

  • 词法分析
    识别单词,至少分以下几大类:关键字(保留字)、标识符、字面量、特殊符号
  • 语法分析
    得到语言结构并以的形式表示;
  • 语义分析
    考察结构正确的句子是否语义合法,修改树结构
  • 中间代码生成(可选)
    生成一种既接近目标语言,又与具体机器无关的表示,便于优化与代码生成;
    (到目前为止,编译器与解释器可以一致)
  • 中间代码优化(可选)
    局部优化、循环优化、全局优化等;优化实际上是一个等价变换,变换前后的指令序列完成同样的功能,但在占用的空间上和程序执行的时间上都更省、更有效。
  • 目标代码生成
    不同形式的目标代码-汇编、可重定位、内存形式(Load-and-Go);
  • 符号表管理
    合理组织符号,便于各阶段查找、填写等;
  • 出错处理
    错误的种类-词法错、语法错、静态语义错、动态语义错

编译器扫描的遍数

每个阶段将程序完整分析一遍的工作模式称为一遍扫描

你可能感兴趣的:(#,编译原理)