Release candidate for DCC 0.1 with minimum viable product for Jasmin Java bytecode generation.
Decaf currently supports Java byte code generation for:
- Functions and calls (#62)
- Console I/O:
ReadLine()
,ReadInteger()
,Print()
(#63) - Control flow:
for
(#61) andwhile
(#59) loops andif
/else
conditional statements - Local and static variables, including reference types (arrays, strings, objects)
- All integer and most double-precision operations, and comparison operators on reference types
- Some array operations (some forms of multidimensional arrays are not supported;
array.length
is not supported)
Refer to src/resources/test/lab4-samples/passed/ for sample Jasmin assembly files generated by DCC.
The following is currently not yet implemented (but will be added in future versions):
- Some multidimensional array operations (assignments to a multidimensional array) (#69)
- Support for
array.length()
(#69) - Support for object-oriented programming
- Java foreign-function interface (allowing calls to the Java standard library)
In this release:
- Fixes an issue where
goto
statements were sometimes generated afterreturn
statements. - All programs with function calls now compile correctly.