neil's webbly world
learn Russian
Neil Johnson's Lab Pages

University of Cambridge Computer Lab

Part 2 / Diploma Computer Science Project Suggestions

This is a list of ideas for possible Part 2 projects that I am willing to supervise or provide further input to. If you are interested in any of these projects for your final year, please contact me at the usual address.

If you are interested in any of these projects, or have an idea for a similarly related project, please get in touch so that we may discuss your proposal.


Email me at

Compilers, Code Generation, Programming Languages

Micromachine Assembler and Simulator

This project is to design and implement an assembler and simulator for a micromachine used within a large multicore processor. The micromachine is a small 8-bit controller with a set of 7 instructions and very limited data. It is used to control NAND memory operations, for which a further 6 instructions relate to that specific application.

The assembler translates human-readable instructions and operands into a C static array for inclusion into other software. In the first instance the assembler should provide basic assembly operation. This may then be further enhanced with file inclusion and macro functionality. This tool is expected to be part of a larger build system and so needs to provide a standard command line interface. It is a requirement that the assembler be written in C or C++.

The simulator should be graphical tool, showing how the micromachine interprets the set of instructions and how it manipulates the registers under its control. It is intended that it would be used during microcode development and should provide all useful information (instruction counts, timing information, etc) to the user. This tool may be written in any language and GUI environment, although Java is recommended as it preferable that the simulator work on Linux and Windows platforms.


  • Familiarity with C/C++ (for assembler)
  • Basic understanding of lexical analysis, parsing, grammars
  • Java + GUI programming (for simulator)

This project is in cooperation with Broadcom Corp

Copyright © 2001-2014 Neil Johnson