6 — Simple Types (a)
Due Tuesday, 20 Feb; 9:00am
; Problem Set 6 ; Lastname1, Firstname1 ; Lastname2, Firstname2
lang.rkt, for the revised language implementation,
client.rkt, for the revised language client file,
Project Idea If you have not met with me concerning a project idea, come to my office hour or schedule a meeting by Feb 20.
Project Memo If you have trouble with the Project Memos, see me during office hours or make an appointment.
Problem Modify the Racket-y network language so that it supports a simple type system.
|
|
|
|
|
|
Note that this syntax no longer incorporates all of Racket. Also, the purpose of this syntax is to allow network-flow mathematicians to use definitions for common elements. For example, it is obviously possible to give a list of edges a name. What could mentioning this name mean, however, in a node specification?
Tasks
Add the grammar to the top of your language implementation file.
Describe the scoping structure of this language in a comment block below the grammar.
Describe the semantics of this syntax with comment blocks for each feature below your scoping structure description. Try to make the syntax convenient without making it confusing.
Develop a reasonably-easy-to-use type system for the revised language that also works with your chosen semantics.
Use ASCII art within comment blocks to describe the type system.
The purpose of this task is to get you design some elements of a language, not its implementation.