The Poly* Type System

This page provides information about the Poly* system. It lists the available resources and it allows a user to easily experiment with a type inference algorithm using an online accessible web demonstration tool. The implementation is also available here to download as a standalone program.

What is Poly* ?

The following notions try to summarize the most important information about the Poly* system:

Credits and Acknowledgments

The Poly* system was formerly developed by Makholm and Wells based on the previous work on a type system for Mobile Ambients by Amtoft, Makholm, and Wells. Recent updates and extensions of the theory and implementation are due to Jakubův and Wells.

The development of this prototype was funded by EPSRC grant EP/C013573/1 and by EC FP5/FET/GC grant IST-2001-33477 “DART” and supported by Sun Microsystems equipment grant EDUD-7826-990410-US.

Online web demo

You can test the Poly* system and experiment with the type inference algorithm using an online web demonstration of the type inference implementation.

Sebastien Carlier created the Meta* emulator web application which allows a user to simulate rewriting of an input process step by step (currently working only for Mobile Ambients).

Resources

The following list both recent and previous technical reports and conference papers which explain the Poly* theory in details.

We also have a list of common questions about Poly* with answers.

Latest

The latest 2009 technical report contains the most recent updates and extensions of the theory, and a comparison of the expressiveness of shape types and Poly* with related systems. It can be found here:

Previous

A previous report and an ESOP'05 paper are available here:

Historic

Previous work on the type system PolyA for Mobile Ambients can be found here:

Source code download

The source code archive containing the implementation of the type inference algorithm can be downloaded here: polystar-1.42.tar.gz.

To compile the source code you need Moscow ML (with the latest Mar 2008 glibc patch applied) and GNU Make. Moreover to visualize the output of the implementation you might want to use either Graphviz or VCG.