1 / 11

Overview and Implementation of the JAM Translator Package

This document outlines the structure and implementation of the JAM Translator package developed by Julian Schmitz, Andy Chang, and Michael Krusel. It details the various components within the package, including the Analyzer for dependency resolution, the CCPrinter and HPrinter for creating C++ files, and tools for handling class, field, method, and parameter information. The execution flow is clarified, highlighting the Runner's role as the entry point. The testing phase involved Eclipse and GDB for debugging, with manual testing conducted due to time constraints. Insights into challenges faced during development are also discussed.

cid
Télécharger la présentation

Overview and Implementation of the JAM Translator Package

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. December 17, 2007 JAM Translator Extreme Julian Schmitz Andy Chang Michael Krusel

  2. Structure Contents of the JAM package > < Package Hierarchy

  3. Design and Implementation • Analyzer: finds dependencies of inputted class • CCPrinter: creates and writes the .cc files • ClassInfo: stores necessary info about a class • ConfigPath: handles source and output paths • FieldInfo: stores necessary info about a field • FileUtils: manages file copying and searching • Finder: finds types and overloaded methods • HPrinter: creates and writes the .h files

  4. Design and Implementation • Mainer: creates and writes Main.cc • MethodInfo: stores needed info for a method • ParamInfo: stores needed info for a parameter • Reprinter: adjusts spacing for .cc files • Runner: entry point for the translator • Transformer: transform ASTs to <>Info objects • Unparser: translates nodes into strings • ValueInfo: stores needed info for a field’s value

  5. Execution

  6. Execution • Runner receives an input • Runner calls ConfigPath • Runner calls Analyzer • Runner calls Mainer • Runner calls HPrinter • Runner calls CCPrinter • CCPrinter calls Unparser • Unparser calls Finder • CCPrinter calls Reprinter

  7. Output

  8. Output

  9. Testing • Eclipse and GDB debugger • System.out.println() debugging • Manual testing with test package • Test.java and Rest.java from Professor Grimm • No automated testing for lack of time

  10. Easy, Hard, Surprising • Using xtcvistors was easy • Making tabs was hard • Finding types was hard • C++ compiling and running was surprising

  11. Questions?

More Related