Coding tasks
The coding task is to complete the Truffle-based implementation of the JaraScript AST interpreter. The baseline for the task is available in the master branch, but we encourage you to use the work-in-progress branch that we worked on during the lab as your starting point.
To successfully complete the first task, you must pass all the tests in the
TruffleInterpreterTest
class. The task is worth 16 points if all the tests
pass, or a proportional number of points if only some tests pass.
The following tasks are about enhancing your Truffle-based implementation of the JaraScript AST interpreter to pass additional test suites aimed at testing the partial evaluation of the interpreter. The test suites and points assignment are as follows:
TrufflePartialEvaluationTest
: 10 points proportionally according to the number of passing tests.TruffleCompilationStressTest
: 4 points for all tests passing.TruffleCompilationWarningsTest
: 3 points for all tests passing.TruffleOSRTest
: 3 points.
The tests, both in JaraScript and Java code, also include additional explanations and hints as comments.
Note that your implementation must not modify the upstream version of DebugRootNode
,
and it must maintain the wrapping of your RootNode
implementation with DebugRootNode
as implemented in the master branch.
The deadline for completing the implementation is before the last lecture of the semester: Tuesday, May 20 2024, 23:59.
Resources
- Examples from the lab
- A Typical Truffle Specialization Pitfall
- Simple Language: an extensive example of Truffle API usage. Note: JaraScript is simpler than Simple Language.