PROJECT MANAGER: YOUNGHOON JEON SYSTEM ARCHITECT: YOUNGHOON JUNG LANGUAGE GURU: JINHYUNG PARK SYSTEM INTEGRATOR: WONJOON SONG VALIDATION AND TESTING: AKSHAI.

Slides:



Advertisements
Similar presentations
COMS E Term Project Presentation Advanced Topics in Programming Languages and Compilers, Fall 2012 MIPLex: Adapting Dynamic Code Modification to.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Christian Hujer What is AceUnit? How does AceUnit work? How do I use AceUnit? © 2007 Christian Hujer.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Application architectures
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Programming Languages Structure
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
Custom DE Domain Block - uEngine Other Script Languages or C/C++ lack Block Level integration, or similar abstraction with the Modeling Environment.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
1 Programming Languages Examples: C, Java, HTML, Haskell, Prolog, SAS Also known as formal languages Completely described and rigidly governed by formal.
Python Mini-Course University of Oklahoma Department of Psychology Day 1 – Lesson 2 Fundamentals of Programming Languages 4/5/09 Python Mini-Course: Day.
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Christopher Jeffers August 2012
© 2010 IBM Corporation Information Management Performance Enhancements for DB2 V10.1 Anthony Reina - Accelerated Value Specialist
Computer Architecture Computational Models Ola Flygt V ä xj ö University
THE HOG LANGUAGE A scripting MapReduce language. Jason Halpern Testing/Validation Samuel Messing Project Manager Benjamin Rapaport System Architect Kurry.
Parsing. Goals of Parsing Check the input for syntactic accuracy Return appropriate error messages Recover if possible Produce, or at least traverse,
CS 7: Introduction to Computer Programming Algorithms.
Created by, Author Name, School Name—State FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
Higher Grade Computing Studies 2. Languages and Environments Higher Computing Software Development S. McCrossan 1 Classification of Languages 1. Procedural.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Evolution of Programming Languages Generations of PLs.
Introduction to Programming Peggy Batchelor.
 Input and Output Functions Input and Output Functions  OperatorsOperators Arithmetic Operators Assignment Operators Relational Operators Logical Operators.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
