一、前言 近期在做Oracle迁移到Spark平台的项目上遇到了一些平台公式翻译为SparkSQL(on Hive)的需求,而Spark采用亲妈语言Scala进行开发。分析过大概需求过后,拟使用编译原理中的EBNF范式模式,进行基于词法的文法解析。于是拟采用传统的正则词法解析到EBNF文法解析的套路... ...
分类:
其他好文 时间:
2017-03-07 23:08:55
阅读次数:
304
今天我们来讲一下解释器模式。 什么叫解释器模式呢?解释器模式,给定一个语言,定义她的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子,这样就可以构建一个解释器,该解释器通过/解释 ...
分类:
其他好文 时间:
2017-02-17 15:14:13
阅读次数:
203
定位:传说中北航计算机学院最头疼课程其实也没有辣么难,一点点的完成,并不会出现传说中的刷夜~ 0.pascal-s和PL/0编译器源码有必要结合编译器基础知识认真读一下,当然不必细枝末节,重点是看一下人家的编译器中所谓的“词法分析”“语法分析”等阶段以及符号表的建立需要什么量,每个量分别代表什么,以 ...
分类:
其他好文 时间:
2017-02-15 18:50:13
阅读次数:
534
<源函数> → <外部声明> | <源程序> <外部声明> <程序> —〉 <外部声明> | <函数定义><外部声明> —〉<头文件> | <变量> | <结构体> <头文件> —〉 #include<文件名><文件名> —〉 stdio.h丨stdlib.h丨string.h<结构体> —〉 <结 ...
分类:
编程语言 时间:
2016-12-29 11:07:32
阅读次数:
214
C语言程序——〉main函数,调用数据库|函数声明|函数定义 Main函数——〉函数定义变量|调用函数 函数声明——〉函数名、参数、函数类型 定义变量——〉函数类型 函数类型——〉void| CHAR| INT| FLOAT 定义——〉定义变量|调用函数 参数——〉参数类型、参数名 参数类型——〉v ...
分类:
其他好文 时间:
2016-12-28 01:48:14
阅读次数:
151
一、 实验目的 编制一个递归下降分析程序 LL(1)文法: E->TE1 E1->+TE1|-TE1|∑ T->FT1; T1->*FT1|/FT1|∑ F->(E)|i|1 二、 实验内容和要求 输入:LL(1)文法 判断:每遇到一个终结符,则判断当前读入的单词符号是否与该终结符相匹配,若匹配,则 ...
分类:
其他好文 时间:
2016-12-22 22:48:04
阅读次数:
224
根据文法: E→E+T|E-T|TT→T*F| T/F|FF→(E)|i ...
分类:
其他好文 时间:
2016-12-22 07:11:37
阅读次数:
304
实验一、递归下降分析程序实验 专业 商业软件工程 姓名 姓名 学号 201506110148 一、 实验目的 编译递归下降分析程序识别c语言文法 二、 实验内容和要求 三、 实验方法、步骤及结果测试 1. 源程序名:递归下降分析程序 源程序名递归下降分析程序.c 可执行程序名:递归下降分析程序.ex ...
分类:
其他好文 时间:
2016-12-18 20:51:47
阅读次数:
227
实验一、递归下降分析实验 专业 姓名 学号 一、 实验目的 练习构造递归下降语法分析程序的方法,熟悉上下文无关文法的使用,加深对课堂教学的理解;提高语法分析方法的实践能力。 二、 实验内容和要求 利用c语言构造语法分析程序。 三、 实验方法、步骤及结果测试 对于给定的文法 E—>aE | bE | ...
分类:
其他好文 时间:
2016-12-17 02:41:04
阅读次数:
154