Recent Posts

Groovy实现原理分析——生成JVM字节码

3 minute read

在前两篇文章中我们分析了Groovy的词法分析和语法分析过程,了解了源代码是如何被转换为AST的。本篇我们来看编译过程的最后一个关键步骤:如何将AST转换为JVM可以执行的字节码。

Groovy实现原理分析——语法分析

3 minute read

在上一篇文章中我们分析了Groovy的词法分析过程,了解了GroovyLexer.g4如何将源代码字符流转换为Token流。本篇我们继续深入,看看Groovy是如何将Token流转换为AST(Abstract Syntax Tree,抽象语法树)的。

Groovy实现原理分析——词法分析

2 minute read

在上一篇文章中我们介绍了编译器的基本流程以及Groovy编译器所使用的工具(Antlr和ASM),本篇我们深入Groovy 3.0.5的源码,看看Groovy是如何利用Antlr4实现词法分析的。

Groovy实现原理分析——词法分析、语法分析、生成JVM字节码综述

2 minute read

在上一篇文中中我们提到Groovy编译器将Groovy脚本编译成JVM可以执行的字节码文件,这之中涉及词法分析、语法分析、生成JVM字节码的过程,学过编译原理的同学可能会对这些概念比较熟悉,不熟悉也没关系,我们简单回忆一下一般编译器的编译过程。首先给出一张龙书中的示意图:

Groovy实现原理分析——准备工作

1 minute read

首先说明一下为什么要写这样一系列分析Groovy实现原理的博文。我之前在华为大数据部门曾维护过一份规则引擎的项目,该项目说白了就是一种DSL(Domain Specified Language),把用户的输入转化为一种可以执行的程序。让不懂编程语言的用户只定义一些规则说明便可以完成流程编写。后来由于部门调动,接触...