gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
descriptionMicroJava ByteCode to WSL tool
ownerDoni Pracner
last changeTue, 17 Jul 2018 23:54:38 +0000 (01:54 +0200)

MJC2WSL - convert MicroJava Compiled Bytecode to WSL/FermaT

mjc2wsl is distributed under the GPL licence, for more details check the src folder. More about the tools can be found in the "docs" folder.

Quick build and test

Running ant in the folder should compile the tool and then do a test - compile all of the sample MicroJava codes into MJ bytecode, translate them to WSL and then apply the given transformations in MetaWSL to the programs.

Look in the "docs" folder for more details about running the available ant tasks, configurations, installations etc.


Check the docs folder for a more detailed tutorial on how to install FermaT under Linux.

This project should work correctly regardless of operating system, that is it should work fine if you have the above requirements setup properly (java-ant-fermat).

It should be noted that although everything should work on Windows or Mac or whatever else can run the dependencies, it is only (at this point) extensively tested under Linux. Feel free to ask about problems running it, suggestions for improving the platform Independence are welcome.

Setting the FermaT dir

The ant build script assumes that Fermat is in "C:/fermat3" under Windows and "~/fermat3" for everything else (Linux/Mac...).

If you need to change this you can rename (or copy) the given file "" to "" and specify a correct path for your system.

About MicroJava

This is a simple language made by H. Mössenböck for a Compiler Construction course. It is NOT the same as Java Micro Edition (JavaME) used on mobile phones.

For details about the language and the version used in this project check out the "docs" folder.

More about the course, the language and its VM:

A functional compiler is distributed in the lib folder for ease of testing and evaluating. Check the folder for further details.

Git status and mirrors

The master branch should hold a stable version at all times. The work branch is usually the current status of the tool, probably stable as well, but more experimental and untested. There is a possibility of other feature branches appearing here and there. These are not neccessarily on all mirrors at the same time. Efforts are made that master is always in sync.

mjc2wsl has a primary git repo on

mirrors are also available:


Project home:

Feel free to contact Doni Pracner if you have any problems, ideas or suggestions.

2018-07-17 Doni Pracnerversion string 1.0.0 master v1.0.0
2018-07-17 Doni PracnerTransMessages improvements
2018-07-17 Doni Pracnerrename main class to Mjc2wsl
2018-07-17 Doni Pracnermjc2wsl, error message for converting the stream
2018-07-17 Doni Pracnermjc2wsl, typo
2018-07-17 Doni Pracnermjc2wsl, give up if there are unknown options
2018-07-17 Doni PracnerMicroJavaInput, constructor, other improvements
2018-07-17 Doni PracnerMJInput, move the properties file to the proper package
2018-07-05 Doni Pracnermake log times even more specific
2018-01-20 Doni Pracnerversion 0.2.2 - minor improvements v0.2.2
2018-01-20 Doni Pracnermetrics script renamed to metrics_csv, like in the...
2018-01-20 Doni Pracnermetrics script, copyright years
2018-01-20 Doni Pracnerwsl scripts, new ARGV handling
2017-09-19 Doni Pracnerwsl metrics, different columns
2017-08-26 Doni PracnerMJ compiler jar update
2017-08-03 Doni Pracnerant, optional args to transf script
10 months ago v1.0.0 version 1.0.0
16 months ago v0.2.2 version 0.2.2 - minor improvements
3 years ago v0.2.1 version 0.2.1
4 years ago v0.2.0 Version 0.2.0
4 years ago v0.1.8 version 0.1.8
4 years ago v0.1.7 version 0.1.7
4 years ago v0.1.6 version 0.1.6
5 years ago v0.1.5a v0.1.5 with the addition of the...
5 years ago v0.1.5
5 years ago v0.1.4
5 years ago v0.1.3
5 years ago v0.1.2
6 years ago v0.1.1
5 months ago work
10 months ago master maintanance Doni Pracner