有没有"有趣"的方法来学习语言,语法,解析和编译器?

Sha*_*awn 12 compiler-theory

我正在准备有关语言,语法,解析和编译器的考试.这不是我的一杯茶和大多数资源,我发现使用数学语言来定义不同的交易条款,并解释我需要知道的不同概念,而不是坚持英语或法语,我更喜欢.因此,我在找到继续学习的动机和简单理解理论方面遇到了一些麻烦.所以这是我的问题:你们中的任何人都知道在哪里可以找到一种"有趣"的方式来学习这一切吗?或者至少,可能是一种更"具体",更少"数学"的方式来处理这个问题.

我需要涵盖以下内容,欢迎任何有关这些主题的内容!

  • 解析(LR,LL,...)
  • 语法(无上下文,确定性,......)
  • 语法分析静态流分析
  • 关于软件维护和对用户界面的依赖性的影响分析
  • 动态分析

这里有一些资源可以被认为是"有趣"(强调引号)的方式来了解一个技术主题,只是为了了解我正在寻找什么.

Ira*_*ter 14

如果你想在短时间内学到很多东西,那就去了解Val Schorre 1964年的元编译器(是的,你读得对)关于如何构建自编译元编译器的MetaII论文.作为免费赠品,他们也可以编译传统的语言!这篇论文是10页,描述了元编译器(作为一个虚拟机是否相信),并包含两个完整的编译器.

当你了解编译器如何编译自己时,你最终会遇到一个令人兴奋的时刻......我在70年代早期以这种方式学习编译器,这是我曾经有过的最令人难忘的编译器课程.这很有趣.

这里有一个在线教程,它实现了JavaScript中的所有想法..

本教程的作者是James Neighbors博士,他发明了"领域分析"一词.他将MetaII的想法用于一个名为Draco的特定领域的代码生成器.Draco是我过去30年来一直在构建的类似编译器的工具的关键灵感.