Skip to content

Commit

Permalink
Update index.md
Browse files Browse the repository at this point in the history
  • Loading branch information
grosu authored Nov 27, 2023
1 parent fb01d25 commit a6ccbd0
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions teaching/2023/cs422/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,25 @@ Note: See the [private-members](https://github.com/kframework/k/tree/master/k-di
- ***FUN: Designing Functional Programming Languages***
- [FUN untyped](https://kframework.org/k-distribution/pl-tutorial/) (Part 9 of the K Tutorial, without the type inferencer). Click [here](https://github.com/kframework/k/tree/master/k-distribution/pl-tutorial/2_languages/3_fun) to see the code on GitHub.

---
<b><em><span style="color:red">HW5 (due date: Tuesday, December 5, AoE)</span></em></b>

***Exercise 1 (10 points):*** Add a `let*` construct to environment-based FUN. `let*` has the same syntax as `let`, but it applies the bindings in the order in which they are given. For example, the program `let* x=1 and y=x in y` is well defined and evaluates to `1`, but it would be undefined if we replaced `let*` with `let`.

Note: See the [letstar](https://github.com/kframework/k/tree/master/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/exercises/letstar) exercise for details and test programs.

***Exercise 2 (10 points):*** Add interactive `read` and `print` to environment-based FUN.

Note: See the [io](https://github.com/kframework/k/tree/master/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/exercises/io) exercise for details and test programs.

***Exercise 3 (10 points):*** Add thread creation, with `spawn`, and synchronization, with `join`, to environment-based FUN.

Note: See the [spawn-join](https://github.com/kframework/k/tree/master/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/exercises/spawn-join) exercise for details and test programs.

***Exercise 4 (10 points):*** Extend the semantics of `letrec` in substitution-based FUN, which currently can only take one binding, to arbitrarily many bindings.

Note: See the [letrec](https://github.com/kframework/k/tree/master/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/2_substitution/exercises/letrec) exercise for details and test programs.

---
---
... more to come ...
Expand Down

0 comments on commit a6ccbd0

Please sign in to comment.