C pretty printer – takes a C program and "prettifies"
it, i.e. re-writes it with proper indentation, etc.
2 students
C preprocessor – takes a C file and handles the preprocessing
commands (#include, #define, etc.) and generates a "pure" C file
3 students
Static checker for C – takes a C program and performs static
checks on it (e.g. syntactic errors, reports type mismatches, whether a
variable is being used without initialization/declaration, etc.)
3-4 students
Syntax directed editor for C
2-3 students
Interpreter for C – program to interactively run a C program (see IGCC for the general idea, but DO NOT copy / look at their code)
Lex – your own (simplified) version of the lexical analyzer
generator
4 students
LL(1) parser generator – takes a grammar and builds an LL(1)
parser program
2-3 students
LR(1) parser generator – as above, for LR(1) grammars = your own
simplified version of yacc
4 students
latex2html/html2latex – takes a LaTeX (typesetting language for
formatting text) input file, and generates an "equivalent" html
file, and vice-versa
3-4 students
GUI/WYSIWYG front end for LaTeX
html2text – takes an HTML page, and generates a properly
formatted plain text version of the same
2 students
Bookmark converter – converts bookmark files from one browser
format to another (Firefox, Chrome, Opera, IE, Safari)
2 students
Markup languages for chemical equations/mathematical equations – you have to design the language, write a parser/validator, and write a renderer (using Java / GTK / Motif / XSLT+Browser etc.)
Software simulator for 8086 or 8088 CPU – "virtual machine" for
the 8086/8088 instruction set (program will take a program in machine
language, create an "address space" for the program and then run it in that
address space)
3-4 students
More project ideas:
Last modified: Tue Aug 28 21:51:47 IST 2012