KFrog Graphics Language for Kids Rami Habas - Project Manager Kyoho Satsumi - System Architect Hidemitsu Izawa - Tools Guru Murat Dogru - System Integrator.

Slides:



Advertisements
Similar presentations
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
Advertisements

1 Chapter 2 Introduction to Java Applications Introduction Java application programming Display ____________________ Obtain information from the.
PSL: An Interpretative Programming Language for Financial Portfolio Simulation and Manipulation Alexander Besidski Xin Li Jian Huang Wei-Chen Lee.
WPSM Programming Language A simple language that transform simple data structure into complex xML format Wai Y. Wong Peter Chen Seema Gupta Miqdad Mohammed.
Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney CP 2010, 522—536 Presented by Heath Roehr.
Mx? A programming language for scientific computation. Related Languages: Matlab IDL Maple, Mathcad, Mathematica.
 2003 Prentice Hall, Inc. All rights reserved. Customized by Sana Odeh for the use of this class. 1 Introduction to Computers and Programming in JAVA.
Programming Languages Structure
ESL - A language for Social Networks Team : Fantastic Four Ashwath Narsimhan – Project Manager Jyotsna Sebe – System Architect Shailesh Saroha – System.
Topic 6 -Code Generation Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany CSI 511 Programming Languages and Systems.
GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.
EZGraphs A graphs and charts generating language COMS W4115: Programming Languages and Translators Spring 2007 Vincent Edlira.
CS 153: Concepts of Compiler Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Programming Languages and Translators Prof. Stephen Edwards, Fall 2003 Team Members: Haronil Estevez ~ Diana Jackson ~ Catherine MacInnes ~ Adam Rosenzweig.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Building An Interpreter After having done all of the analysis, it’s possible to run the program directly rather than compile it … and it may be worth it.
Aditya Pipersenia (Project Manager) Deepak Sebastian (Language Guru) Krishnan Rajeswar (System Integrator) Raymond Barker (System Architect) Rohit Ramesh.
1. 2 Chapter 1 Introduction to Computers, Programs, and Java.
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.
Intro to Java Programming  A computer follows the instruction precisely and exactly.  Anything has to be declared and defined before it can be used.
Introduction to Programming Lecture Number:. What is Programming Programming is to instruct the computer on what it has to do in a language that the computer.
The NetBeans IDE CSIS 3701: Advanced Object Oriented Programming.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
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.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Boardr The Racing Board Game Creation Language. Project Manager: Eric Leung Language and Tools Guru: Shensi Ding System Architect: Seong Jin Park System.
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.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
Introduction to Java Programming with Forte Y. Daniel Liang.
Joey Paquet, Lecture 12 Review. Joey Paquet, Course Review Compiler architecture –Lexical analysis, syntactic analysis, semantic.
Sarah Alkuhlani Anwesha Deb Neethi Vedamoorthy Shilpa Miriyala Faiza Khan Khattak.
1 © 2002 John Urrutia. All rights reserved. Qbasic Constructing Qbasic Programs.
 Pearson Education, Inc. All rights reserved Introduction to Java Applications.
DataMAPPER - Applied Database Tech. 이화여대 과학기술대학원 석사 3 학기 992COG08 김지혜.
Introduction to programming in the Java programming language.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
CS 152: Programming Language Paradigms April 2 Class Meeting Department of Computer Science San Jose State University Spring 2014 Instructor: Ron Mak
SIMetro Welcome!. SIMetro A Language for Simulating Metro Systems.
CPS 506 Comparative Programming Languages Syntax Specification.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Programming Tutoring Systems evaluation Boro Jakimovski Anastas Misev Institute of Informatics Faculty of Natural Sciences and Mathematics University “Ss.
Overview of Previous Lesson(s) Over View  A program must be translated into a form in which it can be executed by a computer.  The software systems.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Cross Language Clone Analysis Team 2 October 13, 2010.
Celluloid An interactive media sequencing language.
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,
E xpressing Z ombies as P rogrammable I ndividuals Abhinav Sharma Wayne Shu Miles Ulrich.
David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.
Functions  A Function is a self contained block of one or more statements or a sub program which is designed for a particular task is called functions.
Introduction to Java Programming. 2 Chapter 1 Introduction to Java and Forte F What Is Java? F Getting Started With Java Programming –Create, Compile.
Cross Language Clone Analysis Team 2 February 3, 2011.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Dr. Mohamed Ramadan Saady 314ALL CH1.1 Chapter 1: Introduction to Compiling.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
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.
CGS 3066: Web Programming and Design Spring 2016 Introduction to JavaScript.
THRLL Programming Language Aimee Sanchez Neetha Sebastion Kapil Verma Hemanth Murthy Michael Seaman.
Jython Environment For Students (JES) Final Presentation Team 3 David Raines Claire Bailey Jason Ergle Josh Sklare July 16,
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
Aryeh Tasher Brian Ramos Qijun Zhong Michael Li Tian Zhang.
Testing and Debugging.
C# and the .NET Framework
Java programming lecture one
CS 153: Concepts of Compiler Design November 30 Class Meeting
Polynomial Manipulation Language
Dynamic Web Pages Jin Wu INF 385E Information Architecture
Java Applets.
Lecture Notes - Week 2 Lecture-1. Lecture Notes - Week 2 Lecture-1.
Presentation transcript:

