## 15-816 Linear Logic |

We show that non-commutative linear logic is closely related to stacks for a simple functional operational semantics. Because functional programming languages do not evaluate under lambda-abstractions, however, parts of the stack must be copied onto the heap at runtime, unless some additional properties are satisfied.

We investigate the example of A-normal forms used in modern functional language compilers. A-normal forms explicitly sequentialize computation and name all intermediate results. It follows from general considerations in non-commutative linear logic that the intermediate values in an A-normal form can be allocated on a global runtime stack. Some compile-time optimization can violate this property, a phenomenon which can be analyzed cleanly using the logical machinery at hand.

- Next:
*this is the final lecture* - Previous: Lecture 27: Non-Commutative Linear Logic
- Schedule

Frank Pfenning fp@cs