Upload
teagan
View
32
Download
0
Embed Size (px)
DESCRIPTION
EXGOL (EX tended G ame O f L ife ). 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. What is Game of Life. John Conway’s Game of Life: - PowerPoint PPT Presentation
Citation preview
LANGUAGE AND TOOLS GURU SUHAN CANARAN
PROJECT MANAGER ANDREAS NILSSON
SYSTEM ARCHITECT AKSHAT SIKARWAR
SYSTEM INTEGRATOR ERIC SCHMIDT
TESTER AND VALIDATOR AARADHI TILVA
EXGOL(EXtended Game Of Life)
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 -> emptytransrule BIRTH {
type:= BREEDcondition := peer[1] = 3
} transrule LONELY {
type := DIEcondition := peer[1] < 2
}
transrule OVERPOPULATION{type := DIEcondition := peer[1] > 3
}%%
populate(cell, alive, poisson(0.1))sim CONWAY := {BIRTH, LONELY, OVERPOPULATION}start(100, CONWAY)
Translator Structure
Simulation Object
Simulation Object
Source ProgramSource Program
Lexical AnalyzerLexical Analyzer
Syntax AnalyzerSyntax Analyzer
Semantic AnalyzerSemantic Analyzer
BackendBackend
Simulation/Output
Simulation/Output
Simulation Object
Ties front end and back end of EXGOL compilerPlays role of symbol table and intermediate codeIn-memory representation of the program logicDifferent compiler phases fill information hereAlso used for error checking and semantic analysisThis object then passed to the backendLooked 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!