首页 » 技术分享 » 朱娜斐编译原理复习笔记-北京工业大学软件学院

朱娜斐编译原理复习笔记-北京工业大学软件学院

 
文章目录

朱娜婓编译原理学习笔记

说明

  • 笔记大部分内容来自参考资料[1], 看了B站上中科大华保健老师的编译原理课视频(参考资料[2]),补充完善了DFA的代码表示、Hopcroft 算法、文法重写、LL(1)算法、LR算法等内容

  • 有许多知识是结合了自己的理解进行整理,所以可能会有错误之处

  • 再往后因为时间问题就有点烂尾了...

  • 文章末尾有北京工业大学2019年软件学院编译原理的考题回忆及朱娜斐老师划分的考点(recoded by @杰哥)

Keyword

  • 中科大华宝健编译原理学习笔记
  • 北京工业大学朱娜婓编译原理学习笔记
  • 2019年北京工业大学软件学院编译原理期末考试试卷回忆版

什么是编译器

什么是编译器

编译器是一个程序,核心功能是把源代码翻译成目标代码

编译器的工作解释

源代码-->编译器的静态计算-->目标程序-->计算机的动态计算-->计算结果

静态计算 是指编译器只根据程序文本静态地分析(如做报错分析、优化分析),而不是真的拿 CPU 去执行

计算机 可能是一个 x86 的物理器(如对应 C 语言),也可能是 JVM java 虚拟机(如对应 java)。

编译器和解释器的比较

解释器也是一类处理程序的程序

区别在于:

  • 编译器:输入源代码,输出一个可执行程序,但不去执行

    (存放在磁盘上等待被加载到内存中执行)

  • 解释器:输入源代码,直接输出执行结果

    其实 JVM 就是一个解释器,而不是一个单纯的编译器。输入 java 字节码 bytecode ,然后直接输出执行结果,而不是输出汇编代码。

编译器简史

第一个编译器是Fortran语言的编译器

该编译器给计算机科学的发展产生了巨大的影响:

  • 理论上:算法、数据结构、形式语言与自动机
  • 实践上:软件工程、体系结构等
  • 编译器架构

编译器内部结构

简述

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

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

编译器规模庞大,拆分模块容易实现和维护

一种没有优化的编译器结构

转载自原文链接, 如需删除请联系管理员。

原文链接:朱娜斐编译原理复习笔记-北京工业大学软件学院,转载请注明来源!

0