THE CATALOG OF COMPILER CONSTRUCTION TOOLS

Compiler Construction with Java

Compiler
Construction
Kits

Lexer and Parser
Generators

Trees and
Transformation

Attribute Grammar
Systems

Backend
Generators

Program Analysis
and Optimisation

Environment
Generators

Tools, Frameworks,
Infrastructure

Compiler
Construction
with Java

ANTLR

ANTLR 2.xx is a completely redesigned version, which has been reimplemented in Java and generates Java. ANTLR 2.xx embodies all three previous tools of PCCTS, generalizing the notion of scanning, parsing, and tree walking into the simple notion of applying grammatical structure to an input stream--whether it be a stream of characters, tokens, or tree nodes.

MORE ...


BYACC/JAVA

BYACC/Java is an extension of the Berkeley v 1.8 YACC-compatible parser generator A "-j" flag has been added which will cause BYACC to generate Java source code, instead.

MORE ...


COCO/JAVA

The Java version of CoCo, a scanner and parser generator.

MORE ...


CUP

An LALR parser generator for Java.

MORE ...


GENERIC INTERPRETER

Produces standalone or embedded interpreters and compilers written in Java. A Language is specified on the fly, and source streams written in the language can be interpreted at any time, even as the language evolves. Supports LL(1), LR(0), SLR(1) and LR(1).

MORE ...


JACCIE

Jaccie is an educational tool for visualizing compiling techniques. It consists of scanner/parser generators. Users can choose between LL(1), LR(0), SLR(1), LALR(1), and LR(1) parser generators.

MORE ...


JAVACC

Java Compiler Compiler, Sun's parser generator that produces parsers in Java from grammar specifications written in a LEX/YACC-like manner. Completely written in Java. Top-down parsing (recursive descent) with variable lookahead.

MORE ...


JAX

Jax is a java lex compiler that generates scanners from regular expressions embedded in a skeleton java file. Jax is not [f]lex, and in particular, does not permit defining macros or context dependent expression matching.

MORE ...


JAY

A version of BSD Yacc that generates Java code.

MORE ...


JB

The jb system takes parsers generated using the Gnu Bison parser generator system and translates them to execute in Java (tm). Jb takes the C file output by Bison and scans it to extract the parse tables and constants. Jb then scans various template files specified by the user and inserts the extracted information at specified points in the templates. Jb provides two methods of generating corresponding lexers. (1) the jb system can also take lexers generated using the Gnu flex generator and translate them to execute in Java. (2) A generic ad-hoc lexer that can be modified to produce lexers for typical programming languages.

MORE ...


JELL

Jell is a parser generator that generates recursive descent parsers from LL(1) grammars. You can also embed extra directives to get past any of that tricky non LL(1) stuff.

MORE ...


JFLEX

JFlex is a lexical analyzer generator for Java with full Unicode support and builtin support for the CUP parser generator.

MORE ...


JLEX

JLex is a lexical analyzer generator, that can be used in combination with CUP.

MORE ...


JTB

The Java Tree Builder is to be used with the JavaCC parser generator. It takes a plain JavaCC grammar file as input and automatically generates the following: a set of syntax tree classes based on the productions in the grammar, utilizing the Visitor design pattern; a Visitor superclass whose default methods simply visit the children of the current node; a JavaCC grammar with the proper annotations to build the syntax tree during parsing.

MORE ...


LOLO

lolo extracts symbols from a sequence of input characters belonging to the ASCII or Unicode sets. lolo scanners can be extended without access to the source code: symbol recognizers can be derived by inheritance and an executing scanner can be reconfigured for different contexts. Recognizer actions are represented by objects which may be replaced at any time. Recognizers need not be based on finite state automata; therefore, lolo can recognize symbols that systems like lex cannot recognize directly.

MORE ...


OOPS

Oops is an object-oriented parser generator implemented in Java. Oops takes a grammar written in EBNF, checks that it is indeed LL(1), i.e., suitable for recursive descent parsing, and produces a parser as a set of serialized objects.

MORE ...


PAT

Package COM.stevesoft.pat enables a java application or applet to compile and use perl5 regular expressions. It also does text substitutions. The package works by converting the regular expression into a singly-linked list of Pattern objects, each of which knows how to match its own piece of text. Because of this, it is possible for you to extend the pattern matching capability of this package by making your own classes from Pattern.

MORE ...


SABLE CC

SableCC is an object-oriented framework that generates compilers (and interpreters) in the Java programming language. It uses object-oriented techniques to automatically build a strictly typed abstract syntax tree that matches the grammar of the compiled language and simplifies debugging. It generates tree-walker classes using an extended version of the visitor design pattern which enables the implementation of actions on the nodes of the abstract syntax tree using inheritance.

MORE ...





COPYRIGHT © 1996-2006
GERMAN NATIONAL RESEARCH CENTER FOR INFORMATION TECHNOLOGY
FRAUNHOFER INSTITUTE FOR COMPUTER ARCHITECTURE AND SOFTWARE TECHNOLOGY