Content Frame
[Skip Breadcrumb Navigation]
Home  arrow Student Resources  arrow Project suggestions  arrow Software components

Software components
 
An abstract syntax tree for some programming language

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.




Copyright © 1995-2006 Pearson Education. All rights reserved.
Legal and Privacy Notice
Pearson Education

[Return to the Top of this Page]