Stephen A. Edwards Columbia University Crown
  COMS W4115
Programming Languages and Translators
The Project: Spring 2006
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
OrgForm: Organic Form Language
PDF fileProposal    PDF fileLRM    PDF fileReport   

Eric Larson   
LPL: Log Processing Language
PDF fileProposal    PDF fileLRM    PDF fileReport   

Eugene Kozhukalo   
PCL: Portable Charting Language
PDF fileProposal    PDF fileLRM    PDF fileReport   

Thomas Chou    Chee seng Choong   
SLang: Stock Analysis Language
PDF fileProposal    PDF fileLRM   

Ray Siu   
IML: Image Manipulation Language
PDF fileProposal    PDF fileLRM    PDF fileReport   

Travis Galoppo   
TingStim: Stimulator/Interface Test Driver
PDF fileProposal    PDF fileLRM    PDF fileReport   

Alvin Ting   
NOPL: Network-Oriented Programming Language
PDF fileProposal    PDF fileLRM    PDF fileReport   

Daniel Faltyn   
OQL: Object-Oriented Query Language
PDF fileProposal    PDF fileLRM    PDF fileReport   

Zhongling Li   

Copyright © 2006 Stephen A. Edwards Updated Fri May 12 00:19:09 EDT 2006 All Rights reserved