
解释器
文章平均质量分 93
代老师的编程课
去哪儿网资深架构师,前美团技术专家,16年Java开发经验,MiniTomcat实战课程作者。
展开
-
如何使用Python编写一个Lisp解释器
原文出处: Peter Norvig 译文出处: jnjc(@jnjcc)本文有两个目的: 一是讲述实现计算机语言解释器的通用方法,另外一点,着重展示如何使用Python来实现Lisp方言Scheme的一个子集。我将我的解释器称之为Lispy (lis.py)。几年前,我介绍过如何使用Java编写一个Scheme解释器,同时我还使用Common Lisp语言编写过一个版本。转载 2013-10-10 18:09:57 · 2002 阅读 · 0 评论 -
An expression evaluator
An expression evaluator Download source code (17 kb) Two weeks ago, I saw an article on codeproject that really nicely solve an old and very known issue. Why it is nice is because it is short, s转载 2013-10-21 22:40:10 · 1154 阅读 · 0 评论 -
ANTLR3 简介及示例
ANTLR(pronounced Antler) 是一个语言识别工具,Another Tool forLanguage Recognition 的缩写。ANTLR由旧金山大学(University of San Francisco)的教授 Terence Parr 开发并维护的,其始于1989年,到了现在过了20多年,一直都是一个很活跃的项目。 ANTLR 一般用于构建 Domain-S转载 2013-10-23 20:00:13 · 9549 阅读 · 0 评论 -
antlr的使用
我从以下几个问题入手介绍ANTLR的相关知识。 1 ANTLR是什么? ANTLR, ANother Tool for Language Recognition, 是一个可以接受含有语法描述的语言描述符并且生成程序能够识别这些语言所产生的句子。作为一个翻译程序的 一部分,你可以给你的语法附上简单的操作符和行为并且告诉ANTLR如何构造AST并且如何输出它们。ANTLR知道如何使用Java,转载 2013-10-23 20:24:23 · 2529 阅读 · 0 评论 -
Five minute introduction to ANTLR 3
What is ANTLR 3?ANTLR - ANother Tool for Language Recognition - is a tool that is used in the construction of formal language software tools (or just language tools) such as translators, compile转载 2013-10-23 22:23:54 · 1055 阅读 · 0 评论 -
探索Antlr(Antlr 3.0更新版)
探索Antlr(Antlr 3.0更新版) 简介Antlr(ANother Tool for Language Recognition)是一个工具,它为我们构造自己的识别器(recognizers)、编译器(compiler)和转换器(translators)提供了一个基础。通过定义自己的语言规则,Antlr可以为我们生成相应的语言解析器,这样便可以省却了自己全手工打造的劳苦。转载 2013-10-23 22:27:14 · 603 阅读 · 0 评论 -
Understanding ANTLR Grammar Files
Are you confused by all the different sections of an Antlr grammar file, wondering what each one does ? Well lets take another look at them, this time using Antlr Studio.Believe it or not but Antlr转载 2013-10-30 08:43:43 · 843 阅读 · 0 评论 -
ANTLR语法层的选项及动作 - ANTLR
ANTLR语法层的选项ANTLR语法层的选项中可以设置一系列的键值从而影响ANTLR输出的代码。这些选项是全局的,除非在某条规 则中覆盖了这些选项,否则这些选项会影响到该语法中的所有元素。选项应该紧跟在语法头后面,具有如下的形式:options {name1 = value1;name2 = vaule2;...}选项中的名字必须使用标识符(identifier转载 2013-10-30 08:53:09 · 1152 阅读 · 0 评论 -
基于antlr的表达式解析器
package formula;import java.util.HashMap;import java.util.List;import java.util.Map;import org.antlr.runtime.ANTLRStringStream;import org.antlr.runtime.CommonTokenStream;import org.antlr.runti原创 2013-10-31 21:11:19 · 1530 阅读 · 0 评论 -
基于antlr的表达式解析器——函数类型验证
package daicy.formula.evaluator;import java.util.HashMap;import java.util.Map;import org.antlr.runtime.ANTLRStringStream;import org.antlr.runtime.CommonTokenStream;import org.antlr.runtime.tree原创 2013-11-02 22:51:05 · 1776 阅读 · 0 评论 -
基于antlr的表达式解析器——函数生成(通过freemarker)
第一步.新建一个模板文件以.ftl结尾。IDAO.ftl [java] view plaincopypackage com.media.dao; import java.util.List; import com.media.bean.${model_name}; import com.media.e原创 2013-11-02 22:03:15 · 1518 阅读 · 0 评论 -
基于antlr的表达式解析器——函数定义
/* * Copyright 2002-2007 Robert Breidecker. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtai原创 2013-11-02 19:38:16 · 1547 阅读 · 0 评论 -
JavaCC : Java Glossary
JavaCCFormerly known as Jack. JavaCC is a parser, like YACC (Yet Another Compiler Compiler), except that is it written in Java and generates Java code. It started out handled by Sun, then by Metam转载 2013-11-05 20:51:51 · 1126 阅读 · 0 评论 -
Java反编译器剖析
本文由 ImportNew - 邬柏 翻译自 javacodegeeks。如需转载本文,请先参见文章末尾处的转载要求。Importnew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的Java开发小组。参与方式请查看小组简介。反编译器(或者解码器),简而言之,就是将目标程序码反转成源代码。但是其中的过程却比较复杂,也很有意思——Java源码是结构化的,字节码却不是。而且,转转载 2014-02-11 18:12:59 · 1341 阅读 · 0 评论 -
java公式解析器学习与开发(2)——前缀表达式
释义前缀表达式就是前序表达式。前缀表达式就是不含括号的算术表达式,而且它是将运算符写在前面,操作数写在后面的表达式,为纪念其发明者波兰数学家Jan Lukasiewicz也称为“波兰式”。例如,- 1 + 2 3,它等价于1-(2+3)。2求值方法对于一个前缀表达式的求值而言,首先要从右至左扫描表达式,从右边第一个字符开始判断,如果当前字符是数字则一直到数字串的原创 2013-10-21 20:05:47 · 1434 阅读 · 0 评论 -
java公式解析器学习与开发(1)
public class Evaluate { public static void main(String[] args) { Stack ops = new Stack(); Stack vals = new Stack(); String[] strs = "( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) )".sp原创 2013-10-21 18:17:49 · 1956 阅读 · 0 评论 -
JavaScript 编写的迷你 Lisp 解释器
感谢@李欲纯 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。】Little Lisp是一个解释器,支持函数调用、lambda表达式、 变量绑定(let)、数字、字符串、几个库函数和列表(list)。我写这个是为了在Hacker School(一所位于纽约的程序员培训学校)的一个闪电秀中展示写一个解释器不是很难。一共只有116行的JavaScript代码,下文我会解释转载 2013-10-10 18:10:39 · 1147 阅读 · 0 评论 -
一种可扩展的表达式解析及计算方法
王 建光, 软件工程师, IBM钱 韬, 软件工程师, IBM简介: 本文主要与您探讨了表达式的一般模型及相关概念,并以一种循序渐进的方式阐述了一种表达式解析与计算方法,并提供了一个支持可扩展的表达式解析与计算的设计实例。发布日期: 2013 年 6 月 13 日 访问情况 : 3372 次浏览 评论: (查看 | 添加评论 - 登录)转载 2013-10-14 18:02:20 · 1273 阅读 · 0 评论 -
表达式计算: 分析与设计
刘源, 软件工程师, 上海复旦光华电信部简介: 发布日期: 2004 年 11 月 03 日 级别: 初级 访问情况 : 2925 次浏览 评论: (查看 | 添加评论 - 登录) 平均分 (1个评分)为本文评分问题由来在我做过的一个针对网络设备和主机的数据采集系统中,某些采集到转载 2013-10-14 18:04:34 · 774 阅读 · 0 评论 -
可爱的 Python: 创建声明性迷你语言
编程为断言而不是指令Python 的面向对象和透明自省功能使您可以轻松地创建用于编程任务的声明性迷你语言。在本专栏文章中,David 并未仔细研究如何使用 Python 来解释或翻译其它的专门语言(尽管可以做得到),而是研究如何将 Python 代码本身有效地限定在一组声明性元素中。他将向您说明开发人员如何能使用声明技术来简练清晰地陈述应用程序的要求,而让“幕后的”框架来完成繁转载 2013-10-14 18:06:49 · 791 阅读 · 0 评论 -
面向 Java 开发人员的 Scala 指南: 构建计算器,第 1 部分
Scala 的 case 类和模式匹配Ted Neward, 主管, Neward & Associates简介: 特定于领域的语言已经成为一个热门话题;很多函数性语言之所以受欢迎,主要是因为它们可以用于构建特定于领域的语言。鉴于此,在 面向 Java™ 开发人员的 Scala 指南 系列的第 8 篇文章中,Ted Neward 着手构建 一个简单的计算器转载 2013-10-14 18:15:13 · 1080 阅读 · 0 评论 -
使用 Antlr 开发领域语言 - 开发一个完整的应用
高 尚 ( gaoshang1999@163.com), 软件工程师, 中国农业银行软件开发中心郑 德署 ( deshu.zheng@gmail.com ), 软件工程师, 中国农业银行软件开发中心简介: 为了使应用系统能够快速地响应复杂多变的业务规则,通过让用户使用领域语言来自定义业务规则是一种常用的选择。 然而实现领域语言并非易事,本文使用 Antlr 语言识别工具转载 2013-10-14 18:44:32 · 2022 阅读 · 0 评论 -
Eclipse JDT--AST入门
最近做program analysis,需要解析Java的源代码,于是就去看了看Abstract Syntax Tree(AST,中文为抽象语法树)。有点无奈的是,网上关于这方面的资料比我想象中的少,可能是涉及的东西太底层了吧。AST一般属于编译原理方面的内容,也经常用于程序分析等等。简单来说,你写了一坨代码,编译器会把代码转化成一棵抽象语法树用于“理解”。每个树节点代表一个代码元素,也有自己的属转载 2013-10-14 19:08:42 · 1394 阅读 · 0 评论 -
SQL 语法解释器jsqlparser
是用java 开发的解析器, 可以生成java类层次结构. 主页地址:http://jsqlparser.sourceforge.net 可以完美解析 表的 增删查改等操作. 展开它的源码你会发现.基本不用看api就可以使用,因为它是如此的类似sql 只要你会java 只要你会写sql 那么你就会使用 jsqlpa转载 2013-10-14 17:47:34 · 4413 阅读 · 0 评论 -
快速精确的对数学表达式求值
使用这个方便的 applet ,您就能一步一步的计算数学表达式了Nikola Stepan (nikola.stepan@vz.tel.hr), 软件工程师简介: 对于未经训练的用户来说,计算机科学领域中数学表达式求值的传统方法即不顺手又难以使用;软件工程师 Nikola.Stepan 旨在改变这些传统方法。他的 applet W3Eval 对表达式求值与您用纸转载 2013-10-14 18:04:07 · 970 阅读 · 0 评论 -
使用 Antlr 开发领域语言
高 尚 (gaoshang1999@163.com), 软件工程师, 中国农业银行软件开发中心简介: Antlr 是一个基于 Java 开发的功能强大的语言识别工具,Antlr 以其简介的语法和高速的运行效率在这类工具中出类拔萃。当你需要开发一种领域语言时,语言可能像 Excel 中的公式一样复杂,也可能像本文中的例子一样简单(只有算术运算),这时你可以考虑使用 Antlr 来转载 2013-10-14 18:40:10 · 757 阅读 · 0 评论 -
使用 Antlr 处理文本
高 尚 (gaoshang1999@163.com), 软件工程师, 中国农业银行软件开发中心简介: Antlr 是一个基于 Java 开发的功能强大的语言识别工具,其主要功能原本是用于识别编程语言,但是当我们遇到一些常规的文本处理工作时,使用 Antlr 做这些工作可能比单纯的使用正则表达式高效、有趣的多。本文将和您一起探讨如何使用 Antlr 完成抽取(Extract)、转转载 2013-10-14 18:45:52 · 1986 阅读 · 1 评论 -
利用 Java 实现组合式解析器
Ward Cunningham 曾经说过,干净的代码清晰地表达了代码编写者所想要表达的东西,而优美的代码则更进一步,优美的代码看起来就像是专门为了要解决的问题而存在的。在本文中,我们将展示一个组合式解析器的设计、实现过程,最终的代码是优美的,极具扩展性,就像是为了解析特定的语法而存在的。我们还会选取 H.248 协议中的一个例子,用上述的组合式解析器实现其语法解析器。读者在这个过程中不仅能体会到代转载 2013-10-14 17:58:48 · 839 阅读 · 0 评论 -
创建一个具有商业品质的 Eclipse IDE
创建具有商业品质且可插入 Eclipse 的专业 IDEPrashant Deva (pdeva@placidsystems.com), 创始人, Placid Systems简介: “创建一个具有商业品质的 Eclipse IDE” 系列教程主要研究如何创建具有商业品质且可插入 Eclipse 的专业 IDE,本期教程主要学习如何创建 IDE 内核。转载 2013-10-14 18:50:58 · 1412 阅读 · 0 评论 -
如何编写一个高效的Java表达式求值程序
当然,这个标题是有一点夺人眼球,但我确实这么做了(关于是否相信基准测试结果,这是另一个话题)。所以,上周我一直在找一个小型、实用的计算数学表达式的类库。偶然间我在stackoverflow上看到了一个帖子,里面推荐的库(Expr)确实是很快而且基本拥有我需要的所有特性。但不幸的是,它不支持提供限制变量范围(在虚拟机里面,所有变量都位于一个全局命名空间)。所以,我做了一件正常人不会做转载 2014-03-13 10:33:32 · 1219 阅读 · 0 评论