02 编译原理概述

目录

计算机语言的发展

翻译系统

编译系统的功能分析

编译程序的总体程序

模块分类

编译逻辑过程:

编译的遍

编译的前端与后端

编译程序的生成

编译技术的应用


  1. 计算机语言的发展

    1. 机器语言
    2. 汇编语言
      1. 增加了助记符
    3. 高级语言
    4. 命令语言
      1. 及功能封装为特征
  2. 翻译系统

    1. 编译程序:
      1. 高级语言程序-->汇编/机器语言程序
      2. 整篇提交
    2. 解释程序:
      1. 单句提交
    3. 其他翻译系统:
      1. 。。。。
    4.  
  3. 编译系统的功能分析

  4. 编译程序的总体程序

    1. 模块分类

      1. 一共对应8个模块
        1. 分析
          1. 词法分析
          2. 语法分析
          3. 语义分析
        2. 翻译
          1. 中间代码生成
          2. 代码优化
          3. 目标代码生成
        3. 辅助
          1. 符号表管理
          2. 出错管理
    2. 编译逻辑过程:

      1. 词法分析
        1. 对每一个符号,每一个运算符到要进行语法分析
        2. 词法分析器:
          1. 功能:扫描并生成
          2. 输入:字符串
          3. 输出:
      2. 语法分析
        1. 功能:
          1. 依次分析
          2. 依据原程序的语法规则将源程序的单词序列组成语法短语(表示成语法树)
            1. 简单概括:将分离出来的单词再重新组成句子
            2. 语法规则:核心,重点掌握
        2. 语法分析器:
          1. 功能
            1. 发现各级语法成分的组成和结构
            2. 指出语法错误,制导翻译
          2. 输入:
            1. Token序列
          3. 输出
            1. 语法成分
      3. 语义分析
        1. 功能
          1. 分析有语法分析器给出的语法单位的语义
      4. 中间代码生成
        1. 方式
          1. 波兰表示
            1. 四元组表示
            2. 三元组表示
          2. 逆波兰表示
        2. 输入
          1. 语法序列
        3. 输出
          1. 三元组或四元组
            1. 取决于使用的哪一种中间代码
      5. 代码优化
        1. 与机器无关的优化
          1. 常量合并
          2. 循环优化
        2. 与机器有关的优化
          1. 利用寄存器
          2. 体系结构
          3. 存储策略
          4. 任务划分
      6. 目标代码生成
      7. 表格管理
        1. 在上面的6个过程中都会用到
        2. 管理各种符号表(常量、变量、标号、过程、结构。。。)
      8. 错误处理
        1. 在上面的6个过程中都会用到
    3. 编译的遍

      1. 一般一段程序都需要多遍的扫描
      2. 只有特别简单的代码才可能一遍扫描
    4. 编译的前端与后端

      1. 前端
        1. 与源语言有关,与目标机无关的部分
      2. 后端
        1. 与目标机有关的部分
  5. 编译程序的生成

    1. 设计目标
    2. T型图
    3. 交叉编译
      1. 可以用自己机器上的编译器帮别的机器编译
    4. 利用自身编译器
      1. 利用自身的编译器也可以编写一个新语言的编译器
    5. 编译程序的自展技术
      1. 人话:机器上本来只有c语言的编译器,如何做出别的语言的编译器呢?
      2. 基本原理:滚雪球
    6. 利用编译程序自动生成器
      1. LEX
        1. 自动生成词法分析程序
      2. YACC
        1. 自动生成语法分析程序
  6. 编译技术的应用

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值