Agda
- Appeared in:
- 1999
- Influenced by:
- Paradigm:
- Typing discipline:
- File extensions:
- .agda, .lagda
- Versions and implementations (Collapse all | Expand all):
Agda is both a functional dependently-typed programming language and a proof assistant. It is developed at Chalmers University of Technology as a successor of older proof assistants.
The language is based on a constructive type theory á la Martin-Löf, extended with dependent record types, inductive definitions, module structures and a class hierarchy mechanism. The class mechanism of Agda is similar to that of Haskell.
The language has evolved through several significantly different stages. The oldest version, referred to as Agda1/OldSyntax, was created in 1999 and is not available any more. It was followed by Agda1/NewSyntax, available since 2005. Current version is Agda 2.
Elements of syntax:
Inline comments | -- |
---|---|
Nestable comments | {- ... -} |
Examples:
Hello, World!:
Example for versions agda 2.2.6Just writing strings is not a natural task for Agda, so it needs some extra installations.
This example should be saved in file “helloworld.agda”. You’ll have to install agda standard library (agda-stdlib); this was tested with agda 2.2.6 and agda-stdlib 0.3. To compile the example, use agda -i [library path] -i . -c helloworld.agda
, where [library path]
is a path to where you installed agda-stdlib. This compiles Agda source code into Haskell code, and then converts it into an executable.
module helloworld where
open import IO.Primitive using (IO; putStrLn)
open import Data.String using (toCostring; String)
open import Data.Char using (Char)
open import Foreign.Haskell using (fromColist; Colist; Unit)
open import Data.Function
fromString = fromColist . toCostring
main : IO Unit
main = putStrLn (fromString "Hello, World!")
Comments
]]>blog comments powered by Disqus
]]>