Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier.

Slides:



Advertisements
Similar presentations
A Quantum Programming Language
Advertisements

The Return of Chef (TROC) A Programming Language for Cooking Recipes and Nutrition Analysis.
Control Structures Selections Repetitions/iterations
Team Members Digvijay Singh(ds3161) – Project Manager Snigdha Reddy Challa(sc3545) – Language Guru Rashmi Prithyani(rp2614) – System Integrator Tanmay.
Semantics Static semantics Dynamic semantics attribute grammars
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Introduction to Unix – CS 21 Lecture 11. Lecture Overview Shell Programming Variable Discussion Command line parameters Arithmetic Discussion Control.
Experiences in Integration of the 'R' System into Kepler Dan Higgins – National Center for Ecological Analysis and Synthesis (NCEAS), UC Santa Barbara.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
WPSM Programming Language A simple language that transform simple data structure into complex xML format Wai Y. Wong Peter Chen Seema Gupta Miqdad Mohammed.
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Environments and Evaluation
ESL - A language for Social Networks Team : Fantastic Four Ashwath Narsimhan – Project Manager Jyotsna Sebe – System Architect Shailesh Saroha – System.
CS 153: Concepts of Compiler Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Cs164 Prof. Bodik, Fall Symbol Tables and Static Checks Lecture 14.
CSE 1301 J Lecture 2 Intro to Java Programming Richard Gesick.
The Sending and Editing Language Members: Yuting Chen (Program Manager) Serge Yegiazarov (Language Guru) Curtis Cooper (System Architect) Jiazhen.
Shell Programming. Shell Scripts (1) u Basically, a shell script is a text file with Unix commands in it. u Shell scripts usually begin with a #! and.
6 Steps of the Programming Process
Using a Debugger. SWC What is ”debugging”? An error in a computer program is often called a ”bug”… …so, to ”debug” is to find and get rid of errors in.
Syntax Directed Translation. Syntax directed translation Yacc can do a simple kind of syntax directed translation from an input sentence to C code We.
THE HOG LANGUAGE A scripting MapReduce language. Jason Halpern Testing/Validation Samuel Messing Project Manager Benjamin Rapaport System Architect Kurry.
RUP Implementation and Testing
COP4020 Programming Languages
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Boardr The Racing Board Game Creation Language. Project Manager: Eric Leung Language and Tools Guru: Shensi Ding System Architect: Seong Jin Park System.
The TASKADE Programming Language by TEAM 9 Andrey Dimitrov - Project manager Christopher Riedered - Language Guru Avner May - System Architect Joyce Kim.
{ Graphite Grigory Arashkovich, Anuj Khanna, Anirban Gangopadhyay, Michael D’Egidio, Laura Willson.
CSC 338: Compiler design and implementation
Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 2: Major Concepts of Programming.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
D. M. Akbar Hussain: Department of Software & Media Technology 1 Compiler is tool: which translate notations from one system to another, usually from source.
LANGUAGE AND TOOLS GURU S UHAN CANARAN PROJECT MANAGER A NDREAS NILSSON SYSTEM ARCHITECT A KSHAT SIKARWAR SYSTEM INTEGRATOR E RIC SCHMIDT TESTER AND VALIDATOR.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Interpretation Environments and Evaluation. CS 354 Spring Translation Stages Lexical analysis (scanning) Parsing –Recognizing –Building parse tree.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
BUILD ON THE POLYGLOT COMPILER FRAMEWORK MIHAL BRUMBULLI 7th Workshop “SEERE” Montenegro-Risan 9-14 September 2007 SimJ Programming Language.
Group 4 Java Compiler Group Members: Atul Singh(Y6127) Manish Agrawal(Y6241) Mayank Sachan(Y6253) Sudeept Sinha(Y6483)
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Compilers: Overview/1 1 Compiler Structures Objective – –what are the main features (structures) in a compiler? , Semester 1,
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
Cross Language Clone Analysis Team 2 October 13, 2010.
Test Specifications A Specification System for Multi-Platform Test Suite Configuration, Build, and Execution Greg Cooksey.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
. n COMPILERS n n AND n n INTERPRETERS. -Compilers nA compiler is a program thatt reads a program written in one language - the source language- and translates.
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
What am I? while b != 0 if a > b a := a − b else b := b − a return a AST == Abstract Syntax Tree.
David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.
COP 2551 Introduction to Object Oriented Programming with Java Topics –Introduction to the Java language –Code Commenting –Java Program Structure –Identifiers.
LECTURE 3 Compiler Phases. COMPILER PHASES Compilation of a program proceeds through a fixed series of phases.  Each phase uses an (intermediate) form.
BY: JAKE TENBERG & CHELSEA SHIPP PROJECT REVIEW: JGIBBERISH.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture Ahmed Ezzat.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
Embedded Systems MPSoC Architectures OpenMP: Exercises Alberto Bosio
Compiler Design (40-414) Main Text Book:
Introduction to Parsing (adapted from CS 164 at Berkeley)
Java for Android is specific
Overview of Compilation The Compiler BACK End
CS 536 / Fall 2017 Introduction to programming languages and compilers
What is Bash Shell Scripting?
Lecture 15 (Notes by P. N. Hilfinger and R. Bodik)
Overview of Compilation The Compiler BACK End
PROGRAMMING FUNDAMENTALS Lecture # 03. Programming Language A Programming language used to write computer programs. Its mean of communication between.
Lecture 18 Compilers and Language Translation (S&G, ch. 9)
Compiler Structures 1. Overview Objective
Faculty of Computer Science and Information System
Testing Slides adopted from John Jannotti, Brown University
Presentation transcript:

Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier and Validator)

