Second Year Labs
The second year labs (consisting of sub-modules CO261, CO261C and CO276) are coordinated by Mark Wheelhouse. The individual pieces of labwork in the second year are both larger and longer than those encountered in the first year. You are advised to leave plenty of time to work on these exercises as you will find it very hard to complete them at the last minute.
The Second Year Laboratory program is broken down into 6 main components:
- Pintos: Operating Systems Lab (group exercise)
- C True Concurrency (individual exercise)
- Linkload (individual exercise)
- CI+CD - Continuous Integration/Deployment Experiments (individual exercise)
- Prolog Coursework (pair exercise)
- WACC: Compiler Lab (group exercise)
Pintos: Operating Systems Lab
The Pintos Operating Systems Lab lasts for the majority of the Autumn term. As part of the lab, you will be designing and implementing the core parts of a simple operating system for the x86 platform. The lab consists of three difficult tasks, which are spread throughout the term (preceded by a short introductory task). The tasks require strong C implementation skills, so be sure to review your notes from the first year.
We will distribute the documentation for the Pintos lab, which consists of over 100 pages describing the operating system framework that you will be working with, right at the start of the new acadmic year. It is advised that you familiarize yourselves with the provided code the supporting documentation as soon as possible.
A proportion of your Pintos marks (across all tasks) will count towards the Operating Sysytems (CO211) module total.
Note that JMC students are not required to complete the final milestone of the Pintos Operating Systems Lab (part of CO261C).
WACC: Compiler Lab
The WACC Compiler Lab lasts for the majority of the Spring term. As part of the lab, you will be designing and bulding a compiler for the WACC programming language from scratch. The lab is assessed at 3 milestones, which are spread throughout the term. The tasks require strong Java implementation skills and knowledge of the ARM acrhitecture, so be sure to review your notes from the first year.
We will distribute the documentation for the WACC lab early in the Spring term, as well as how to access a reference implementation of a WACC compiler. There is a lot to read and experiment with, so be sure to start looking over this material early.
The first coursework of the Compilers module (CO221) will provide an introduction to the WACC language via a specification writing exercise.
Note that JMC students are not required to complete the final milestone of the WACC Compiler Lab (part of CO261C)