David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect...
-
Upload
claud-wilkinson -
Category
Documents
-
view
214 -
download
3
Transcript of David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect...
![Page 1: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/1.jpg)
David LOU – Project Manager
Markus SCHANTA – Language Guru
Long CHEN – System Architect
Xiaolong JIANG – System Integrator
Jingbo YANG – Tester & Validator
![Page 2: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/2.jpg)
SIMPL - Motivation• General purpose languages require quite a bit of
overhead to read and write images using builtin libraries.
• Pixel-by-pixel manipulation is quite tedious. To do the same manipulation to the same pixel, you must use nested for loops in Java.
• Image manipulation software (e.g. Photoshop) are very limited in the types of automated manipulation that one might perform.
![Page 3: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/3.jpg)
SIMPL – Feature Highlights• Arrays in SIMPL are fixed in dimension, but
dynamic in size.
• Operators are overloaded to perform element-wise manipulations on arrays.
• Mathematical builtin functions (e.g. log, pow) are also overloaded for element-wise manipulation on arrays.
![Page 4: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/4.jpg)
Example 1 – Correcting Brightness
![Page 5: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/5.jpg)
Example 2 – Image Difference
![Page 6: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/6.jpg)
Example 3 – Noise Reduction
![Page 7: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/7.jpg)
SIMPL – Translator Architecture
![Page 8: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/8.jpg)
SIMPL – Implementation Highlights (Symbol Table)• Symbol Table: A Stack of HashTable <String,
SymbolUnit>
• Interface for tree walker
• enterBlock• enterFunction• exit• declareSymbol• getSymbol• setSymbol
![Page 9: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/9.jpg)
SIMPL – Implementation Highlights (cont.)• Type coercions follow a type hiearchy: ints are
automatically cast to floats, but floats must be manually cast to ints.
• Dynamic arrays automatically double in size when an element is assigned to an index out of bounds with respect to the current size of the array.
• Efficient iterator implemented for computing element-wise operations.
![Page 10: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/10.jpg)
Project Management• Project was divided into two major phases:
• Language Design• Implementation
• Kernel implementation (basic types + control flow)• User-defined functions including recursion• Dynamic array implementation + builtin functions
• Weekly meetings for progress updates.
• Aggressive deadlines and milestones kept us consistently ahead of schedule so we would have plenty of time for testing.
![Page 11: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/11.jpg)
Technologies Used• Language Implementation
• Lyx for generating documents (LRM, Tutorial, etc).• ANTLR – Lexer & Parser• Java & Eclipse for development environment
• Java: SIMPL programs live in the Java Virtual Machine
![Page 12: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/12.jpg)
Test Plan• Early on, regression test-suite was built for
anticipated SIMPL programs.
• Three types of tests:
• I/O Tests – Majority of our tests• Tree-Walk tests• Component-specific tests
• I/O tests take as input file a SIMPL program and the expected output.
• Tree-walk tests verify correct behavior for small ASTs.
• Built for testing dynamic arrays and image I/O.
![Page 13: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/13.jpg)
Conclusions• Lessons learned:
• Start early! • Have mechanisms for resolving or mitigating
conflicts. • Be rigorous about testing.
• What worked well:
• Generating grammar in ANTLR.• Communication.
• What would we have done differently:
• Would be interesting to design this as a dynamically typed language.
• Why use SIMPL?
![Page 14: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/14.jpg)
Demo
![Page 15: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/15.jpg)
Q & A
![Page 16: David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.](https://reader036.fdocuments.in/reader036/viewer/2022070415/5697c0301a28abf838cdab9c/html5/thumbnails/16.jpg)