Stephen A. Edwards Columbia University Crown
  COMS W4115
Programming Languages and Translators
The Project: Fall 2005
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
ANIMO: Character Animation Language (RJP)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Alexei Masterov    Natasha Shamis    Joshua Samuel Poritz   
BECY: Tabular-data Manipulation Language (RJP)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Bong D Koh    Eunchul Bae    Cesar Vichidovega    Yongju Bang   
CEAS: HTML Content Extraction Language (CLC)
PDF fileProposal    PDF fileLRM    PDF fileSlides    PDF fileReport   

Luis R Alonso    Hila Becker    Kate McCarthy    Isa M Muqattash   
DBFile: HTML report creation from a delimited text file (RJP)
PDF fileProposal    PDF fileLRM    PDF fileSlides    PDF fileReport   

Erwin R Polio    Amrita Rajagopal    Anton Ushakov    Howard Ronald Vegter   
FIREDRL: Firewall Integrity Review Exploit Description Report Langauge (SAE)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Marvin Rich   
gscc: A General Search and Compare Compiler (CLC)
PDF fileProposal    PDF fileLRM    PDF fileSlides    PDF fileReport   

Enrique Kresla Garrido    Russel Edward Santillanes    Casey Delaney Callendrello    Ho Yin Cheng   
HGL: Hypertext Generation Language (RJP)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Yan S Koyfman    Shruti L. Gandhi    Timothy D Kaczynski    Edward Enrique Mezarina   
LogSim: Logic Simulation Language (SAE)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Xunzhou Zhang    David Songchen Lau    Mukul Khajanchi    Nithya S Ganesan   
MATVEC: Matrix-Vector Computation Programming Language (CLC)
PDF fileProposal    PDF fileLRM    PDF fileReport   

John C. Murphy   
Mohawk: AWK-like language (CLC)
PDF fileProposal    PDF fileLRM    PDF fileSlides    PDF fileReport   

Joeng Hyuk Kim    Christian Daniel Murphy    Ryan S Overbeck    Lauren Gabrielle Wilcox   
NIL: Network Infrastructure Language
PDF fileProposal   

Nathan M Kimura   
Patternizer: Recursive Pattern Creation and Manipulation (SAE)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Adam S Vartanian    Boriana H Ditcheva    Marinos Constantinides    Yianni Panos Alexander    Yavor T Tchakalov   
Photogram: Programmable Photoshop Language (CLC)
PDF fileProposal    PDF fileLRM    PDF fileSlides    PDF fileReport   

Ohan Oda    Neesha Subramaniam    Richard J Ng    Seikwon Kim   
Poly: Polynomial manipulation language (SAE)
PDF fileProposal    PDF fileLRM    PDF fileSlides    PDF fileReport   

Darrell J Bethea    Michael G Dougherty    Santosh Thammana    Mohit Chandru Vazirani   
SFPL: Simple Floorplan Language (SAE)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Huang-Hsu Chen    Xiao Song Lu    Natalia Igorevna Nezhdanova    Ling Zhu   
skyEM: Exam Maker (RJP)
PDF fileProposal    PDF fileLRM    PDF fileReport   

SeungJin Nam    Yonghan Kim   
Surfer: Web-surfing language (CLC)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Khai Quang Vuong    Javier Coca    George Thomas Sirois   
HBA: Text-to-HTML converter for Host Bus Adapter Reports (SAE)
PDF fileProposal    PDF fileLRM    PDF fileReport   

Yi Gong   

Copyright © 2005 Stephen A. Edwards Updated Wed Dec 21 16:13:37 EST 2005 All Rights reserved