`
gaochunguang
  • 浏览: 2237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

antlr中文网站www.antlr.org.cn

阅读更多
用antlr可以定义新的语言,解析现有的语言和文档。

是开发者的法宝!

ANTLR是ANother Tool for Language Recognition的缩写“又一个语言识别工具”。从名字上可以看出在ANTLR出现之前已经存在其它语言识别工具了(如LEX[1],YACC[2])。ANTLR的官方定义为:根据一种可以嵌入如Java, C++或C#等辅助代码段的文法,来构筑出相对该文法的识别器,编译器或翻译器的一种语言工具框架。这个定义说明了ANTLR的功能是根据给定文法自动生成编译器,其过程为先编写相应语言的文法然后生成相应语言编译器。定义提到的语言识别器,编译器和翻译器我们以后统称为语法分析器。事实上ANTLR是生成相应语言编译器的源代码,我们还需要编译它。那么ANTLR可以生成哪些方语言的语法分析器源代码语言的代码呢?这是程序员很关心的问题。幸运的是ANTLR现在已经支持了多种当前流行的开发语言,包括Java、C#、C、C++、Objective-C、Python和 Ruby.1等。你可以根据需要生成其中任何一种语言的语法分析器。

antlr另一个语言识别工具是旧金山计算机科学教授Terence Parr开发的。Terence Parr从1989年至今一直致力于antlr的开发,目的开发一种更好的通用自动化语法分析器。
antlr的功能是根据给出的文法自动生成语法分析器,并可以在文法嵌入代码轻松实现语法分析任务。
antlr的重大意义
antlr的重大意义主要有两点:
一, 软件开发中常常需要编写语法分析程序和分析特定格式的文档,这些功能开发人员自己去实现的难度很大,对于很多不是计算机科班出身的开发人员就更困难,因为编写语法分析程序需要编译原理的知识。有了antlr软件开发人员可以很容易的实现这些功能。
二, 有了antlr软件开发人员可以很容易的定义新的领域专用语言(DSL domain-specific language)。开发软件框架、平台、行业软件和一些工具软件等有时都需要定义自己的一些专用语言。如果没有antlr的帮助将很难实现。
antlr应用的方面:
建模工具:UML建模工具分析java, C# 等语言语法生成图形。
数据库关系图分析SQL生成ER图。
分析统计代码信息。
定义领域专用语言:定义工作流流程语言。
        定义新的计算机语言。
定义数据查询语言。(hibernate的HQL是最著名的antlr应用例子)
分析文档:定义自己的文件格式。
分析现有的文档。
计算机语言翻译器:实现计算机语言之间的相互翻译。
计算机教学:计算机编译原理课程教学实践。ANTLR属于编译原理范畴内的软件实例,学习编译原理的学生可以使用ANTLR用一些实践。
分享到:
评论

相关推荐

    com.springsource.org.antlr-3.0.1.jar

    Spring项目中如果从"http://www.antlr.org/download"下载antlr-3.1.3.jar会遇到java.lang.NoSuchFieldError: ruleMemo异常,从从 ...

    antlr-2.7.5H3.jar

    antlr-2.7.5H3.antlr-2.7.5H3.antlr-2.7.5H3.jar

    antlr-2.7.7.jar和antlr-2.7.6.jar

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR被广泛应用于各种编程语言的编译器和解释器的构建,它能生成Java、C#、Python...

    Antlr3.Runtime.dll

    Antlr3.Runtime.dll .net运行时库

    antlr-2.7.5H3.jar.zip

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR被广泛应用于各种编程语言的编译器和解释器的开发,它能生成Java、C#、Python...

    antlr-2.7.7.tar.gz

    *SOFTWARE RIGHTS* ANTLR 1989-2006 Developed by Terence Parr @ University of San Francisco We reserve no legal rights to the ANTLR--it is fully in the public domain.... parrt@antlr.org

    antlr-2.7.7.jar.zip

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR被广泛应用于各种编程语言的编译器和解释器的构建,它能生成Java、C#、Python...

    Antlr3.Runtime_C#_

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它广泛应用于构建语言、工具和框架。ANTLR可以生成Java、C#、Python、JavaScript等...

    antlr .net 2.0运行库 Antlr3.Runtime.dll

    http://www.antlr.org/ 发布的.net的antlr运行库存在不同步的问题,导致产生错误,vs2005或vs2008等无法编译. 我用最新的发布源码生产了该运行库,解决了错误。 ANTLR 是ANother Tool for Language Recognition 的...

    antlr-2.7.5H3.jar和antlr-2.7.6rc1.jar

    ANTLR,全称是ANother Tool for Language Recognition,是一款强大的解析器生成器,广泛用于构建语言、工具和框架。在Java Persistence API(JPA)中,ANTLR扮演着关键的角色,特别是在处理对象关系映射(ORM)工具...

    判断编码格式.rar antlr.jar chardet.jar cpdetector_1.0.5.jar

    它包含的三个文件“antlr.jar”,“chardet.jar”,以及“cpdetector_1.0.5.jar”都是与字符编码检测相关的Java库。 1. **ANTLR.jar**: ANTLR (ANother Tool for Language Recognition) 是一个强大的解析器生成器,...

    antlr-2.7.7.jar

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR被广泛应用于各种编程语言的编译器和解释器的构建,它能生成Java、C#、Python...

    antlr3-ant.jar.zip

    <taskdef name="antlr" classname="org.antlr.Tool" classpath="lib/antlr3-ant.jar" /> <antlr target="src/main/antlr/MyGrammar.g" /> ``` 在这个例子中,`taskdef`元素定义了一个名为`antlr`的Ant任务,...

    antlr-2.7.2.jar.zip

    在Java项目中,通常通过`java -cp antlr-2.7.2.jar org.antlr.Tool`命令行来运行ANTLR工具。 “antlr.LICENSE.txt”文件则包含了ANTLR的许可协议,这通常是软件开源许可证,如BSD、MIT、Apache等,它规定了用户如何...

    antlr3_3.2.is.3.2-7ubuntu3_all.deb

    antlr3_3.2.is.3.2-7ubuntu3_all.deb

    antlr-3.3.tar.gz_antlr_antlr-2.7.5.tar.gz

    ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR被广泛应用于各种语言和系统的开发,包括编程语言、配置文件、通信协议等。这...

    antlr-runtime-3.2.jar

    antlr-runtime-3.2.jar

Global site tag (gtag.js) - Google Analytics