Giter VIP home page Giter VIP logo

jfirm's Introduction

                                   jFirm
                           a Java binding for libFirm

1. Introduction

libFirm is a library to repesent computer programs in order to analyse and
transform them. Its main application is compiler construction.

jFirm is a binding of the libFirm library to java.
Design goal was to make usage easy and class/type hierarchies transparent where
possible. The intended target are students in a compiler construction course.
The binding often prefers readabilty/ease of use over performance and memory
efficiency.

Note: This version contains no bindings for the optimisation functions
(students should develop their own optimisations).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2. Usage

2.1 JNA
Make sure the lib directory is in your CLASSPATH because libfirm depends on the
JNA.jar java library

2.2 Native Code
We ship several prebuilt libraries containing the native libFirm code with jFirm:

	lib/libfirm.so    - linux x86 Version
	lib/libfirm.dylib - Mac OS/X (Leopard) Version

a) Linux

You have to make sure java can find these platform specific libraries.
On Linux this works by setting the LD_LIBRARY_PATH environment variable to the
directory that contains the library.

b) Mac

You have to make sure java can find these platform specific libraries.
On the Mac this works by setting the DYLD_LIBRARY_PATH environment variable to
the directory that contains the library.

c) Windows

You have to make sure java can find these platform specific libraries.
On Windows this works by setting the PATH environment variable to the directory
that contains the library.

2.4 Compile Java Source
Just compile the java sourcecode. You have to set your java compiler to
be at least jdk 1.5 (java 5) compliant.

There's a simple brainfuck compiler included for testing.

2.3 Eclipse Users:

Remember to add JNA.jar to JFirms build Java build path and to set your jdk
compliance level to 1.5.
To set the LD_LIBRARY_PATH/DYLD_LIBRARY_PATH environment variables you have to
set them as Environment variables in your Run Configurations (pointing them to
${project_loc:JFirm}/lib or something similar).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3. Contact

	[email protected]

jfirm's People

Contributors

matzeb avatar uniqp avatar manuelmohr avatar fread avatar kha avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.