Assignments

Table of Contents
  1. Rules§1
    1. Syntactic (Due 2026/09/13 at midnight)§2
      1. Getting Started§2.1
        1. Scoreboard§2.2
        2. Dynamic Analysis (Due 2026/09/27 @ midnight)§3
          1. Interpreter§3.1
            1. Analysis§3.2
              1. Scoreboard§3.3
              2. Troubleshooting§4

                This course has three mandetory assignments, which is handed in on Autolab.

                To sign up either follow this link, or use the accces code 0DH0FX.

                Rules §1

                For all these assignments, the following rules apply:

                Syntactic (Due 2026/09/13 at midnight) §2

                Develop the best syntactic analysis you can! (Syntactic Analysis)

                To pass this assignment, you need to achieve a total score of at least 100. Please consult JPAMB for how to setup the project.

                To hand-in the assignment, you must create a file named report.sexp using the following command:

                $ jpamb analyse --report report.sexp <your-program-analysis>

                Then you should check that the report was created correctly:

                $ jpamb validate analyse report.sexp

                Finally, upload report.sexp to Syntactic Assignment on Autolab. You can upload as many times as you want before the deadline.

                It will ask you to confirm that you have followed acedemic integrity policy, which is the same as DTU's.

                Getting Started §2.1

                To get started follow the exercises in Introduction and Syntactic Analysis.

                Scoreboard §2.2

                We have an anonymous scoreboard, be sure to pick a nice nickname.

                Dynamic Analysis (Due 2026/09/27 @ midnight) §3

                Develop the best interpreter you can and turn it into a dynamic analysis! (Dynamic Analysis)

                To pass this assignment, you need to achieve a total score of at least 100 in the analysis part and be able to correctly execute at least half of the cases. Please consult JPAMB for how to setup the project.

                Interpreter §3.1

                First you should build your interpreter as described in Semantics, then evaluate it using:

                $ jpamb interpret --report report.sexp <your-interpreter>

                Then you should check that the report was created correctly:

                $ jpamb validate interpret report.sexp

                After which you can upload it to Concrete Interpreter Assignment on Autolab.

                Analysis §3.2

                Then you have to turn your analysis into a dynamic analysis, to do this consult Dynamic Analysis.

                $ jpamb analyse --report report.sexp <your-program-analysis>

                Then you should check that the report was created correctly:

                $ jpamb validate analyse report.sexp

                Upload the report.sexp file to Dynamic Assignment on Autolab.

                Scoreboard §3.3

                We have an anonymous scoreboard, be sure to pick a nice nickname.

                Troubleshooting §4

                If something is not working, first make sure you have the latest version of JPAMB. Currently it is version 0.7.1

                $ uv pip list 
                ...
                jpamb       0.7.1
                ...

                If not, pull the latest version from github:

                $ git pull --rebase
                $ uv pip install --editable .

                If this does not fix your issue, check Github for open issues, and if your problem is not address there, either create a new issue or email the teacher.