KFrog Graphics Language for Kids Rami Habas - Project Manager Kyoho Satsumi - System Architect Hidemitsu Izawa - Tools Guru Murat Dogru - System Integrator Gaurav Pandey - Tester

Introduction KFrog is an imperative, interpreted language for generating 2D graphics Motivation o To solve a real-world problem as presented in "Human computing skills: rethinking the K-12 experience" o To segue kids and adolescents into a computational way of thinking KFrog language features o Simplicity o Randomness o Concurrency o Portability

Example - Olympic Flag Source Program Output

Syntactic constructs Syntactic basic blocks: expressions, statements, declarations, and function definitions Syntactically simple and intuitive Line terminator serves the purpose of a statement terminator. Supports user-defined functions, and has some predefined functions. Allows only local variables, i.e. each function has its own scope.

voidbreakrepeatspeedleftcurve decimalcontinueclearscreenstartdrawrightcurve realreturnresetstopdrawcenter logicalifpondsizeforwardgoto trueelsepondcolorturnrightrandom falsewhilefrogcolorturnleft Syntactic constructs Key Words

/*Olympic Parallel*/ main () { pondsize 720,480 new frog { frogcolor bule goto 160,200 startdraw circle(80) stopdraw }... } void circle (decimal radius) { leftcurve radius,360 } positions the frog calls the circle function receives radius of decimal type directs the frog to move to the left along a circular arc Syntactic constructs sets up frog's color and its drawing creates a frog object

Interpreter Architecture

Frontend Olympic.kfrog program Syntax Tree Lexer Parser Walker Interpreter Lexer Parser Frog action list Backend Concurrency support The Frontend defers the execution of all the actions for later The Backend executes the actions concurrently using threads

Backend Java Swing Animation Concurrent Frog Animation = Multithreaded program Each frog = Thread State color speed location (x,y)...etc Action forward turnleft...etc

SoftwarePurpose Java SDK ver6Development Environment + Target Lang Windows XP, Vista, LinuxOperating System Eclipse + ANTIDE ANTLRFrontend Subversion + Google CodeVersion Control + Issue Tracking Google Docs, PresentationDocument / Presentation sharing Development environment and support tools used

Validation 1. Save the output of debug message from Console into a.debug file 2. Design the Test File on the basis of Gold Standard representation and save as.gold file Testing Algorithm pondsize 720,480 pondcolor white 1 new Frog { 1 frogcolor blue 1 speed 5 1 center 1 goto 160,200 1 leftcurve 80,360 1 stopdraw 1 }

Validation Testing Algorithm 3) Load the content of both the files into two data structures 4) Compare both data structures and suggest the final outcome={PASS,FAIL} Debug 1 new Frog#{#1 frogcolor blue#1 speed 5#1 center#1 goto 160,200#1 startdraw#1 leftcurve 80,360#1 stopdraw#1 }# Gold 1 new frog#{#1 frogcolor blue#1 speed 5#1 center#1 goto 160,200#1 startdraw#1 leftcurve 80,360#1 stopdraw#1 }# Gold File: T13OlympicParallel.gold & Debug File: T13OlympicParallel.debug >> Result: PASS

Conclusions Lessons learned o tangibles  ANTLR  Java Swing  Java Concurrent Programming o intangibles  Optimizing everyone's contribution under the given constraints  Team dynamics could be NP-hard Highlights o Parallelism can be visualized by the use of multiple frogs Future work o Add a language keyword that allows the user to choose between parallel and sequential execution

Why KFrog?