Stephen A. Edwards Columbia University Crown
  COMS W4115
Programming Languages and Translators
The Project: Fall 2003
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.
 Resources
  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.
  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 from Spring 2003
  Other projects from Spring 2003
 White Papers
  PDF File (for Acrobat) The Java white paper from Sun Microsystems
  C# Introduction and Overview
 Language Reference Manuals
  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
 
  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
ASML Array Sorting and Manipulation Language
Elena Whitepaper LRM Final report
Olga Davidov
BATS A Geometric Figure Drawing Language
Stephen Whitepaper LRM Final presentation Final report
Behrooz Badii Aleksandr Borovinskiy Tanya Shtemberg Sui Sum Wong
c.def Macromedia Flash Animation Language
Josh Whitepaper LRM Final presentation Final report
Dennis Rakhamimov Eric Poirier Charles Catanach Tecuan Flores
CHAD Algorithm Animation Language
Elena Whitepaper LRM Final presentation Final report
Haronil Esteves Diana Jackson Catherine MacInnes Adam Rosenzweig
Espresso Hypercard-like Java Applet Language
Josh Whitepaper LRM Final presentation Final report
Joya Zuber Philip Coakley Aaron Bauman Erin Adelman
JAWS Space Shooter Video Game Language
Avi Whitepaper LRM Final presentation Final report
Justin Lu Andy Guo Xin Winston Chao Shoaib Anwar
Joker Card Game Programming Language
Josh Whitepaper LRM Final presentation Final report
Jeffrey Eng Jonathan Tse Howard Chu Timothy SooHoo
LCSL Logic Circuit Simulation Language
Stephen Whitepaper LRM Final presentation Final report
Sachin Nene Chaue Shen Bogdan Caprita Julian Maller
MAPWAD 3D Modeling Langauge for Generating Mazes
Avi Whitepaper LRM Final presentation Final report
Avrum Tilman Ben Smith Josh Weinberg Ron Weiss
MrProper Chat Client Log File Manipulation Language
Elena Whitepaper LRM Final presentation Final report
William Blinn Jeffrey Lin Nabil Shahid Matt Anderegg
mTunes MIDI Music Development Language
Avi Whitepaper LRM Final presentation Final report
Sharon Price HeeWook Lee Hideki Sano Huitao Sheng
PML Polynomial Manipulation Langauge
Elena Whitepaper LRM Final presentation Final report
Hari Kurup Melinda Agyekum Shezan Baig Subadhra Sridharan
SAL Service Level Agreement Language
Stephen Whitepaper LRM Final report
Donna Eng Dillenberger
SASSi Statistics Language
Josh Whitepaper LRM Final presentation Final report
Carl Morgan Paul Salama Xiaotang Zhang
SPINNER Motion Control Language for SPIN
Stephen Whitepaper LRM Final presentation Final report
William Beaver Marc Eaddy Gaurav Khandpur Sangho Shin
WHOM Wizard of House Management
Stephen Whitepaper LRM Final presentation Final report
Rui Kuang Andrey Butov Arvid Bessen Svetlana Starshinina
XQ XML Query Language
Avi Whitepaper LRM Final report
Kin Ng

Copyright © 2003 Stephen A. Edwards Updated Thu Dec 18 22:55:01 EST 2003 All Rights reserved