Java Programming Introduction & Concepts. Introduction to Java Developed at Sun Microsystems by James Gosling in 1991 Object Oriented Free Compiled and.
{ Graphite Grigory Arashkovich, Anuj Khanna, Anirban Gangopadhyay, Michael D’Egidio, Laura Willson.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 2: Major Concepts of Programming.
Overview of the language A table generation language Initialize and manipulate columns and finally generate a table The values in the column are numbers.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
CS 363 Comparative Programming Languages Semantics.
3.1 Operating System Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual.
What is Programming? A program is a list of instructions that is executed by a computer to accomplish a particular task. Creating those instructions is.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
I Power Higher Computing Software Development Development Languages and Environments.
The Software Development Process
Cross Language Clone Analysis Team 2 October 13, 2010.
Lab 2 Parallel processing using NIOS II processors
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
Milos Hauskrecht (PDF) Hieu D. Vu (PPT) LISP PROGARMMING LANGUAGE.
CSC 1010 Programming for All Lecture 2 Introduction to Python Some material based on material from Marty Stepp, Instructor, University of Washington.
Programming Languages
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Algorithms Emerging IT Fall 2015 Team 1 Avenbaum, Hamilton, Mirilla, Pisano.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
In The Name Of Allah Lab 03 1Tahani Aldweesh. objectives Searching for the solution’s. Declaration. Query. Comments. Prolog Concepts. Unification. Disjunction.
© Peter Andreae Java Programs COMP 102 # T1 Peter Andreae Computer Science Victoria University of Wellington.
By Shivaraman Janakiraman, Magesh Khanna Vadivelu.
Computer Programming – Grammar – data types – Variables – Keywords – Operators – decision making – Loops – Arrays – Functions – files Programming Environment.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
CSC141 Introduction to Computer Programming Programming Language.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Software Engineering Algorithms, Compilers, & Lifecycle.
 Problem Analysis  Coding  Debugging  Testing.
Topic: Programming Languages and their Evolution + Intro to Scratch
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
A scalable approach for Test Automation in Vector CAST/Manage with
Key Ideas from day 1 slides
课程名 编译原理 Compiling Techniques
Bison: Parser Generator
Computer Programming.
Lecture 2: General Structure of a Compiler
Implementation of a Functional Programming Language
Presentation transcript:

PROJECT MANAGER: YOUNGHOON JEON SYSTEM ARCHITECT: YOUNGHOON JUNG LANGUAGE GURU: JINHYUNG PARK SYSTEM INTEGRATOR: WONJOON SONG VALIDATION AND TESTING: AKSHAI SARMA MIPL MIPL MINING-INTEGRATED PROGRAMMING LANGUAGE Team 25

DATA MINING HOT Trend + Big Data Mostly Implemented in Matrix Operations C4.5PageRank The k-Means Algorithm Support Vector Machines Expectation-MaximizationAdaBoost K-Nearest Neighbor Classification Naïve Bayes CART How to Parallelize? How to Port?

WHAT DOES MIPL PROVIDE? Easy Data Mining Implementation Matrix Operations Easiest Data Mining Usage Fact, Rule, and Query Automatic Parallelization / Acceleration Convenient Interfaces in 3 modes

PROJECT STATISTICS 14K LOC over 96 files Total 356 commits

PROJECT LOG PROTOTYPE [3/28] basic FRQ, matrix op on local machines 1 st RELEASE [4/4] matrix op over Hadoop, built-in matrix support 2 nd RELEASE [4/11] job support 3 rd RELEASE [4/18] command line options, configuration FINAL RELEASE [4/25] interpreter support

PROJECT TIMELINE

MIPL COMPILER’S THREE MODES CompilerMode InteractiveModeInterpreterMode

MIPL COMPILER ARCHITECTURE

LINGUISTIC CHARACTERISTICS Logical Programming Language Imperative Programming Language Automatic Conversion b/w Facts and a Matrix Multiple Returns Weak-typed Inclusion, Recursive Calls, Matrix Operations Support

USED TECHNOLOGIES Java Our compiler is written in Java Byacc/J Parser Generator BCEL To generate Java Byte Code Ant Build Automation Junit Unit Testing

LANGUAGE GRAMMAR Fact, Rule, and Query (FRQ) Compatible to Prolog Basic Syntax Fact A fact is a predicate expression that makes a declarative statement about the problem domain. Rule A rule is a predicate expression that uses logical implication to describe a relationship among facts. Query A query is terminated with a ” ? ”. The MIPL language responds to queries about the facts and rules.

LANGUAGE GRAMMAR Fact, Rule, and Query Example cat(tom). # fact cat(foo). # fact cat(tom) ? # query -> true cat(X) ? # query -> tom, foo animal(X) <- cat(X). # rule animal(tom) ? # true animal(jane) ? # false

LANGUAGE GRAMMAR Job Like Function in C Supports parallel running Supports Multi-return Can be accelerated with the GPU

CLASSIFICATION EXAMPLE job classify(A, M, Ca, Cb, Cc) { B = A - urow(M).# Built-in Function urow B = B./abs(B).# Built-in Function abs Ba = B * Ca.# Getting each column Bb = B * Cb. Bc = B * Cc. R = (Ba - 1)/2 + (Ba + 1)/2.* Bb. # Classification Formular R = R/2 + # Return the result }

CLASSIFICATION EXAMPLE # To create the identity matrix ca(1). cb(0). cc(0). ca(0). cb(1). cc(0). ca(0). cb(0). cc(1). # Temperature, Rain(1 = No Rain, 0 = Rain), # Girl Friend(1 = is coming, 0 = is not coming) a(60, 1, 0).# Temperature 60, No Rain, No Girl a(60, 1, 1).# Temperature 60, No Rain, Girl! Yay! a(-40, 0, 0).# Temperature -40, Rain, No Girl a(40, 1, 1).# Temperature 40, No Rain, Girl # Coefficients for the classification formula m(50, 0.5, 0.5).

MAPREDUCE MAPREDUCE PLAN

MATRIX OPERATION IN MAPREDUCE

TEST PLAN The MIPL test plan : conceived at design Sample input programs already written : test driven development. Tests as important as source Iterative development with integrations Build process : automated testing

TEST PLAN : UNIT TESTS Core functionality of modules 60+ Unit Tests for modules Written in JUnit (1-1 source). Ant used to run on build Test failure = build failure => Repository clean

TEST PLAN : REGRESSION TESTS Interplay between modules & Test Driven Development Sample programs : 17 Full top-down testing of compiler from source to execution Critical during integrations Used in build when code- base was young

TEST PLAN : VALIDATION Weekly top-down complete integrations of work Partners in Code : Code Inspections. Design time decision Coding Style : Long way toward writing less error prone code and extremely helpful in debugging

CONCLUSIONS What we learned: - Team work, Communication, Technical Skills, … What worked well: - Modularization, Test Driven Development,.. What we could have done differently - Bison Why use MIPL ? - Why not ?