Yi Zhang yz2414(Project manager) Shuaishuai Nie sn2479(Language Guru) Xuanchen Tang xt2128(System Architect) Lewis Flanagan lrf2123(System Integrator)

Slides:



Advertisements
Similar presentations
CardGhost ——Language design for card game Team member: Yang Jian, yj2220 Xiaoming Guo, gx2158 Yu An, ya2249 Dingding Xi, dx2131 Feng Zhou, fz2168.
Advertisements

Top-Down Design CSC 161: The Art of Programming Prof. Henry Kautz 9/16/2009.
1 Session-23 CSIT 121 Spring 2006 Revision Ch 7: Reference Parameters Revision Ch 7: Reference Parameters Chapter 8: Value Returning Functions Chapter.
Mx? A programming language for scientific computation. Related Languages: Matlab IDL Maple, Mathcad, Mathematica.
Fall 2003Costas Busch - RPI1 Decidable Problems of Regular Languages.
ESL - A language for Social Networks Team : Fantastic Four Ashwath Narsimhan – Project Manager Jyotsna Sebe – System Architect Shailesh Saroha – System.
Web Page Behavior IS 373—Web Standards Todd Will.
CS 153: Concepts of Compiler Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Prof. Busch - RPI1 Decidable Problems of Regular Languages.
Information Extraction from Documents for Automating Softwre Testing by Patricia Lutsky Presented by Ramiro Lopez.
Review Algorithm Analysis Problem Solving Space Complexity
CS 1150 – JavaScript Programming Lab TA – Sanjaya Wijeratne – Web Page -
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
Games and Simulations O-O Programming in Java The Walker School
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
CSCI 101 Introduction to Software Development and Design.
Overview of Mini-Edit and other Tools Access DB Oracle DB You Need to Send Entries From Your Std To the Registry You Need to Get Back Updated Entries From.
Week 4-5 Java Programming. Loops What is a loop? Loop is code that repeats itself a certain number of times There are two types of loops: For loop Used.
Fruitful functions. Return values The built-in functions we have used, such as abs, pow, int, max, and range, have produced results. Calling each of these.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
ITEC224 Database Programming
Boardr The Racing Board Game Creation Language. Project Manager: Eric Leung Language and Tools Guru: Shensi Ding System Architect: Seong Jin Park System.
OOD Case Study (For parallel treatment, see Chapter 2 of the text)
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
DATA STRUCTURE & ALGORITHMS CHAPTER 3: STACKS. 2 Objectives In this chapter, you will: Learn about stacks Examine various stack operations Discover stack.
Lexical Analysis - An Introduction. The Front End The purpose of the front end is to deal with the input language Perform a membership test: code  source.
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and Server Side Programming Very rich GUI libraries Portability (machine independence) A.
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.
 2003 Prentice Hall, Inc. All rights reserved. CHAPTER 3 JavaScript 1.
Interpretation Environments and Evaluation. CS 354 Spring Translation Stages Lexical analysis (scanning) Parsing –Recognizing –Building parse tree.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 3, 09/11/2003 Prof. Roy Levow.
Review 1.Lexical Analysis 2.Syntax Analysis 3.Semantic Analysis 4.Code Generation 5.Code Optimization.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Chapter 9: Functional Programming in a Typed Language.
JavaScript Syntax and Semantics. Slide 2 Lecture Overview Core JavaScript Syntax (I will not review every nuance of the language)
Pseudocode Simple Program Design Third Edition A Step-by-Step Approach 2.
Graphene So what’s the most efficient way to spam all your Facebook friends? Team Adith Tekur (System Architect/Tester) Neha Rastogi (System Integrator)
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
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.
1 Chapter 2 C++ Syntax and Semantics, and the Program Development Process.
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and web applications Very rich GUI libraries Portability (machine independence) A real Object.
Homework #2: Functions and Arrays By J. H. Wang Mar. 20, 2012.
University of Macau Faculty of Science and Technology Computer and Information Science SFTW 241 Programming Languages Architecture 1 Group B5.
M1G Introduction to Programming 2 5. Completing the program.
Using Lists Games Programming in Scratch. Games Programming in Scratch Extension – Using Lists Learning Objectives Create a temporary data store (list)
CSC 405: Web Application Engineering II Course Preliminaries Course Objectives Course Objectives Students’ Learning Outcomes Students’ Learning Outcomes.
CS453 LectureIntroduction1 CS453 Compiler Construction Original Design: Michelle Strout Instructor:Wim Bohm
 Software Development Life Cycle  Software Development Tools  High Level Programming:  Structures  Algorithms  Iteration  Pseudocode  Order of.
