HOME
*



picture info

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 has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic IO. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry. Haskell's semantics are historically based on those of the Miranda programming language, which served to focus the efforts of the initial Haskell working group. The last formal specification of the language was made in July 2010, while the development of GHC continues to expand Haskell via language extensions. Haskell is used in academia and industry. , Haskell was the 28th most popular programming language by Google searches for tutorials, and made up less than 1% of active users on the GitHub source code repository. History ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Glasgow Haskell Compiler
The Glasgow Haskell Compiler (GHC) is an open-source native code compiler for the functional programming language Haskell. It provides a cross-platform environment for the writing and testing of Haskell code and it supports numerous extensions, libraries, and optimisations that streamline the process of generating and executing code. GHC is the most commonly used Haskell compiler. The lead developers are Simon Peyton Jones and Simon Marlow. History GHC originally started in 1989 as a prototype, written in LML (Lazy ML) by Kevin Hammond at the University of Glasgow. Later that year, the prototype was completely rewritten in Haskell, except for its parser, by Cordelia Hall, Will Partain, and Simon Peyton Jones. Its first beta release was on 1 April 1991 and subsequent releases added a strictness analyzer as well as language extensions such as monadic I/O, mutable arrays, unboxed data types, concurrent and parallel programming models (such as software transactional memory and ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Haskell Platform
The Haskell Platform is a collection of software packages, tools and libraries that create a common platform for using and developing applications in Haskell. With the Haskell Platform, Haskell follows the same principle as Python: "Batteries included". Since 2022, the Haskell Platform has been deprecated. Motivation The Haskell Platform aims to unify Haskell development tools into a single package, consisting of a compiler, compiling tools and many standard libraries, therefore making it easier to develop and deploy full-featured Haskell-driven applications. Packages included Currently it consists of: * GHC, Haskell's flagship compiler * The GHC- Profiler * GHCi, GHCs bytecode- interpreter * The GHCi-Debugger * Alex, a lexer generator, similar to Lex * Happy, a parser generator, similar to Yacc * Cabal, a package manager * Haddock, a documentation tool * hsc2hs, a preprocessor for binding Haskell to C code, allowing C libraries to be used from Haskell * various librarie ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Clean (programming Language)
Clean is a general-purpose purely functional computer programming language. It was called the Concurrent Clean System, then the Clean System, later just Clean. Clean has been developed by a group of researchers from the Radboud University in Nijmegen since 1987. Features The language Clean first appeared in 1987. Although development of the language itself has slowed down, some researchers are still working in the language. In 2018, a spin-off company was founded that uses Clean as well. Clean shares many properties and syntax with a younger sibling language, Haskell: referential transparency, list comprehension, guards, garbage collection, higher order functions, currying and lazy evaluation. However, Clean deals with mutable state and I/O through a uniqueness typing system, in contrast to Haskell's use of monads. The compiler takes advantage of the uniqueness type system to generate more efficient code, because it knows that at any point during the execution of the progr ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Hugs (interpreter)
Hugs (''Haskell User's Gofer System''), also Hugs 98, is a bytecode interpreter for the functional programming language Haskell. Hugs is the successor to Gofer, and was originally derived from Gofer version 2.30b. Hugs and Gofer were originally developed by Mark P. Jones, now a professor at Portland State University. Hugs comes with a simple graphics library. As a complete Haskell implementation that is portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a temporary building installed on the grounds of a school to provide ... and simple to install, Hugs is sometimes recommended for new Haskell users. Hugs deviates from the Haskell 98 specification in several minor ways. For example, Hugs does not support mutually recursive modules. A list of differences exists. The Hugs prompt (a Haskell REPL) accepts expressions for evaluation, but not m ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Agda (programming Language)
Agda is a dependently typed functional programming language originally developed by Ulf Norell at Chalmers University of Technology with implementation described in his PhD thesis. The original Agda system was developed at Chalmers by Catarina Coquand in 1999. The current version, originally known as Agda 2, is a full rewrite, which should be considered a new language that shares a name and tradition. Agda is also a proof assistant based on the propositions-as-types paradigm, but unlike Coq, has no separate tactics language, and proofs are written in a functional programming style. The language has ordinary programming constructs such as data types, pattern matching, records, let expressions and modules, and a Haskell-like syntax. The system has Emacs and Atom interfaces but can also be run in batch mode from the command line. Agda is based on Zhaohui Luo's unified theory of dependent types (UTT), a type theory similar to Martin-Löf type theory. Agda is named after ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


John Launchbury
John Launchbury is an American and British computer scientist who is currently Chief Scientist at Galois, Inc. Previously, he directed one of DARPA’s technical offices, where he oversaw nation-scale scientific and engineering research in cybersecurity, data analysis, and artificial intelligence. He is known for research and entrepreneurship in the implementation and application of functional programming languages. In 2010, Launchbury was inducted as a Fellow of the Association for Computing Machinery. Education Launchbury received first-class honors in mathematics from Oxford University in 1985, and an M.Sc. in computation in 1986. He holds a Ph.D. in computing science from the University of Glasgow. In 1991, the Cambridge University Press published his thesis, ''Projection Factorizations in Partial Evaluation'', after it won the British Computer Society's distinguished dissertation prize. Career and research As a lecturer at the University of Glasgow, Launchbury focu ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Gofer (programming Language)
Gofer (''Good for equational reasoning'') is an implementation of the programming language Haskell intended for educational purposes and supporting a language based on version 1.2 of the Haskell report. It was replaced by Hugs. Its syntax is closer to the earlier commercial language Miranda than the subsequently standardized Haskell. It lacks some of the features of Haskell (such as the deriving clause in data type definitions) but includes a number of features which were not adopted by Haskell (although some were later incorporated into GHC, such as generalizing the list comprehension A list comprehension is a syntactic construct available in some programming languages for creating a list based on existing lists. It follows the form of the mathematical ''set-builder notation'' (''set comprehension'') as distinct from the use of ... syntax to support any monad, which is now available using the MonadComprehensions extension). References External links Mark Jones' Gofer Ar ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Static Typing
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term. Type systems formalize and enforce the otherwise implicit categories the programmer uses for algebraic data types, data structures, or other components (e.g. "string", "array of float", "function returning boolean"). Type systems are often specified as part of programming languages and built into interpreters and compilers, although the type system of a language can be extended by optional tools that perform added checks using the language's original type syntax and grammar. The main purpose of a type system in a programming language ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Gofer (software)
Gofer (''Good for equational reasoning'') is an implementation of the programming language Haskell intended for educational purposes and supporting a language based on version 1.2 of the Haskell report. It was replaced by Hugs. Its syntax is closer to the earlier commercial language Miranda than the subsequently standardized Haskell. It lacks some of the features of Haskell (such as the deriving clause in data type definitions) but includes a number of features which were not adopted by Haskell (although some were later incorporated into GHC, such as generalizing the list comprehension syntax to support any monad, which is now available using the MonadComprehensions extension). References External links Mark Jones' Gofer Archive– for x86 PC Gavin Wraith's RISC OS page– for RISC OS RISC OS is a computer operating system originally designed by Acorn Computers Ltd in Cambridge, England. First released in 1987, it was designed to run on the ARM chipset, which Acorn ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Simon Peyton Jones
Simon Peyton Jones (born 18 January 1958) is a British computer scientist who researches the implementation and applications of functional programming languages, particularly lazy functional programming. Education Peyton Jones graduated from Trinity College, Cambridge with a BSc in Electrical Sciences in 1979 and went on to complete the Cambridge Diploma in Computer Science in 1980. He never did a PhD. Career and research Peyton Jones worked in industry for two years before serving as a lecturer at University College London and, from 1990 to 1998, as a professor at the University of Glasgow. From 1998 to 2021 he worked as a researcher at Microsoft Research in Cambridge, England. Since 2021 he has worked at Epic Games as an engineering fellow. He is a major contributor to the design of the Haskell programming language, and a lead developer of the Glasgow Haskell Compiler (GHC). He is also co-creator of the programming language, designed for intermediate program repr ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


ML (programming Language)
ML (Meta Language) is a general-purpose functional programming language. It is known for its use of the polymorphic Hindley–Milner type system, which automatically assigns the types of most expressions without requiring explicit type annotations, and ensures type safetythere is a formal proof that a well-typed ML program does not cause runtime type errors. ML provides pattern matching for function arguments, garbage collection, imperative programming, call-by-value and currying. It is used heavily in programming language research and is one of the few languages to be completely specified and verified using formal semantics. Its types and pattern matching make it well-suited and commonly used to operate on other formal languages, such as in compiler writing, automated theorem proving, and formal verification. Overview Features of ML include a call-by-value evaluation strategy, first-class functions, automatic memory management through garbage collection, parametric poly ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Type Inference
Type inference refers to the automatic detection of the type of an expression in a formal language. These include programming languages and mathematical type systems, but also natural languages in some branches of computer science and linguistics. Nontechnical explanation Types in a most general view can be associated to a designated use suggesting and restricting the activities possible for an object of that type. Many nouns in language specify such uses. For instance, the word leash indicates a different use than the word line. Calling something a table indicates another designation than calling it firewood, though it might be materially the same thing. While their material properties make things usable for some purposes, they are also subject of particular designations. This is especially the case in abstract fields, namely mathematics and computer science, where the material is finally only bits or formulas. To exclude unwanted, but materially possible uses, the concept ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]