May-2013.tex 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. \documentclass{article}
  2. \usepackage{hcar}
  3. \begin{document}
  4. % Agda-NA.tex
  5. \begin{hcarentry}[section,updated]{Agda}
  6. \label{agda}
  7. \report{Nils Anders Danielsson}%05/13
  8. \status{actively developed}
  9. \participants{Ulf Norell, Andreas Abel, and many others}
  10. \makeheader
  11. Agda is a dependently typed functional programming language (developed
  12. using Haskell). A central feature of Agda is inductive families,
  13. i.e.\ GADTs which can be indexed by \emph{values} and not just types.
  14. The language also supports coinductive types, parameterized modules,
  15. and mixfix operators, and comes with an \emph{interactive}
  16. interface---the type checker can assist you in the development of your
  17. code.
  18. A lot of work remains in order for Agda to become a full-fledged
  19. programming language (good libraries, mature compilers, documentation,
  20. etc.), but already in its current state it can provide lots of fun as
  21. a platform for experiments in dependently typed programming.
  22. In November Agda~2.3.2 was released, with the following changes (among
  23. others):
  24. \begin{itemize}
  25. \item Pattern synonyms (Stevan Andjelkovic and Adam Gundry).
  26. \item Modifications to the constraint solver (Andreas Abel).
  27. \item A \LaTeX\ backend, with the aim to support both precise,
  28. Agda-style highlighting, and lhs2TeX-style alignment of code (Stevan
  29. Andjelkovic).
  30. \item The Emacs mode no longer depends on GHCi and haskell-mode (Peter
  31. Divianszky).
  32. \item The Emacs mode is more interactive: type-checking no longer
  33. blocks Emacs, and there is an option to highlight the expression
  34. that is currently being type-checked (Guilhem Moulin and Nils Anders
  35. Danielsson).
  36. \end{itemize}
  37. \FurtherReading
  38. The Agda Wiki: \url{http://wiki.portal.chalmers.se/agda/}
  39. \end{hcarentry}
  40. \end{document}