Website | Source | Specification

Not currently under development; moved on to Wyvern.

Publications:
* First-Class State Change in Plaid
* Gradual Typestate
* Permission-Based Programming Languages
* Typestate-Oriented Programming
* Concurrency by Default: Using Permissions to Express Dataflow in Stateful Programs

Typestate:

state File {
  public final String filename;
}
state OpenFile extends File {
  private CFilePtr filePtr;
  public int read() { ... }
  public void close() [OpenFile>>ClosedFile]
  { ... }
}
state ClosedFile extends File {
  public void open() [ClosedFile>>OpenFile]
  { ... }
}


Tags: language  

Last modified 01 July 2021