Aviva Directory » Computers & Internet » Programming » Agda

Agda is a research language developed at Chalmers University of Technology, in Gothenburg, Sweden, and attributed to several authors, including Catarina Coquand, Makoto Takeyama, Ulf Norell, Andreas Able, and others.

However, Agda 2, released in 2007, was a complete rewrite of the 1999 Agda 1 language.

Commonly, Agda programmers use the Emacs text editor as a basic IDE. Text is entered into a buffer in Emacs, then the text in the buffer is sent to Agda for type and proof checking. An advantage of using Emacs for Agda is that they both support the use of Unicode characters. The Agda mode for Emacs recognizes certain names that begin with a backslash, as they are typed. It then converts them to the special symbol associated with those names.

For example, when a programmer types \all into Emacs in Agda mode, Emacs will change it to ∀, which is the logical symbol used when expressing that "for all" elements of some particular type, some formula is true.

It might take practice getting used to entering text in Unicode, but this is one of the more notable features of the language.

Agda is a dependently-typed functional programming language with inductive families; for example, data types that depend on values, such as the type of vectors of a given length. It also uses parameterized modules, mixfix operators, Unicode characters, and an interactive Emacs interface that can be used to facilitate the task of programming. Agda is an interactive system that is used for writing and checking proofs.

With Agda, there are no runtime errors. The inevitable errors, such as I/O errors, are handled, while others are excluded by design. There are no non-productive infinite loops. Functional properties may be formalized and proved, and proof checking is automatic.

Agda is an open-source language licensed under a BSD-type License. It can be installed on Linux, macOS, and Windows.

The focus of this category is on the Agda computer programming language. Topics that are strongly related to the language itself, to any of its versions or implementations, or to any editors or tools that have been designed specifically to facilitate programming in Agda, are appropriate for this category, as are any Agda user groups, forums, tutorials, guides, or other content.



Recommended Resources

Search for Agda on Google or Bing