|
5 | 5 | @(require "../../langs/con-plus/semantics.rkt") |
6 | 6 | @(require redex/pict) |
7 | 7 |
|
8 | | -@bold{Part 1 Due: Wednesday, February 21, 11:59PM} |
9 | | - |
10 | | -@bold{Part 2 Due: Wednesday, February 28, 11:59PM} |
11 | | - |
| 8 | +@bold{Due: Thursday, October 3, 11:59PM} |
12 | 9 |
|
13 | 10 | The goal of this assignment is to extend the language developed in |
14 | 11 | @secref{Dupe} with some simple unary numeric and boolean operations |
15 | 12 | and two forms of control flow expressions: @racket[cond]-expressions |
16 | 13 | and @racket[case]-expressions. |
17 | 14 |
|
18 | | -This assignment consists of two parts. Part 1 asks you to write a |
19 | | -number of programs in the extended language. Part 2 asks you to |
20 | | -implement the language. |
21 | | - |
22 | | -@section[#:tag-prefix "a3-" #:style 'unnumbered]{Part 1} |
23 | | - |
24 | | -For this part of the assignment, you must write a number of programs |
25 | | -in the Dupe+ language. These programs should be syntactically |
26 | | -well-formed and @bold{produce a value} when evaluated, i.e. these should |
27 | | -be programs that do not cause run-time errors. |
28 | | - |
29 | | -This exercise will help you understand the features you will be |
30 | | -implementing in the second part of the assignment and can be used to |
31 | | -test your compiler. In fact, we will use the programs you write to |
32 | | -run against a collection of existing Dupe+ compilers to see if they |
33 | | -uncover any bugs. The more bugs you can uncover, the better. |
| 15 | +@section[#:tag-prefix "a3-" #:style 'unnumbered]{Dupe+} |
34 | 16 |
|
35 | 17 | The Dupe+ language extends Dupe in the follow ways: |
36 | 18 |
|
@@ -103,13 +85,11 @@ Note that each clause consists of a parenthesized list of |
103 | 85 | @emph{datums}, which in the setting of Dupe means either integer or |
104 | 86 | boolean literals. |
105 | 87 |
|
| 88 | +@section[#:tag-prefix "a3-" #:style 'unnumbered]{Implementing Dupe+} |
106 | 89 |
|
107 | | -@section[#:tag-prefix "a3-" #:style 'unnumbered]{Part 2} |
108 | | - |
109 | | -For this part of the assignment, you must extend the parser, |
110 | | -interpreter, and compiler to implement Dupe+. You are given a file |
111 | | -@tt{dupe-plus.zip} on ELMS with a starter compiler based on the |
112 | | -@secref{Dupe} language we studied in class. |
| 90 | +You must extend the parser, interpreter, and compiler to implement |
| 91 | +Dupe+. You are given a file @tt{dupe-plus.zip} on ELMS with a starter |
| 92 | +compiler based on the @secref{Dupe} language we studied in class. |
113 | 93 |
|
114 | 94 | You may use any a86 instructions you'd like, however it is possible to |
115 | 95 | complete the assignment using @racket[Cmp], @racket[Je], @racket[Jg], |
|
0 commit comments