编译原理01-引论
发布日期:2021-04-30 21:09:58 浏览次数:95 分类:精选文章

本文共 878 字,大约阅读时间需要 2 分钟。

文章目录

学习课程三要素

  • 端正学习态度:坚持上课!认真完成作业!
  • 从内心深处:喜欢钻研底层技术!
  • 多动手:PL/0编译器 + ANTLR工具

章节划分

  • 2456语法分析(重点)
  • 3词法分析(重点)
  • 78语义分析(难点)
  • (具体见下面1.3的各个环节展开)

第一章 引 论

1.1 什么是编译程序

  • 翻译程序:将一种语言(源语言)翻译成另一种逻辑上等价的语言(目标语言)的程序。
  • 编译程序:源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。

1.2 解释程序

  • 编译程序的功能和结构

1.3 编译过程和编译程序的结构

1.3.1 词法分析(扫描器,Scanner)

  • 从左到右,逐个字符读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出各个单词,并给予种别(属性)和内部形式(值)构成单词的内部表示。

1.3.2 语法分析(分析器,Analyzer)

  • 在词法分析的基础上,对单词序列进行语法检查,分析源程序的语法结构,并用明确的结构(如语法树)表示。

1.3.3 语义分析

  • 检查程序有无语义错误,为代码生成阶段收集类型信息,同时解释程序的意义。

1.3.4 中间代码生成

  • 在词法分析、语法分析和语义分析完成后,将源程序转换为一种内部表示形式,称为中间代码。

1.3.5 中间代码优化

  • 代码优化可多次进行,包括局部优化、循环优化和与机器有关的优化。

1.3.6 目标代码的生成

  • 将中间代码转换为特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

1.4 编译程序的组织

1.4.1 前端和后端

  • 前端:与源语言有关,而与目标机无关的编译程序。
  • 后端:与目标机有关,而与源语言无关的编译程序。

1.4.2 分遍(趟,PASS)问题

  • 对源程序或源程序的中间结果从头到尾扫描并完成规定任务的过程。

1.5 编译程序的实现方法

  • 预处理方法、移植法、自展法和工具法。

1.6 课后练习

【学习笔记汇总】

持续更新

【学习资料】

  • 教材:《编译原理(第3版)王生原》
  • 软件下载:PL0(VS2010版)(待上传)
  • 可能是PPT、GitHub等待补充
上一篇:IDEA 如何自动导入(import)
下一篇:高效编程之原则

发表评论

最新留言

关注你微信了!
[***.104.42.241]2026年06月07日 16时02分20秒