zoukankan      html  css  js  c++  java
  • [编译原理]0.引论

    一、语言处理器

    语言处理器有编译器(compiler)、解释器(interpreter)

    编译器先把源程序翻译成目标程序,目标程序处理输入产生输出。

    解释器自身直接(根据源程序提示)处理输入产生输出。

    编译器的处理速度较快,但排错功能不如解释器。

    编译器:

                     

    解释器:

     

    将源程序翻译成目标程序的过程:

    二、编译器的结构

    编译器由分析(analysis)部分,和综合(synthesis)部分组成。分析部分又称为编译器的前端,综合部分又称为编译器的后端。在前端和后端之间可以加入代码优化部分。

    分析部分

    1.词法分析(lexical analysis): 这一阶段的任务是分析出输入的代码流中的词素(lexeme), 对于每个词素,词法分析器都会产生一个词法单元(token)。词法单元的格式为<token-name, attribute-value>。

    2.语法分析(syntax analysis)

    3.语义分析(semantic analysis):这个阶段有一项重要的任务是类型检查(type checking)。

    4.中间代码生成(intermediate code generation)

    可选阶段

    5.代码优化(code optimization):优化的目的是使代码跑的跟快或者更节能。

    综合部分

    6.代码生成(code generation):这一阶段的输出即为目标代码。

  • 相关阅读:
    CentOS 6.x Radius
    Linux系统优化
    Linux 常用检测命令
    Linux 修改终端命令提示符颜色
    Linux LVM简明教程
    剑指Offer 通过中序和先序遍历重建二叉树
    剑指Offer 树的子结构
    剑指Offer 从上往下打印二叉树(dfs)
    剑指Offer 把字符串转换成整数
    剑指Offer 两个链表的第一个公共结点
  • 原文地址:https://www.cnblogs.com/-zyq/p/12319611.html
Copyright © 2011-2022 走看看