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
XAWK: XML Processing language (SE)
PDF fileWhitepaper    PDF fileLRM    Powerpoint fileSlides    PDF fileReport   

John Cieslewicz    Gabriela Cretu    Prashant Puri    Shi-Tak Man   
WCL: Webpage Creation Language (BB)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Matthew Mintz-Habib    Sarah Friedman    Toby Lazar    Miguel Maldonado   
DEVIL: Device Interface Language (BB)
PDF fileWhitepaper    PDF fileLRM    Powerpoint fileSlides    PDF fileReport   

Bok-Lyn Wong    Pranay Tigga    Vishal Singh   
FotoScript: A Simple Language for Image Creation and Editing (SJ)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Matthew Raibert    Norman Yung    Randall Li    James Mooney   
TLA: Three-Letter Acronym (BB)
PDF fileWhitepaper    PDF fileLRM    Powerpoint fileSlides    PDF fileReport   

Neil Sarkar    Olajide Atoyebi    Cody Hess   
PSP: Pre-compiled Server Pages (BB)
PDF fileWhitepaper    PDF fileLRM    Powerpoint fileSlides    PDF fileReport   

O'Neil Palmer   
MRRoboto: Macro Record Robot Language (BB)
PDF fileWhitepaper    PDF fileLRM    PDF fileSlides    PDF fileReport   

Jason Kopylec    Sanjit Tewari    Adam Marczyk    Hemalekha Krishnan   
ELMO: ELMO Loves Manipulating Objects (SJ)
PDF fileWhitepaper    PDF fileLRM    PDF fileSlides    PDF fileReport   

Stephen Lee    Jeffrey Cua    Erik Peterson    John Waugh   
IpsoFracto: Fractal Generation Language (BB)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Sarah Gilman    Robert Notwicz    Leo Gertsenshteyn    Anya Robertson   
PFord: Programming for Dummies (SJ)
PDF fileWhitepaper    PDF fileLRM    Powerpoint fileSlides    PDF fileReport   

Deepti Jindal    Bhagyashree Bohra    Shringika Porwal   
GRIMM: Choose-your-own-story language (BB)
PDF fileWhitepaper    PDF fileLRM    PDF fileSlides    PDF fileReport   

William Liu    Michael Lenner    Rebecca Plummer    Mariya Nomanbhoy   
PSL: Portfolio Simulation Language (SJ)
PDF fileWhitepaper    PDF fileLRM    Powerpoint fileSlides    PDF fileReport   

Alexander Besidski    Wei-Chen Lee    Jian Huang    Xin Li   
SML: Spice Manipulation Language (SE)
PDF fileWhitepaper    PDF fileLRM    PDF fileSlides    PDF fileReport   

Michael Apap    Spencer Greenberg    Ronald Alleyne    Robert Toth   
EZSQL: Simplifying SQL queries (SE)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Syed Ahmad    Bilal Bhatti   
Dyog: Design Your Own Game (SE)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Craig Vargas   
ty: Simplified SQL (SE)
PDF fileWhitepaper    PDF fileLRM   

Tam Yuen   
Spaniel: Span-based Information Extraction Language (SJ)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Adam Lally   
knit: Knitting Pattern Language (SJ)
PDF fileWhitepaper    PDF fileLRM    PDF fileReport   

Tae Yano   

Copyright © 2004 Stephen A. Edwards Updated Wed Jan 19 10:14:09 EST 2005 All Rights reserved