编译原理1

本学期学习编译原理,挺难的,但只要搞懂了会发现挺有意思的,分享一下自己学习整理的笔记。

编译原理是程序员的基础课之一,希望大家也要努力学好,加油加油!!!

建议放大看编译原理1

  • 编译阶段:
    • 前端:(依赖于语言不依赖目标机)
      • 词法分析:读取源程序,单词分类
      • 语法分析:分析单词,组成单词序列
      • 语义分析:审查语法错误
    • 分界线:生成中间代码:生成结构简单、含义明确的记号系统
    • 后端:(依赖目标机,一般不依赖语言)
      • 代码优化:对中间代码优化
      • 生成目标代码:将中间代码转换成机器指令(汇编指令)
  • 编译程序的结构:
    • 六个阶段的程序
    • 表格管理程序:源程序的信息保留在许多不同的表格中,编译的各个阶段涉及了构造、查找、更新这些表格
    • 出错处理程序:源程序编译过程出错,需报告错误性质和发生地点,缩小影响范围,使其余部分继续执行
  • ”遍“和”趟“
    • 多遍,少内存,时间长
    • 少遍,多内存,时间短
  • 编译程序与解释程序的区别
    • 编译程序:把源代码一次性翻译成目标代码,程序才能运行;只需要编译一次,程序就可以以机器速度运行
    • 解释程序:不需事先把源代码翻译成目标代码,而是一行一行地翻译代码,并生成结果;交互性好,但每次运行代码都需要翻译,且速度慢,空间开销大
  • 处理源程序的软件工具
    • 语言的结构化编辑器
    • 语言程序的调试工具
    • 程序格式化工具
    • 语言程序的测试工具
    • 程序理解工具
    • 高级语言转换工具