There are four assignments for SWEN430. These are based on the While Language Compiler which can can be downloaded from here:

  • WhileLang v1.2 Source. (Download here: TGZ)
  • While Language Specification. (Download here: PDF)
  • While Language Grammar. (Download here: PDF)

Details of the assignments are as follows, and more information will follow when the assignment is released:

  • Assignment 1 (Parsing and Interpretation, due Monday 19th July). In this assignment, you will extend the While compiler with new language feature. This will require modifying the Parser, the Abstract Syntax Tree and the Interpreter to support the new feature. (PDF, TGZ)

  • Assignment 2 (Type Checking, due Monday 9th August). In this assignment, you will extend the While compiler with a new kind of type. This will require modifying the Parser, Abstract Syntax Tree and Type Checker to support this new type. (PDF, TGZ)

  • Assignment 3 (Java Bytecode, due Monday 6th September). In this assignment, you will complete the Java Bytecode code generator for the While compiler. This will require working with the Jasm library for reading and writing Java bytecodes. (PDF, TGZ, DOC)

  • Assignment 4 (x86 Machine Code, due Friday 1st October). In this assignment, you will complete the x86 code generator for the While compiler. This will require working with the Jx86 library for writing x86 machine code. (PDF, TGZ)
Topic attachments
I Attachment Action Size Date Who Comment
WhileLangGrammar.pdfpdf WhileLangGrammar.pdf manage 122 K 20 Jul 2021 - 21:01 Main.djp  
WhileLanguageSpec.pdfpdf WhileLanguageSpec.pdf manage 310 K 20 Jul 2021 - 21:00 Main.djp  
assignment-2.pdfpdf assignment-2.pdf manage 104 K 20 Jul 2021 - 21:01 Main.djp  
assignment-3.pdfpdf assignment-3.pdf manage 93 K 10 Aug 2021 - 13:27 Main.djp  
assignment-4.pdfpdf assignment-4.pdf manage 156 K 09 Sep 2021 - 14:31 Main.djp  
assignment1.tgztgz assignment1.tgz manage 6 K 07 Jul 2021 - 14:06 Main.djp  
assignment2.tgztgz assignment2.tgz manage 12 K 20 Jul 2021 - 21:00 Main.djp  
assignment3.tgztgz assignment3.tgz manage 7 K 09 Aug 2021 - 20:35 Main.djp  
assignment4.tgztgz assignment4.tgz manage 56 K 08 Sep 2021 - 16:35 Main.djp  
whilelang-v1.0.tgztgz whilelang-v1.0.tgz manage 60 K 06 Jul 2021 - 15:12 Main.djp  
whilelang-v1.1.tgztgz whilelang-v1.1.tgz manage 66 K 20 Jul 2021 - 20:59 Main.djp  
whilelang-v1.2.tgztgz whilelang-v1.2.tgz manage 67 K 09 Aug 2021 - 20:34 Main.djp