This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
cs330_f2016:lab16 [2017/04/17 22:39] dhart |
cs330_f2016:lab16 [2021/06/30 23:42] (current) |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| === Language Overview === | === Language Overview === | ||
| - | The CITypes language is based on the CI5 language, just like your Extended Interpreter. | + | The CITypes language is based on the CI3 language, just like your Extended Interpreter. |
| ** You do not need to add any functionality from your previous assignments. ** | ** You do not need to add any functionality from your previous assignments. ** | ||
| Line 32: | Line 32: | ||
| For example, a simple numeric increment function would be written as | For example, a simple numeric increment function would be written as | ||
| <code lisp> | <code lisp> | ||
| - | (lambda x : number (+ x 1) | + | (lambda x : number (+ x 1)) |
| </code> | </code> | ||
| - | and a function that takes as input a function from numbers to numbers would look like this: | + | and a function lambda that takes as input a function f from numbers to numbers would look like this: |
| <code lisp> | <code lisp> | ||
| (lambda f : (number : number) (f 3)) | (lambda f : (number : number) (f 3)) | ||
| Line 104: | Line 104: | ||
| ====Hints:==== | ====Hints:==== | ||
| - | * The "calcf" function in the CI5 interpreter that read in a test file, ran it through lex / parse / calc has been replaced with a "typef" function that similarly reads in a test file and runs it through lex / parse / type_of_expression. You can use it to run your own test cases. | + | * The "calcf" function in the CI3 interpreter that read in a test file, ran it through lex / parse / calc has been replaced with a "typef" function that similarly reads in a test file and runs it through lex / parse / type_of_expression. You can use it to run your own test cases. |
| * Make sure you test not only for validly typed expressions but for each kind of type error. | * Make sure you test not only for validly typed expressions but for each kind of type error. | ||