JBurg: a Bottom-Up Rewrite Machine Generator for Java

A bottom-up rewrite machine is a compiler construction tool that is often used in the compiler's back end to convert a tree-structured representation of a program into machine code -- or, in Java's case, bytecode. JBurg can also be used as a general-purpose dynamic programming engine. JBurg is descended from iburg-class BURGs, described in Fraser, Hanson, and Proebsting's paper, "Engineering a Simple, Efficient Code Generator Generator." JBurg brings similar O(N) minimum-cost tree rewriting capabilities to Java, and also allows the programmer to specify transitions between non-terminal states, that are significantly more powerful than iburg's transitive closures: JBurg transformation rules allow the transformation to inject additional program logic, which makes a JBurg specification more like a grammar than like a list of pattern-matching rules.

License

License

Categories

Categories

Net
GroupId

GroupId

net.sourceforge.jburg
ArtifactId

ArtifactId

jburg
Last Version

Last Version

1.10.3
Release Date

Release Date

Type

Type

jar
Description

Description

JBurg: a Bottom-Up Rewrite Machine Generator for Java
A bottom-up rewrite machine is a compiler construction tool that is often used in the compiler's back end to convert a tree-structured representation of a program into machine code -- or, in Java's case, bytecode. JBurg can also be used as a general-purpose dynamic programming engine. JBurg is descended from iburg-class BURGs, described in Fraser, Hanson, and Proebsting's paper, "Engineering a Simple, Efficient Code Generator Generator." JBurg brings similar O(N) minimum-cost tree rewriting capabilities to Java, and also allows the programmer to specify transitions between non-terminal states, that are significantly more powerful than iburg's transitive closures: JBurg transformation rules allow the transformation to inject additional program logic, which makes a JBurg specification more like a grammar than like a list of pattern-matching rules.
Project URL

Project URL

http://jburg.sourceforge.net/
Source Code Management

Source Code Management

http://sourceforge.net/p/jburg/code/

Download jburg

How to add to project

<!-- https://jarcasting.com/artifacts/net.sourceforge.jburg/jburg/ -->
<dependency>
    <groupId>net.sourceforge.jburg</groupId>
    <artifactId>jburg</artifactId>
    <version>1.10.3</version>
</dependency>
// https://jarcasting.com/artifacts/net.sourceforge.jburg/jburg/
implementation 'net.sourceforge.jburg:jburg:1.10.3'
// https://jarcasting.com/artifacts/net.sourceforge.jburg/jburg/
implementation ("net.sourceforge.jburg:jburg:1.10.3")
'net.sourceforge.jburg:jburg:jar:1.10.3'
<dependency org="net.sourceforge.jburg" name="jburg" rev="1.10.3">
  <artifact name="jburg" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.sourceforge.jburg', module='jburg', version='1.10.3')
)
libraryDependencies += "net.sourceforge.jburg" % "jburg" % "1.10.3"
[net.sourceforge.jburg/jburg "1.10.3"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

Versions

Version
1.10.3
1.10.2
1.10.1