Stephen A. Edwards Columbia University Crown
  COMS W4115
Programming Languages and Translators
The Project
Home Project
  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.
  PDF File (for Acrobat) A Two-page Introduction to ANTLR
  The ANTLR homepage
  PDF File (for Acrobat) A two-page introduction to the CVS version control system. I strongly suggest you keep your project under some version control system.
 White Paper
  PDF File (for Acrobat) The Java white paper from Sun Microsystems
  C# Introduction and Overview
 Language Reference Manual
  PDF File (for Acrobat) Dennis M. Ritchie, C Reference Manual
  Kernighan & Ritchie, The C Programming Language
  The C Language Reference Manual (DEC)
  PDF File (for Acrobat) The C Language Reference Manual (SGI)
  The C Language Reference Manual (Microsoft)
  Stroustrup, The C++ Programming Language
  The C++ Language Reference (Microsoft)
  PDF File (for Acrobat) The Java Language Specification
  PDF File (for Acrobat) The C# Language Specification
  Aho, Kernighan, and Weinberger, The AWK Programming Language
 Final Report
  PDF File (for Acrobat) A sample final report by Chris Conway, Cheng-Hong Li, and Megan Pengelly from 4115 last term. 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
  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

Copyright © 2004 Stephen A. Edwards Updated Thu Jan 22 23:02:12 EST 2004 All Rights reserved