Programming Languages

Type Systems II

Due on Wednesday, April 4th at 11:59 PM. This is a team lab. You may work alone or you may work with a partner. If you’d like to work with a partner, make sure to indicate your preferred partner using Teammaker and be familiar with the Partner Etiquette guidelines. You may discuss the concepts of this lab with other classmates, but you may not share your code with anyone other than course staff and your lab partner(s). Do not look at solutions written by students other than your team. If your team needs help, please post on the Piazza forum or contact the instructor. If you have any doubts about what is okay and what is not, it’s much safer to ask than to risk violating the Academic Integrity Policy.

Overview

This lab contains exercises related to subtyping and type inference. As in the previous assignment, you will generate proofs of typing as well as construct your own type systems using inference rules. As usual, you will use Teammaker to form your repositories.

Assignment Structure

This assignment is also entirely written. As in the previous assignments, you are required to use LaTeX as well as the proof notation from the textbook. If you have any difficulty with the notation or how to use LaTeX to produce it, please ask your instructor.

Your repository contains a document assignment7.tex which you will build by running make assignment7.pdf. Write your answers in answers.tex, which may be built by running make answers.pdf or simply make. In cases in which you need to write code, consider using the verbatim environment. Please remember that the source code for the assignment document itself – assignment7.tex – is available for your consideration if you’re not sure how to typeset something. Your instructor is also happy to help with any LaTeX issues you encounter.

Deliverables

Only the written material in answers.tex will be graded for this assignment. LaTeX documents which contain syntax errors or other flaws which prevent them from being compiled will not receive full credit.

Submitting

To submit your lab, just commit and push your work. The most recent pushed commit as of the due date will be graded. For more information on when assignments are due, see the Policies page.

If You Have Trouble…

…then please contact your instructor! Piazza is the preferred method, but you can reach out via e-mail as well. Good luck!