Stephen A. Edwards Columbia University Crown
  COMS W4115
Programming Languages and Translators
The Project: Fall 2004
Home Project
 Overview
  The focus of 4115 will be the design and implementation of a little language. You will divide into teams and design the goals, syntax, and semantics of your language, and implement a compiler for your language.
  Exception: CVN students will do the project individually.
 Resources
  pdf A Two-page Introduction to ANTLR
  An ANTLR example illustrating how to display ASTs. Run SimpLexer.g through ANTLR, compile the generated .java files along with Main.java and run "java Main < test.txt" to both print the AST in a human-readable way and display it in a window.
  The ANTLR homepage
  pdf A two-page introduction to the CVS version control system. I strongly suggest you keep your project under some version control system.
  pdf A sample final report by Chris Conway, Cheng-Hong Li, and Megan Pengelly. It includes the white paper, tutorial, language reference manual, project plan, architectural design, and testing plan. It does not include the lessons learned and code listings sections, although it should.
  Source for the very successful MX language project from Spring 2003
  Other projects from Spring 2003
  Other projects from Fall 2003
 White Papers
  pdf The Java white paper from Sun Microsystems
  C# Introduction and Overview
 Language Reference Manuals
  pdf Dennis M. Ritchie, C Reference Manual
  Kernighan & Ritchie, The C Programming Language
  The C Language Reference Manual (DEC)
  pdf The C Language Reference Manual (SGI)
  The C Language Reference Manual (Microsoft)
  Stroustrup, The C++ Programming Language
  The C++ Language Reference (Microsoft)
  pdf The Java Language Specification
  pdf The C# Language Specification
  Aho, Kernighan, and Weinberger, The AWK Programming Language
 Final Report
 
  1. Introduction
    • Include your language white paper.
  2. Language Tutorial
    • A short explanation telling a novice how to use your language.
  3. Language Manual
    • Include your language reference manual.
  4. Project Plan
    • Identify process used for planning, specification, development and testing
    • Include a one-page programming style guide used by the team
    • Show your project timeline
    • Identify roles and responsibilities of each team member
    • Describe the software development environment used (tools and languages)
    • Include your project log
  5. Architectural Design
    • Give block diagram showing the major components of your translator
    • Describe the interfaces between the components
    • State who implemented each component
  6. Test Plan
    • Show two or three representative source language programs along with the target language program generated for each
      • Show the test suites used to test your translator
        Explain why and how these test cases were chosen
        What kind of automation was used in testing
        State who did what
  7. Lessons Learned
    • Each team member should explain his or her most important learning
    • Include any advice the team has for future teams
  8. Appendix
    • Attach a complete code listing of your translator with each module signed by its author
 Projects
hawkx: Text-to-XML language
PDF fileWhitepaper   

Gregory Baumgardner   
SVL: Service Validation Language
PDF fileWhitepaper   

Shrirang Gadgil   
SML: Specialized Matrix Language
PDF fileWhitepaper   

Patty Ho   
iARM: Image Association Rule Mining Language
PDF fileWhitepaper   

Hassan Malik   
IDML: Identity Management Language
PDF fileWhitepaper   

Ashraf Motiwala   
CODA: Coordination of Distributed Applications
PDF fileWhitepaper   

Nirmal Mukhi   
GEL: Graphics Expression Language
PDF fileWhitepaper   

Amro Nasr   
AML: Array Manipulation Language
PDF fileWhitepaper   

Ayaskanta Pani   
balsa: Asynchronous programming language in the spirit of Balsa
PDF fileWhitepaper   

Jane Sui-tit-tong    Clive John   
TPL: Text Processing Language
PDF fileWhitepaper   

Edward Young   

Copyright © 2005 Stephen A. Edwards Updated Tue Feb 15 15:46:18 EST 2005 All Rights reserved