1 / 10

BugsWorld Project

BugsWorld Project. The Game The Simulator The Language The Translator. The Game: It’s a BugsWorld!. The Simulator. Client. Client. Server. Display. Display. Client. Simulator Continued…. One server, multiple clients and displays

Télécharger la présentation

BugsWorld Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BugsWorld Project • The Game • The Simulator • The Language • The Translator

  2. The Game: It’s a BugsWorld!

  3. The Simulator Client Client Server Display Display Client

  4. Simulator Continued… • One server, multiple clients and displays • Server keeps track of world, processes client requests, resolves conflicts • Client simulates creature behavior for all creatures of one species • Display shows current state of world plus some statistics about the simulation • Each process can run on a different computer (distributed simulation)

  5. The Language: BL • The behavior of each species is determined by a program in BL • Primitive instructions: move, turnleft, turnright, infect, skip • Control structures: IF-THEN, IF-THEN-ELSE, WHILE-DO • Defining new instructions: INSTRUCTION-IS • Conditions: test whether next cell is empty, friend, enemy, or wall (plus true and random)

  6. An Example PROGRAM TryToGuess IS INSTRUCTION FindObstacle IS WHILE next-is-empty DO move END WHILE END FindObstacle BEGIN # TryToGuess WHILE true DO FindObstacle IF next-is-enemy THEN infect ELSE IF next-is-wall THEN turnleft ELSE # next-is-friend skip END IF END IF END WHILE END TryToGuess

  7. Language Continued… • Precise syntax • Case sensitive • Matching ENDs • Comments • Identifiers • start with ‘a’..’z’,’A’..’Z’ • followed by any of ‘a’..’z’,’A’..’Z’,’0’..’9’,’-’

  8. The Translator PROGRAM TryToGuess IS INSTRUCTION FindObstacle IS WHILE next-is-empty DO move END WHILE END FindObstacle BEGIN # TryToGuess WHILE true DO FindObstacle IF next-is-enemy THEN infect ELSE IF next-is-wall THEN turnleft ELSE # next-is-friend skip END IF END IF END WHILE END TryToGuess <20, 15, 20, 6, 7, 0, 5, 2, 12, 12, 3, 5, 18, 8, 17, 1, 5, 18, 4, 5, 0>

  9. Code Generator Tokenizer Parser Translator Continued… string of characters (source code) string of tokens string of integers (object code) abstract program

  10. What You Will Do • Build the translator • Implement abstract program component (Lab#2, Closed Lab #4) • Implement parser extension (Lab #3) • Implement code generator extension (Lab #4) • Implement tokenizer component (Lab #5) • Complete the client • Implement interpreter (Closed Lab #6)

More Related