David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.

Slides:



Advertisements
Similar presentations
Chapt.2 Machine Architecture Impact of languages –Support – faster, more secure Primitive Operations –e.g. nested subroutine calls »Subroutines implemented.
Advertisements

Team Members Digvijay Singh(ds3161) – Project Manager Snigdha Reddy Challa(sc3545) – Language Guru Rashmi Prithyani(rp2614) – System Integrator Tanmay.
A System to Generate Test Data and Symbolically Execute Programs Lori A. Clarke September 1976.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
PSL: An Interpretative Programming Language for Financial Portfolio Simulation and Manipulation Alexander Besidski Xin Li Jian Huang Wei-Chen Lee.
BROOM: A Matrix Language Chris Tobin Michael Weiss Gabe Glaser Brian Pellegrini.
WPSM Programming Language A simple language that transform simple data structure into complex xML format Wai Y. Wong Peter Chen Seema Gupta Miqdad Mohammed.
B iological S cripting L anguage Jared Eng Jay Kota Igor Marfin Amna Qaiser Jared Eng Jay Kota Igor Marfin Amna Qaiser BSL.
Mx? A programming language for scientific computation. Related Languages: Matlab IDL Maple, Mathcad, Mathematica.
CS 225 Section 1 Spring Topics Software design Correctness and Efficiency Inheritance Data structures –Lists, Stacks, Queues –Trees –Sets, Maps.
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Environments and Evaluation
(S i m p l e) ? P D F M a n i p u l a t i o n L a n g u a g e Stefano Pacifico Jayesh Kataria Dhivya Khrishnan Hye Seon Yi.
ESL - A language for Social Networks Team : Fantastic Four Ashwath Narsimhan – Project Manager Jyotsna Sebe – System Architect Shailesh Saroha – System.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Programming Languages and Translators Fall 2007 Eli Hamburger Michele Merler Jimmy Wei
The CILY Programming Language Exactly What the World Needed.
1 Type Type system for a programming language = –set of types AND – rules that specify how a typed program is allowed to behave Why? –to generate better.
CSCE 330 Project Algol 68 Joe PuzioWael AL-Fayez Gaurav ShahRonak Patel.
Data Structures and Programming.  John Edgar2.
ANTLR.
ANTLR Andrew Pangborn & Zach Busser. ANTLR in a Nutshell ANother Tool for Language Recognition generates lexers generates parsers (and parse trees)‏ Java-based,
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Page 19/4/2015 CSE 30341: Operating Systems Principles Raid storage  Raid – 0: Striping  Good I/O performance if spread across disks (equivalent to n.
Owl Andrew Olowude Ben Klingher Belai Lencho Kenneth Cheng Martin Li A language for finite automata Team 20 _________ /_ ___ \ \ \ \__/\___/ / \_\/______/
Virtual Mechanics Fall Semester 2009
THE HOG LANGUAGE A scripting MapReduce language. Jason Halpern Testing/Validation Samuel Messing Project Manager Benjamin Rapaport System Architect Kurry.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
1 The Java Virtual Machine Yearly Programming Project.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Getting Started with ANTLR Chapter 1. Domain Specific Languages DSLs are high-level languages designed for specific tasks DSLs include data formats, configuration.
Rational Unified Process Fundamentals Module 4: Disciplines II.
Boardr The Racing Board Game Creation Language. Project Manager: Eric Leung Language and Tools Guru: Shensi Ding System Architect: Seong Jin Park System.
1 Programming Languages Tevfik Koşar Lecture - II January 19 th, 2006.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
AGENDA Introduction to Virtual Mechanic Demo Architectural diagram and summary QA steps and user acceptance testing Bugs in the software Feedback from.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Testing Grammars For Top Down Parsers By Asma M Paracha, Frantisek F. Franek Dept. of Computing & Software McMaster University Hamilton, Ont.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Java ProgrammingtMyn1 Java Programming Timo Mynttinen Mikkeli University of Applied Sciences.
Geoff Holmes and Bernhard Pfahringer COMP206-08S General Programming 2.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
5-1 Chapter 5 - Languages and the Machine Department of Information Technology, Radford University ITEC 352 Computer Organization Principles of Computer.
Lec 6 Data types. Variable: Its data object that is defined and named by the programmer explicitly in a program. Data Types: It’s a class of Dos together.
Interpretation Environments and Evaluation. CS 354 Spring Translation Stages Lexical analysis (scanning) Parsing –Recognizing –Building parse tree.
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
P.R. James © P.Chalin et al.1 An Integrated Verification Environment for JML: Architecture and Early Results Patrice Chalin, Perry R. James, and George.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
5-1 Chapter 5 - Languages and the Machine Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Principles.
Information System Design (IT60105) Lecture 26 Object-Oriented System Testing.
C++ Lecture 1 Friday, 4 July History of C++ l Built on top of C l C was developed in early 70s from B and BCPL l Object oriented programming paradigm.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
The Evolution of the StringTemplate Engine Presented to the UC Berkeley Harmonia group 15 December 2004 Terence Parr University of San Francisco
MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi.
CS-I MidTerm Review Hao Jiang Computer Science Department Boston College.
Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Cross Language Clone Analysis Team 2 February 3, 2011.
Compiler Construction CPCS302 Dr. Manal Abdulaziz.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
Hello world !!! ASCII representation of hello.c.
7-Nov Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Oct lecture23-24-hll-interrupts 1 High Level Language vs. Assembly.
PROGRAMMING LANGUAGES
Designing Software for Ease of Extension and Contraction
Polynomial Manipulation Language
Introduction to Data Structure
Requirements Engineering
Presentation transcript:

David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator

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.

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.

Example 1 – Correcting Brightness

Example 2 – Image Difference

Example 3 – Noise Reduction

SIMPL – Translator Architecture

SIMPL – Implementation Highlights (Symbol Table) Symbol Table: A Stack of HashTable Interface for tree walker enterBlock enterFunction exit declareSymbol getSymbol setSymbol

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.

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.

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

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.

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?

Demo

Q & A