1 / 11

JAM Translator Extreme

December 17, 2007. JAM Translator Extreme. J ulian Schmitz A ndy Chang M ichael Krusel. Structure. Contents of the JAM package >. < Package Hierarchy. Design and Implementation. Analyzer : finds dependencies of inputted class CCPrinter : creates and writes the .cc files

cid
Download Presentation

JAM Translator Extreme

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