Hive架构hive架构如图所示,client跟driver交互,通过parser、planner、optimizer,最后转为mapreduce运行,具体步骤如下driver输入一条sql,会由parser转为抽象语法树AST,这个是没有任务元数据信息的语法树;语法分析器再把AST转为一个一个的QueryBlock,一个QueryBlock包含输入、输出、计算逻辑,也就是说一个子程序就是Quer
分类:
数据库 时间:
2019-05-17 09:20:50
阅读次数:
142
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。 这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 构建语法树,定义终结符与非终结符。 应用实例:编译器、运算表达式计算。 测试结果: ...
分类:
编程语言 时间:
2019-04-23 17:23:19
阅读次数:
145
css 处理插件大致分为压缩css和给css添加浏览器兼容前缀。 cssmin 可以压缩css,大致原理是将使用正则将css 中的注释和空格删除。 px2rem 插件是将css 中的px 转换为 rem,它的原理是 调用了css 的AST对象 ,css插件将css内容解析成 一个javascript ...
分类:
Web程序 时间:
2019-04-14 18:03:28
阅读次数:
328
序号 阶段 描述 1 词法分析 将源文件分解为一个个独立的单词符号 2 语法分析 分析程序的短语结构 3 语义动作 建立每个短语对应的抽象语法树 4 语义分析 确定每个短语的含义,建立变量和其声明的关联,检查表达式的类型,翻译每个短语 5 栈帧布局 按机器要求的方式将变量,函数参数等分配于活跃的记录 ...
分类:
其他好文 时间:
2019-03-21 00:58:20
阅读次数:
181
1. 引言 "syntax parser" 是一个 JS 版语法解析器生成器,具有分词、语法树解析的能力。 通过两个例子介绍它的功能。 第一个例子是创建一个词法解析器 : 如上,通过正则分别匹配了 “空格”、“字母或数字”、“加号”,并将匹配到的空格忽略(不输出)。 分词匹配是从左到右的,优先匹配数 ...
分类:
其他好文 时间:
2019-03-04 10:00:11
阅读次数:
201
提起 AST 抽象语法树,大家可能并不感冒。但是提到它的使用场景,也许会让你大吃一惊。原来它一直在你左右与你相伴,而你却不知。 一、什么是抽象语法树 在计算机科学中,抽象语法树(abstract syntax tree 或者缩写为 AST),或者语法树(syntax tree),是源代码的抽象语法结 ...
分类:
其他好文 时间:
2019-02-14 16:40:40
阅读次数:
178
这个函数用来编译一段字符串的源码,结果可以生成字节码或者AST(抽像语法树),字节码可以使用函数exec()来执行,而AST可以使用eval()来继续编译。 参数source是一串字符串的源码,或者是AST对象数组。 参数filename是读取字符串的文件对象,如果不是从文件里读取源码来编译,那么这 ...
分类:
编程语言 时间:
2019-02-02 10:37:08
阅读次数:
210
这是专门探索 JavaScript 及其所构建的组件的系列文章的第 14 篇。 如果你错过了前面的章节,可以在这里找到它们: "JavaScript 是如何工作的:引擎,运行时和调用堆栈的概述!" "JavaScript 是如何工作的:深入V8引擎&编写优化代码的5个技巧!" "JavaScript ...
分类:
编程语言 时间:
2019-01-22 10:52:56
阅读次数:
247
1. vue的实例方法vm.$mount(), 和 new Vue的参数el作用一样。 2. template:模板,是一个含有dom元素的字符串。它会替换掉el或者mount的挂载元素。 过程是这样的: 1 vue会把这个template字符串解析成为抽象语法树(AST(是一个对象)), 2 然后 ...
分类:
其他好文 时间:
2019-01-11 21:15:22
阅读次数:
183
表达式目录树 1.什么是表达式目录树Expression? 表达式目录树是一个数据结构,语法树。 首先我们去看看 Expressions类 ,定义了一个泛型委托类型 TDelegate: 我们先来一个带返回值的委托: 其中m、n是两个Int 类型的参数 通过表达式目录树计算 m*n+2: 通过中间语 ...
分类:
其他好文 时间:
2019-01-10 10:57:52
阅读次数:
131