Qi (programming language)
From Wikipedia, the free encyclopedia
Qi is a functional programming language developed by Dr Mark Tarver and introduced in its current form in April 2005 under the GPL license. Although Qi is written in Lisp, it includes most of the features common to modern functional programming languages such as pattern-matching, currying, partial applications and (optional) static type checking. The combination of all these features within the Lisp environment makes Qi in many senses a rationalisation and modernisation of Lisp. Qi won its creator a Promising Invention Award from the State University of New York in 2003.
[edit] Notable Features
Though Qi shares the afore-mentioned features with modern functional programming languages like Standard ML and Haskell, Qi includes features which are quite specific to the language. Qi's most significant divergence from ML and Haskell is the use of sequent calculus notation to define types. Qi incorporates an efficient compiler for compiling sequent calculus notation into an extended Prolog that incorporates embedded function calls. Since Prolog is itself a programming language, the type specification language of Qi is Turing-equivalent, which in practice means that type checking in Qi is not guaranteed to terminate.
This fact initially generated some controversy, but the author defended this feature by arguing that non-termination was an inevitable by-product of increased expressiveness and that a preference for a less expressive terminating type system represented a value judgement. In the absence of user-defined types, the Qi type checker will in fact terminate in all cases.
[edit] Current Development
As of March 2007, Qi has been uprated twice since the first release (6.1) in April 2005 and the current release, 7.2, runs under both Windows and Linux on the CLisp and also the CMU Common Lisp platforms. A release (Qi/Tk) incorporating a type secure version of TCL/Tk embedded into Qi is scheduled to appear later in 2007.
[edit] External links
- Lambda Associates is the home for Qi.
- Functional Programming in Qi is the standard text.
- Qi includes an embedded Prolog and TDPL (top-down parsing language) compiler-compiler described on the home site. The Abstract Unification Machine is the virtual machine that powers Qi's extended Prolog and its interpretation into Lisp.
- Online code studies in Qi are available on the main site.
- Qi has its own news group.