The Flute Programming Language
Flute "Endingidi"
Flute is an experimental programming language that is designed for developing true context-aware applications. The language is implemented as a meta-interpreter in iScheme, a Scheme implementation that runs on iOS devices. iScheme supports a language symbiosis between Scheme and Objective-C language, which makes it possible for Flute programs to access context source APIs (such as GPS and accelerometer) available on the iOS.
Language features
Context-aware applications written in Flute are always prepared for sudden interruptions and when they are interrupted their execution state is automatically saved and can be resumed later on when relevant context changes occur. In brief, Flute has the following features:
- Predicated context-dependent procedures and variables
- Reactive dispatching: Invocation happens by calling the group of procedures (modal) which involves the selection of the applicable procedure (mode) based on context predicates. The dispatching process is repeated whenever relevant context changes are observed.
- Interruptible and resumable execution of procedures: The execution of a procedure can be interrupted at any moment during execution and later resumed based on context changes.
- Scoped state changes. The developer can control the visibility of state changes using strategies provided by Flute.