Research middleware compiler from System F-based languages to Java with the Imperative Functional Object encoding
See the codeThe following instructions should work on any platform, from OS X to Ubuntu. It builds the compiler from source, thus may take some time.
Make sure you have installed the dependencies:
git clone https://github.com/hkuplg/fcore.git
cd fcore
Quick install with stack:
make
You may be prompted to run stack setup, which will automatically
download the GHC compiler if needed.
After the installation, invoking f2j in your console will show
its usage. If not, you probably want to add ~/.local/bin to your
$PATH.
The above instructions should automatically work on Windows.
See doc directory for more details.
F2j has a few built-in compilation methods (by default, it doesn't
use any optimization), namely apply, stack and unbox.
To use one or more of them, simply append the compilation methods you want to use as the command line arguments.
For example, say you want to use the apply method, running the
following command:
f2j -m apply some_file
If you want to combine different methods (say, apply and stack),
just type:
f2j -m apply -m stack some_file
Finally, passing -r flag will make the compiler compile and run the
generated Java code.
There is also a REPL at your service. Simply invoking f2ji will take
you to the REPL.
In the example directory, you will see a lot of example programs
written in FCore. You may want to take a look at them to get familiar
with the syntax. These examples demonstrate different features of our
compiler, such as record syntax, modules, type synonyms, etc.
Particularly, in examples/fractals, there is an interesting program
that draws a fractal.
If you run into any problem, try to do
make clean
and then
make
If the problem persists, create an issue!
BSD 3
See LICENSE at the top-level directory for details.
Haskell
83.0%
Java
11.3%
Yacc
3.6%
Logos
1.6%
Research middleware compiler from System F-based languages to Java with the Imperative Functional Object encoding
See the codeThe following instructions should work on any platform, from OS X to Ubuntu. It builds the compiler from source, thus may take some time.
Make sure you have installed the dependencies:
git clone https://github.com/hkuplg/fcore.git
cd fcore
Quick install with stack:
make
You may be prompted to run stack setup, which will automatically
download the GHC compiler if needed.
After the installation, invoking f2j in your console will show
its usage. If not, you probably want to add ~/.local/bin to your
$PATH.
The above instructions should automatically work on Windows.
See doc directory for more details.
F2j has a few built-in compilation methods (by default, it doesn't
use any optimization), namely apply, stack and unbox.
To use one or more of them, simply append the compilation methods you want to use as the command line arguments.
For example, say you want to use the apply method, running the
following command:
f2j -m apply some_file
If you want to combine different methods (say, apply and stack),
just type:
f2j -m apply -m stack some_file
Finally, passing -r flag will make the compiler compile and run the
generated Java code.
There is also a REPL at your service. Simply invoking f2ji will take
you to the REPL.
In the example directory, you will see a lot of example programs
written in FCore. You may want to take a look at them to get familiar
with the syntax. These examples demonstrate different features of our
compiler, such as record syntax, modules, type synonyms, etc.
Particularly, in examples/fractals, there is an interesting program
that draws a fractal.
If you run into any problem, try to do
make clean
and then
make
If the problem persists, create an issue!
BSD 3
See LICENSE at the top-level directory for details.
Haskell
83.0%
Java
11.3%
Yacc
3.6%
Logos
1.6%