Ωmega
   HOME

TheInfoList



OR:

The Omega interpreter is a
strict In mathematical writing, the term strict refers to the property of excluding equality and equivalence and often occurs in the context of inequality and monotonic functions. It is often attached to a technical term to indicate that the exclusiv ...
pure
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
interpreter Interpreting is translation from a spoken or signed language into another language, usually in real time to facilitate live communication. It is distinguished from the translation of a written text, which can be more deliberative and make use o ...
similar to the Hugs
Haskell Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
interpreter. The syntax closely resembles that of Haskell but with important differences: * Omega uses strict evaluation (Hugs uses
lazy evaluation In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an Expression (computer science), expression until its value is needed (non-strict evaluation) and which avoids repeated eva ...
); * Ability to introduce new kinds; * Allows writing functions at the type level. Other differences are documented in the Omega user guide. Omega was developed by Professor Tim Sheard of
Portland State University Portland State University (PSU) is a public research university in Portland, Oregon, United States. It was founded in 1946 as a post-secondary educational institution for World War II veterans. It evolved into a four-year college over the next ...
's Computer Science Department as a language with an infinite hierarchy of computational levels, e.g., value, type, kind, sort. The underlying concept is that data, and functions manipulating data, can be introduced at any level.


References


External links

* , with download Free Haskell implementations {{Programming-software-stub