|Prev 04 Syntax: grammars, EBNF, parsing||Chapter 3 sections 1 to 3 + Chapter 4 sections 1 to 3 + XBNF & LRM Handouts||lab04 BNF on the web|
|05 Semantics: UML||UML handout||lab05 UML + Graphics|
|Next 06 Names||Chapter 5 sections 1 to10||lab06 C/C++ Scoping|
We will use the UML in notes, projects, labs, and final questions. It is perfect for describing:(1) the structure of a language, (2) the internal data structures used in compilers and interpreters, and (3) the meaning of each part of the language. In any session or anywhere in the final I may ask you to draw and/or interpret diagrams using the UML. Here is a question on semantics that I ask on finals: "Give an example of how your project team described the semantics of its language".
1. Study the handouts. This and other resources can be found on the WWW via the CS320 index: [ UML in resources ]
2. Answer as many of the review questions at the end of the handout as you have time.
3. Hand in written answers for 2 review questions at the start of the next class.
Your first task is to draw a UML diagram of the concepts used in the language. Drawing this diagram should help you spot some things that you'd like to change in the original specification.
Your second task is to prepare a list of improvements you would make to the language.
Your third task is to give a name to the language that you will produce.
Fourth Task: write up your results: diagram, improvements, language name, and the people in the group.
Finally: hand it in. Plain paper, stapled please. No cover sheets, folders, etc.