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