编译原理学习之简单介绍

版权声明:欢迎转载,注明出处 https://blog.csdn.net/youyou519/article/details/84564161

首先说明这是网易云课堂中国科学技术大学华保健老师的课程《编译原理》听课笔记,大部分内容是ppt资料,为了方便记忆,写了如下笔记。

编译器具有非常模块化的高层结构。

一般有输出和输出。输入时某种编程语言,输出是某个机器平台的目标语言。分为前端和后端,前端处理输入语言,后端处理输出相关部分,如要翻译成目标机器指令集,如何将前端翻译成后端。

编译器可看成多个阶段构成的“流水 线”结构。

语义分析:对语法树进行错误判断,之后不会再报错。

中间代码:三级指针,SSA。

符号表:存储程序编译过程重要信息,给各个模块提供支持。

编译器由多个阶段组成,每个阶段都要 处理不同的问题,使用不同的理论、数据结构和算法
因此,编译器设计中的重要问题是如何 合理的划分组织各个阶段

  • 接口清晰
  • 编译器容易实现、维护

eg:

源语言:加法表达式Sum

  • 两种语法形式:
    • 整型n
    • 加法e1+e2

目标机器:栈式计算机Stack

  • 两条指令
    • push n
    • add

参考资料:

网易云课堂:编译原理课程(中科大)

猜你喜欢

转载自blog.csdn.net/youyou519/article/details/84564161