Releases: hawkw/decaf
DCC 0.1 Release Candidate 1
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/elseconditional 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.lengthis 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
gotostatements were sometimes generated afterreturnstatements. - All programs with function calls now compile correctly.
DCC 0.1 Preview 2
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
returnstatements forvoidfunctions - 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
Preview release of the complete Decaf compiler with Jasmin Java byte code generation.
- Adds code generation for
if,while, andforstatements - Adds code generation for
ReadLine(),ReadInteger(), andPrint() - 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
DCC release with semantic-analysis functionality.
DCC Semantic 0.1b1
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
- Made the value and default clause in
switch/casestatements optional.
DCC Syntactical v1.0rc1
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/defaultconditional 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.