Skip to content

Releases: hawkw/decaf

DCC 0.1 Release Candidate 1

28 Dec 19:15
Compare
Choose a tag to compare

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.

DCC 0.1 Preview 2

28 Dec 18:50
Compare
Choose a tag to compare
DCC 0.1 Preview 2 Pre-release
Pre-release

Preview release of the complete Decaf compiler with Jasmin Java byte code generation.

  • Fixes the AST issue that prevented some correct programs from compiling (see #64)
  • Adds explicit return statements for void functions
  • Adds rudimentary code generation for some array operations (length is not supported, multidimensional arrays are not completely supported)

This is NOT a stable release. Some features are not implemented and/or may fail in undocumented ways. This is a preview only.

DCC 0.1 Preview 1

21 Dec 18:22
Compare
Choose a tag to compare
DCC 0.1 Preview 1 Pre-release
Pre-release

Preview release of the complete Decaf compiler with Jasmin Java byte code generation.

  • Adds code generation for if, while, and for statements
  • Adds code generation for ReadLine(), ReadInteger(), and Print()
  • Adds code generation for local, static function calls
  • Adds code generation for basic operatiors and comparisons

This is NOT a stable release. Some features are not implemented and/or may fail in undocumented ways. This is a preview only.

DCC Semantic 1.0

17 Nov 02:24
Compare
Choose a tag to compare

DCC release with semantic-analysis functionality.

DCC Semantic 0.1b1

31 Oct 14:11
Compare
Choose a tag to compare
DCC Semantic 0.1b1 Pre-release
Pre-release

This is the "checkpoint" prerelease release for semantic-analysis functionality.. Most of the semantic analysis we intend to perform (see the semantic milestone) is still in progress, but we catch some basic semantic errors.

DCC Syntactical 1.0 release candidate 2

10 Oct 18:59
Compare
Choose a tag to compare
  • Made the value and default clause in switch/case statements optional.

DCC Syntactical v1.0rc1

10 Oct 16:58
Compare
Choose a tag to compare
Pre-release

This is the initial Release Candidate 1 for the syntactical analysis component of the Decaf compiler. It performs lexical analysis and generates abstract syntax trees for:

  • All Decaf statements described in the Decaf spec provided by Dr. Jumadinova (pull request #17)
  • The switch/case/default conditional construct (pull request #20)
  • The unary increment (n++) and unary decrement (n--) operators (pull request #14)

This release also contains the first release of the runnable dcc jar file for the Decaf compiler. Note that this does not actually contain a complete working compiler, as the semantic analysis and code generation portions of the compiler have yet to be implemented. The dcc jar file included with this release simply generates parse trees for Decaf programs as a demonstration of the Decaf parser.

The state of the codebase at this release (Git tag syntactical-1.0rc1) corresponds to our submission for Lab 2 for Computer Science 420.