Impromptu (programming environment)

This is an old revision of this page, as edited by Frankie (talk | contribs) at 00:43, 2 June 2011 (removed sections 2-3 and spare EL). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
This article is about the programming language. For other uses, see Impromptu (disambiguation).

Impromptu is a Mac OS X programming environment for composers, sound artists, VJs and graphic artists with an interest in live or interactive programming. Impromptu is a Scheme language environment, a member of the Lisp family of languages.

Impromptu
ParadigmFunctional, multi-paradigm
Designed byAndrew Sorensen
First appeared2005
Stable release
2.5
Typing disciplineDynamic & static
OSMac OS X
Websitehttp://impromptu.moso.com.au/

Its key features are :

  • A fully dynamic Scheme environment. You can evaluate any portion of code in the builtin editor while the program is running, which means you can (re)define variables or functions live, the changes take effect immediately.
  • Asynchronous scheduling. Impromptu allows a programmer to create and schedule code for future execution as well as data events such as notes and graphics objects. Once an event is scheduled, execution continues. Looping is performed by using an idiom called "temporal recursion" which works by having a function asynchronously schedule a future call to itself as its final action.
  • Extensive library based on a tight integration with Mac OS X. Audio synthesis is done via Audio Units and graphics/video are composed using QuickTime, Quartz, Core Image, OpenGL etc.. You can also call Objective-C code from the editor and call back into the Scheme interpreter from your own Objective C frameworks.
  • Impromptu includes a static type inferencing compiler for a minimal functional language similar to Scheme but designed for systems style programming. The compiler uses LLVM for backend compilation to x86. You can find out more about the compiler and language here.
  • Impromptu's Scheme Interpreter was initially built from the TinyScheme 1.35 baseline. The interpreter has been substantially modified since Impromptu's initial release.
  • Free to use, but not open-source.

References

Papers by Andrew Sorensen

Independant academic sources referencing Impromptu

See also