Coding Time This is a starter activity and should take about 10 minutes [ slide 1 ] 1.Log in to your computer 2.Open IDLE 3.Start a script session (Select.
Compilers Computer Symbol Table Output Scanner (lexical analysis)
©SoftMoore ConsultingSlide 1 Structure of Compilers.
Introduction to JavaScript MIS 3502, Spring 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 2/2/2016.
 What Does This Program Do? ACSL.  Frequently one must use or modify sections of another programmer’s code.  It is essential to be able to read and.
Functional Processing of Collections (Advanced) 6.0.
Introduction to JavaScript MIS 3502, Fall 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 9/29/2016.
Chapter 1: Introduction to Computers and Programming
Compiler Design (40-414) Main Text Book:
More (C#) Scripting Day 2, Lesson 1.
CS 3304 Comparative Languages
PROGRAMMING LANGUAGES
Functional Processing of Collections (Advanced)
Lab Session-9 CSIT-121 Spring 2005
TRANSLATORS AND IDEs Key Revision Points.
CSE 3302 Programming Languages
Decidable Problems of Regular Languages
Building a Game in Scratch
Data Structures & Algorithms
CSE 1020:Software Development
Presentation transcript:

Yi Zhang yz2414(Project manager) Shuaishuai Nie sn2479(Language Guru) Xuanchen Tang xt2128(System Architect) Lewis Flanagan lrf2123(System Integrator) Xiaohu Li xl2302(Test & Validation)

 Played with dice, notes detailing various characters, monsters, and villains, and maps.  One player, usually called the Dungeon Master or Game Master, controls all the monsters, non-player characters, the environment, etc. The other players each control a single “hero” character.  Usually the Dungeon Master is responsible for coming up with the storyline, challenges and maps the group uses.  Producing these materials can be commitment of several hours a week.  DMGL is intended to reduce the time required to create maps for these games.

DateEvent Jan 25 th First meeting, discussing ideas Feb 23 rd Language design and basic elements Mar 8 th Grammar decided, skeleton of scanner implemented Mar 29 th Skeleton of parser working Apr 4 th Initial tests written in advance Apr 12 nd Skeleton of translator working Apr 26 th Backend function working, integration into front end May 5 th Write last examples, finished final report edits, final testing

 New Types Introduced in DMGL Room Door Path Feature

 Simple and Understandable Statement Structure Sample Code: call init_map (20, 20) create room r1 (3,3) to north; create path p1 (3) to east; create path p2 (1) to east; create path p3 (3) to south; create room r2 (3,3) to south; remove p2; show_map ();

 Introduce loop to facilitate the construction Sample Code: call init_map (30, 7); call start (1, 3); for (int i = 0; i < 4; i++){ create room anonymous (3,3) to south; if (i == 3) quit; create path anonymous (2) to south; } call show_map ();

 Include random method and user defined function Sample Code: call init_map (20,20); create room myroom (3, 3) to west; int firstDirection = call randir (); create path mypath1 (2) to firstDirection; create path mypath2 (1) to firstDirection; direction newDirection = call randir (); while (newDirection == call oppositeDir(firstDirection) ) newDirection = call randir (); create door d1 () to newDirection; create room r2 (3,3) to newDirection; call show_map (); function oppositeDir (direction one):direction{ return ((one + 2) % 4); }

 Functions.java  Room.java  Door.java  Path.java

 Test methods: black box  Test levels: Unit testing Integrated testing System testing  111 test cases, over 1000 lines  Automated test script

STEP 1 Arithmetic operations Control & loop STEP 2 DMGL build-in functions User Defined functions STEP 3 Others System & environment

This Slide Left Intentionally Blank []

 Include ability to check area to see if it is empty (call scan (x, y))  Add the ability to organize map objects into collections that can be acted on as a whole  Convert DMGL into an interpreted language  Add local variables  Add ability to include other DMGL source files in a program, thus allowing user to import libraries of functions  Give DMGL an applet as a GUI and make it available online

 Lesson learnt Start early Regular meeting is essential