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
/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.
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
return
statements forvoid
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
Preview release of the complete Decaf compiler with Jasmin Java byte code generation.
- Adds code generation for
if
,while
, andfor
statements - 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
/case
statements 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
/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.