Need to simulate workflows of complex processes This stuff can get complex !!  No kidding !

Need to simulate workflows of complex processes Need to KISS !! (Keep It Simple Silly) A means to analyze and produce statistical results

A language designed to handle workflows in industries Java-like syntax Aimed at easier design, simulation and analysis of workflows

Resource Final Times (x) Nodes Input output Connections Computations End Block Resources Block Nodes Block Connections Block End Block Compute Block

The New Guys WoWNode WoWNodes x convert, combine WoW Library The Old Timers int String double boolean if, foreach, while…

Source Program *.WoW Source Program *.WoW Library Functions Package Lexer WoW.jflex Lexer WoW.jflex Parser WoW.y Parser WoW.y AST Traversal WoW.y AST Traversal WoW.y NodeThread.java Target Program MainClass.java Target Program MainClass.java Symbol Table Symbol Table Hash Tables ConnectionChecks.java top_include_targ et.txt end_include_targ et.txt

Use JVM on user’s environment Makefile! translate wowcompile wowrun Runtime script executes the Parser on the WoW program./wow WoWPrograms/Audi.WoW

Testing of the WoW compiler is done by comparing the translated Java code of a WoW program with the expected Java code. Ideally translation should fail if there are compilation errors in WoW program. If mismatch between translated java and expected java then test case fails.

test_script.sh Tests all the test programs in a loop. Outputs the number of test cases run and the result of the testing. compare_java.sh Helper script called by test_script.sh which does actual part of comparing the two java programs using the diff command.

#!/bin/bash java_count=0 total_java=0 for D in `find Test -type d` do if [ "${D}" != "Test" ] then name=$(basename ${D}) java_test=$(./compare_java.sh $name) if [[ "$java_test" == *passed* ]] then java_count=`expr $java_count + 1` fi echo $java_test total_java=`expr $total_java + 1` fi done echo "$java_count of $total_java Java tests passed”

#!/bin/sh if diff -w -E -b -B "Test/$1/Translated.java" "Test/$1/ExpectedJava.java" >/dev/null ; then echo $1 Java test passed! else echo $1 Java test failed! fi

HelloWorld.wow OneNodeOnlyCombine.wow TwoNodes.wow TwoNodesMultipleOutput.wow ThreeNodesLinear.wow ThreeNodesEndBlock.wow FourNodesComplex.wow

The test results shown in the previous slides where obtained at 100% pass rate after multiple testing iterations. There were few bugs in parsing and translating which where caught during testing.

White Paper LRM Take-off Target Code Design Ready AST & Translator Ready Library Functions Added Assignment Overload

“ IBM project management better, but not applicable” - Amol Joshi (System Integrator) “The time spent upfront to make regression tests is worth the effort” – Chaitanya Korgaonkar (Verifier and Validator) “Collaborative programming is not difficult if every member of the team is informed about the architecture” – Dharmen Mehta(Program Manager) “Done is better than perfect! Do not waste excess time on finer details” – Nimai Buch(Language Guru) “Take your time to build a good architecture, but make sure it is close to perfect when you’re done.” – Yash Parikh (System Architect)