The term project (described below) is an opportunity for you to design and describe your own programming language. Drawing on material in the course as well as your experience as a programmer, you will invariably weigh the numerous choices any language designer faces when they craft a new programming language to meet the particular needs of their intended audience and applications.

The project has two components:

A 5-page Preliminary Report that gives an introductory overview of your programming language. (5%)
A 20-25 page Final Report that fully describes your new programming language, including the following points. (25%)
Motivation: A discussion on the motivation for your new programming language, a comparison with exisitng languages, and the intended audience/applications. (3 marks)
Syntax and Semantics: A reasonably comprehensive presentation of language syntax and semantics. Focus on the more “interesting” features of your language rather than common operators and statements (unless of course that’s where the innovation lies). (8 marks)
Examples: Illustrate your programming language with snippets of code. One “full” program could be included, possibly as an Appendix. (4 marks)
Orthogonality: Does the language support features in a logical and consistent way. (3 marks)
Innovativeness: Does the language include features that are innovative or unique. Combining even common elements in novel ways can contribute to the uniqueness of your language. (3 marks)
Presentation: The written presentation of your report is important and should be easy to follow, well-organized, clear, and complete. (4 marks)

Term Project
The general objective of the term project is to design and present your own high-level programming language. But before one can sit down and design a programming language, it is absolutely necessary to answer a few critical questions:

What is the movitation for your language?
Who is the intended audience (users)?
What are the intended applications?
What type of language will satisfy this audience and its applications?
The answers to these questions will have a significant impact on your design decisions and will influence the feasibility and choice of data types, control statements, subprograms, exception handling, concurrency, and so on. Your final 20-25 page report will therefore be a concise, clear, and comprehensive description of your new programming language, complete with syntax and semantic definitions. Use examples and diagrams whenever possible to clarify your language features. Include as well, snippets of code to show how the language “looks”. In essence, your report is the basis of a new language manual. As a student of computer science and as one who has learned programming languages using texts and manuals, reflect on how you would present a new language to the intended audience.

This project is deceptively challenging. Do budget sufficient time to consider the design issues and to create a programming language that is consistent (orthogonal), well-thought-out, and if possible, unique. Use your imagination and have fun!

Sample Solution

This question has been answered.

Get Answer