| Home |
|
Student Resources |
|
Project suggestions |
|
The aim of this project is to build an abstract syntax representation of some programming language. I recommend either C or Pascal for student projects as these are relatively simple languages and it should be possible to complete such a project in a term or semester. The project is also possible for more complex languages such as Ada or C++ but will take longer. Students must know a bit about compiler construction and I recommend using tools such as lex and yacc to construct the language parser. A simple graphical interface should be developed to display the abstract syntax tree. Once constructed, this tree can be the basis of a number of other projects to build language-oriented tools.
A set of components to support graphical editing
Graphical editing systems involving the manipulation of simple graphical objects such as circles, rectangles, etc. are part of many tools and a basic component set may be used to simplify the construction of these editors. The aim of this project is to build a set of objects or abstract data types which may be used as a basis for constructing graphical editors. You should include components to represent rectangles, ellipses, polygons with the ability to connect these using lines of different thicknesses. It should be possible to colour entities, move them around, re-size them, group and ungroup them, etc.
An integrated help and message system
This system should be designed as a set of abstract data types so that it may be incorporated as a component in other systems. Your design should take into account that the system may have to present help and messages at different levels of detail and in different languages.
A screen and forms generator.
The objective of this project is to build a system which allows the user to create form and screen
designs interactively by specifying fields on the form, their contents and their constraints. The system
may be interfaced with some database management system. Pay attention to the fact that the text
displayed in fields may exceed the field size so scrolling of each individual field should be supported.
| Legal and Privacy Notice |