编译
kekefen01
这个作者很懒,什么都没留下…
展开
-
编译原理简介:基本概念
自然语言(Natural Language)就是人类讲的语言,比如汉语、英语和法语。这类语言不是人为设计(虽然有人试图强加一些规则)而是自然进化的。形式语言(Formal Language)是为了特定应用而人为设计的语言,是从语言学衍生而来,作为一种理解自然语言的句法规律。例如数学家用的数字和运算符号、化学家用的分子式等。在计算机科学中,形式语言通常作为定义编程语言和语法的基础,是正式版本的自然语...原创 2019-01-31 05:59:12 · 1429 阅读 · 0 评论 -
基于寄存器和栈式的虚拟机实现
转自知乎,供学习参考https://www.zhihu.com/question/33084689?sort=created由于机器指令集的不同,对不同的处理器对应不同的编译器虚拟机本质上就是在物理机器之上再抽象出一个虚拟的机器。这个虚拟的机器具有统一的指令集,我们只需要将我们的源码翻译成虚拟机的指令集交由虚拟机即可,而虚拟机则继续将这些虚拟机指令映射成具体的物理机器的指令。所以,为达到这...原创 2019-02-09 20:31:27 · 890 阅读 · 0 评论 -
递归下降生成Tiny语法树
token是一个静态全局变量这个是主循环。在循环中匹配分号,再匹配新行(statement)TreeNode * stmt_sequence(void){ TreeNode * t = statement(); TreeNode * p = t; while ((token!=ENDFILE) && (token!=END) &原创 2019-02-10 22:56:45 · 3214 阅读 · 5 评论 -
利用状态机完成Tiny词法分析
全局定义:#ifndef _GLOBALS_H_#define _GLOBALS_H_ #endif代表只载入一次_GLOBALS_H_考虑分析中用到的Tokentype,由各种值。所有的token取值都在里面了typedef enum /* book-keeping tokens */ {ENDFILE,ERROR, /* reserved words *...原创 2019-02-12 19:33:10 · 440 阅读 · 0 评论