An Interface to LFPL Prototype Compiler by Robert Atkey
This frontend has been added to the compiler by Michal Konečnư and
corresponds to the typing described in the paper
Another Type System for In-Place Update
by David Aspinall and Martin Hofmann.
The input syntax is the same as for LFPL. Product types
(t1,t2) are treated as cartesian products while the
implicit products in datatypes are treated as tensor products.
This frontend infers a so called usage aspect for each
argument of all the functions. In addition to the following three usage aspects
defined in the above paper, the compiler may use the following fourth aspect
- 1 = the argument might be destroyed
- 2 = the argument is used read-only
- 3 = like 2 but the argument's heap region is not reused in the result
whose presence makes it possible for the compiler to produce a
valid annotation even for incorrect programs.
Type a program
or start with the
- # = the argument is used unsafely, the program might fail to evaluate correctly
Back to the main page of the compiler by Robert Atkey.
Other frontends available:
Other compilers available:
by Nick Brown
Back to the main project page.
Last modified: Fri Feb 21 14:30:18 GMT 2003