Skip to content

Commit c4bf8fc

Browse files
committed
Assn 4.
1 parent ae95958 commit c4bf8fc

1 file changed

Lines changed: 5 additions & 35 deletions

File tree

www/assignments/4.scrbl

Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,16 @@
22

33
@title[#:tag "Assignment 4" #:style 'unnumbered]{Assignment 4: Let There Be (Many) Variables}
44

5-
@bold{Part 1 Due: Wednesday, March 27, 11:59PM EST}
6-
7-
@bold{Part 2 Due: Monday, April 8, 11:59PM EST}
5+
@bold{Due: Tuesday, October 29, 11:59PM EST}
86

97
The goal of this assignment is to extend a compiler with binding forms and
108
primitives that can take any number of arguments.
119

12-
This assignment consists of two parts. In Part 1 you must submit test programs
13-
written in the new Fraud+ language. In Part 2 you must implement Fraud+.
14-
15-
@section[#:tag-prefix "a4-" #:style 'unnumbered]{Part 1}
16-
17-
For the first part of the assignment, you must write test programs in the
18-
Fraud+ language. These programs should be syntactically well-formed and
19-
@bold{must produce an answer} when evaluated, i.e., these should be programs
20-
that either produce values or are expected to return @tt{'err} according to the
21-
Fraud semantics, but should not cause other errors. (The concept of an
22-
@emph{answer} was introduced in @seclink["errors"]{Extort}.)
23-
24-
You may write as many test programs as you like, but @bold{each program must be
25-
written in a separate file}. You can put all of your files in one directory and
26-
compress ("zip") that directory to submit it. Each program should be formatted
27-
as usual for a standalone program, i.e., it should have the line @tt{#lang
28-
racket} at the top and your program expression on a line below that.
29-
30-
Your submission will be graded by running each program on a set of Fraud+
31-
compilers implemented by students in previous semesters, and your goal is to
32-
craft test programs that discover bugs in these implementations. Your programs
33-
will be run on many more compilers than you need to eliminate for a full score;
34-
this is so students do not all need to find the same bugs. Additionally, we do
35-
not know for certain that every compiler has a bug, so it may not be possible
36-
to eliminate all of them. (We randomly select some compilers that pass all of
37-
our tests so that students have the opportunity to write better tests than us.
38-
This has helped us find deficiencies in our compilers before.)
39-
4010

41-
@section[#:tag-prefix "a4-" #:style 'unnumbered]{Part 2}
11+
@section[#:tag-prefix "a4-" #:style 'unnumbered]{Overview}
4212

43-
For the second part of the assignment, you are given a @tt{fraud-plus.zip} file
44-
on ELMS with a starter compiler similar to the @seclink["Fraud"]{Fraud}
13+
For this assignment, you are given a @tt{fraud-plus.zip} file on ELMS
14+
with a starter compiler similar to the @seclink["Fraud"]{Fraud}
4515
language we studied in class.
4616

4717
Unlike @seclink["Assignment 3"]{Assignment 3}, the following files have already
@@ -85,7 +55,7 @@ You can test your code in several ways:
8555
]
8656

8757
Note that only a small number of tests are given to you, so you should
88-
write additional test cases. We recommend using your tests from Part 1!
58+
write additional test cases.
8959

9060

9161
@section[#:tag-prefix "a4-" #:style 'unnumbered]{Fraud+}

0 commit comments

Comments
 (0)