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.

Slides:



Advertisements
Similar presentations
Introduction to Compiler Construction
Advertisements

Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
By Neng-Fa Zhou Compiler Construction CIS 707 Prof. Neng-Fa Zhou
Compiler Construction
GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.
CS305j Introduction to Computing Two Dimensional Arrays 1 Topic 22 Two Dimensional Arrays "Computer Science is a science of abstraction -creating the right.
Aditya Pipersenia (Project Manager) Deepak Sebastian (Language Guru) Krishnan Rajeswar (System Integrator) Raymond Barker (System Architect) Rohit Ramesh.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Cellular Automata Avi Swartz 2015 UNC Awards Ceremony.
Lecture 2 Phases of Compiler. Preprocessors, Compilers, Assemblers, and Linkers Preprocessor Compiler Assembler Linker Skeletal Source Program Source.
September 7, September 7, 2015September 7, 2015September 7, 2015 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University.
Chapter 1.4 Programming languages Homework Due: Monday, August 11, 2014.
COP4020 Programming Languages
Chapter 1. Introduction.
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
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
1 History of compiler development 1953 IBM develops the 701 EDPM (Electronic Data Processing Machine), the first general purpose computer, built as a “defense.
Introduction to Compiler Construction Robert van Engelen COP5621 Compiler Construction Copyright Robert.
CSC 338: Compiler design and implementation
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style COMPILER DESIGN Review Joey Paquet,
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
Joey Paquet, Lecture 12 Review. Joey Paquet, Course Review Compiler architecture –Lexical analysis, syntactic analysis, semantic.
Topic 26 Two Dimensional Arrays "Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable.
Playing God: The Engineering of Functional Designs in the Game of Life Liban Mohamed Computer Systems Research Lab
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
1.  10% Assignments/ class participation  10% Pop Quizzes  05% Attendance  25% Mid Term  50% Final Term 2.
Compiler design Lecture 1: Compiler Overview Sulaimany University 2 Oct
Greetings From Team CAL!
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Overview of Compilers and JikesRVM John.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Compilers: Overview/1 1 Compiler Structures Objective – –what are the main features (structures) in a compiler? , Semester 1,
Introduction to Compiling
The Northern Lights: Demonstrations. Programmability Overview A major aspect of our project is programmability- it is an interactive display medium, the.
Compiler Design Introduction 1. 2 Course Outline Introduction to Compiling Lexical Analysis Syntax Analysis –Context Free Grammars –Top-Down Parsing –Bottom-Up.
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
Chapter 1: Introduction 1 Compiler Designs and Constructions Chapter 1: Introduction Objectives: Course Objectives Introduction Dr. Mohsen Chitsaz.
Cellular Automata Introduction  Cellular Automata originally devised in the late 1940s by Stan Ulam (a mathematician) and John von Neumann.  Originally.
Chapter 14 Programming and Languages McGraw-Hill/Irwin Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved.
What is a compiler? –A program that reads a program written in one language (source language) and translates it into an equivalent program in another language.
CS223: Software Engineering
String Analysis for JavaScript Programs Serena KingDr.Lu Yves Engelmann.
©SoftMoore ConsultingSlide 1 Structure of Compilers.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
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.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture 1 Ahmed Ezzat.
1 Compiler Construction Vana Doufexi office CS dept.
Objective of the course Understanding the fundamentals of the compilation technique Assist you in writing you own compiler (or any part of compiler)
Programming Language Basics. What is a Programming Language? “A computer, human-created language used to write instructions for a computer.” “An artificial.
CHAPTER 1 INTRODUCTION TO COMPILER SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.
Chapter 1. Introduction.
Advanced Computer Systems
PRINCIPLES OF COMPILER DESIGN
Introduction to Compiler Construction
课程名 编译原理 Compiling Techniques
Compiler Lecture 1 CS510.
CS416 Compiler Design lec00-outline September 19, 2018
Front End vs Back End of a Compilers
Compiler Construction
CPSC 388 – Compiler Design and Construction
Compilers B V Sai Aravind (11CS10008).
Programming Language Basics
CS416 Compiler Design lec00-outline February 23, 2019
Compiler Construction
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Compiler Structures 1. Overview Objective
Presentation transcript:

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 A ARADHI TILVA EXGOL (EX tended G ame O f L ife )

What is Game of Life John Conway’s Game of Life:  Cellular Automaton on a 2D grid  The state transitions of each cell on the grid is computed using four transition rules.  It is possible to construct logic gates such as AND, OR and NOT using Game of Life constructions  Turing machine can be implemented using Game of Life

What is EXGOL Extended Game of Life:  is a scripting language to simulate cellular automatons  gives the user option to have their own transition rule set  Game of Life can easily be implemented using EXGOL  supports several different cell classes and states concurrently  is designed to support n-dimensional grids

Program Structure Three code sections:  INIT SECTION  TRANS SECTION  SIMULATION SECTION

Game of Life in EXGOL class := {cell} state := {alive} gridsize := {10,10} gridtype := bounded % trans BREED := empty -> alive trans DIE := alive -> empty transrule BIRTH { type:= BREED condition := peer[1] = 3 } transrule LONELY { type := DIE condition := peer[1] < 2 } transrule OVERPOPULATION{ type := DIE condition := peer[1] > 3 } % populate(cell, alive, poisson(0.1)) sim CONWAY := {BIRTH, LONELY, OVERPOPULATION} start(100, CONWAY)

Translator Structure Simulation Object Source Program Lexical Analyzer Syntax Analyzer Semantic Analyzer Backend Simulation/Output

Simulation Object Ties front end and back end of EXGOL compiler Plays role of symbol table and intermediate code In-memory representation of the program logic Different compiler phases fill information here Also used for error checking and semantic analysis This object then passed to the backend Looked up for computing every successive generation

Backend Written in Java The graphical engine is written in Swing Runs a graphical simulation of the automata Can output the state of the grid at every generation

Development Infrastructure

Development Conclusion The compiler building tools (JFlex/BYacc) worked very well with Java. Dynamic group with different personalities and specialties. Difficult to coordinate five person team in terms of schedules

Testing Test cases to test productions Test Suite – Used JUnit for testing.

Conclusion EXGOL is a language for cellular Automaton. Our effort in extending the of Game of Life brings up applications which can be more complex and also with better visual capabilities. Applications can range from study of two or more competing microorganisms for ‘N’ number of generations or for fun to compute competing species of two different cultures! So try EXGOL!