# SimpleJInterpreter **Repository Path**: jeavenwong/SimpleJInterpreter ## Basic Information - **Project Name**: SimpleJInterpreter - **Description**: 此项目是一个简单的四则运算解释器,用来练习编译原理。词法分析部分使用手写DFA解析,语法分析部分使用LL(1)文法进行递归下降法分析,再将AST转化为逆波兰序列,最后写了一个简单的Stack-Based VM来解释执行。 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-05-07 - **Last Updated**: 2023-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SimpleJInterpreter #### 介绍 此项目是一个简单的四则运算解释器,用来练习编译原理。词法分析部分使用手写DFA解析,语法分析部分使用LL(1)文法进行递归下降法分析,再将AST转化为逆波兰序列,最后写了一个简单的Stack-Based VM来解释执行。 #### 开发环境 - OS:Windows 10 - IDE: Intellij IDEA - JDK: Oracle JDK 1.8 #### 实现细节 - 根据分词需要构造正则表达式,然后转化为 DFA 进行词法分析 - 构造消除左递归的 LL(1) 文法进行四则运算的语法分析,编程上采用简单粗暴的递归下降法 - 遍历语法分析得到的 AST ,得到逆波兰表达式,最后用 stack 来解释执行