【编译原理】第一章引论

版权声明:本文为博主原创文章,转载请标明出处 https://blog.csdn.net/C2681595858/article/details/82773295

1.1语言处理器

  • 编译器:将源语言翻译成目标语言。
  • 解释器: 直接利用用户提供的输入执行源程序中指定的操作。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

1.2一个编译器的结构

  • 由两个部分组成:分析部分和综合部分。
    • 分析部分:把源程序分解成多个组成部分,并在这些要素之上加上语法结构。程序语法出错在这个阶段检测并反馈。产生符号表,并将符号表和中间表示形式一起传送给综合部分。
    • 综合部分:根据前段传回来的信息构造目标程序。
    • 通常分析部分称为编译器的前段,综合部分称为编译器的后端。
  • 一个编译器的各个步骤图示:
    在这里插入图片描述
  • 词法分析器产生如下的词法单元:
<token-name, attribute-value>
  • 语法分析产生语法树。
  • 语义分析检查是否符合目标语言的语法规范。
  • 中间代码生成:三地址代码。
    • 三地址码注意事项:①每个三地址赋值指令的右端最多只有1个运算符。
      ②编译器应生成一个临时名字,以存放一个三地址指令计算得到的值。
      ③有些三地址指令的运算分量少于三个。

猜你喜欢

转载自blog.csdn.net/C2681595858/article/details/82773295