Skip to content

DCC 0.1 Release Candidate 1

Latest
Compare
Choose a tag to compare
@hawkw hawkw released this 28 Dec 19:15
· 4 commits to master since this release

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) and while (#59) loops and if/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 after return statements.
  • All programs with function calls now compile correctly.