8.0.0.12
Lambda Calculus Translation, CSC530, Spring 2021
Write a compiler that accepts terms in the lambda calculus and outputs either JavaScript or Python or (massively harder) C.
Here’s the grammar of the input language:
LC | = | num | ||
| | id | |||
| | (/ id => LC) | |||
| | (LC LC) | |||
| | (+ LC LC) | |||
| | (* LC LC) | |||
| | (ifleq0 LC LC LC) | |||
| | (println LC) |
...where num is a number, and id is an identifier.
1 Handin
Here’s a Github Classroom link: https://classroom.github.com/g/yaqX-5lk
You can work with a partner, if you like.