编译原理笔记(1)

编译原理笔记(1)

课程安排:

教材:陈火旺,《程序设计语言编译原理》, 国防工业出版社

第一章 引论

1.1 什么是编译程序

  • 机器语言
  • 汇编语言
  • 高级语言
  • 脚本(描述)语言

低级语言: 字位码、 机器语言、 汇编语言

高级语言: …

编译程序: 能够把某一种语言程序(称为源语言程序)转换成另一种语言程序(称为目标程序),而后者与前者在逻辑上等价,这种程序成为编译程序。

编译原理笔记(1)_第1张图片

链接程序的两个主要任务:

  1. 装入
  2. 连接

解释程序同时处理源程序和数据,边解释边执行。

编译程序的分类

  • 诊断编译程序
  • 优化编译程序
  • 交叉编译程序
  • 可变目标编译程序

1.2 编译过程概述

编译过程的5个阶段:

  1. 词法分析
  2. 语法分析
  3. 语义分析与中间代码产生
  4. 优化
  5. 目标代码生成

    • 词法分析:识别出单词符号,符号表
      工具: 正规式,有限自动机

    • 语法分析: 根据语法规则,把单词符号串分解为各类语法单位
      工具: 语法规则

    • 语义分析(识别表达的实际意义)与中间代码产生 : 静态语义检查,中间代码翻译
      工具: 属性文法

    • 优化:公共子表达式的提取,循环优化,删除无用代码

    • 目标代码生成:中间代码 —> 目标机器上的机器语言代码

1.3 编译程序结构

  1. 编译程序总框
    中间走流程,左表格,右出错

  2. 表格与表格管理
    登记信息

  3. 出错处理
    语法错误、语义错误

  4. 遍(PASS

    五个基本阶段:是将源程序翻译为目标程序在逻辑上要完成的工作。
    
    遍:是指完成上述5个基本阶段的工作,要经过几次扫描处理。
    

    一遍扫描即可完成整个编译工作的称为一遍扫描编译程序

    分遍《==========》分工

  5. 编译前端和后端

编译前端
词法分析、语法分析、语义分析与中间代码产生
编译后端
目标机有关的部分,仅依赖于中间代码

1.4 编译程序与程序设计环境

1.5 编译程序的生成

自编译方式
先构造语言核心编译器,滚雪球。。。

你可能感兴趣的:(编译)