패러다임 | 함수형 |
---|---|
설계자 | Ulf Norell; Catarina Coquand (1.0) |
개발자 | Ulf Norell; Catarina Coquand (1.0) |
발표일 | 2007년 | (1.0 in 1999년 )
최근 버전 | 2.6.2 |
최근 버전 출시일 | 2021년 6월 19일 |
자료형 체계 | strong, static, dependent, nominal, manifest, inferred |
구현 언어 | Haskell |
운영 체제 | 크로스 플랫폼 |
라이선스 | BSD-like[1] |
파일 확장자 | .agda , .lagda , .lagda.md , .lagda.rst , .lagda.tex |
웹사이트 | wiki |
영향을 받은 언어 | |
Coq, Epigram, Haskell | |
영향을 준 언어 | |
Idris |
Agda는 Chalmers University of Technology의 Ulf Norell의 박사 논문을 구현한 타입 종속적 함수형 프로그래밍 언어다.[2] 원래 Agda 시스템은 Catarina Coquand가 1999년 Chalmers에서 개발했다.[3] 원래 Agda 2로 알려진 현재 버전은 전체를 다시 작성했으며, 규칙과 이름을 공유하는 새로운 언어로 간주된다.
Agda는 커리-하워드 대응 패러다임에 기반한 증명 보조자(proof asistant)이며, Coq 와 달리 별도의 전술 언어가 아니고 증명은 함수형 프로그래밍 체계로 작성된다. 일반적인 프로그래밍 언어처럼 자료형, 패턴 매칭, 레코드, let 표현식 및 모듈, 하스켈 유사 구문이 있다. Emacs와 Atom에서 작동하는 인터페이스가 있고[4][5] 터미널에서 배치 모드로 실행할 수 있다.
Agda는 Zhaohui Luo의 unified theory of dependent types (UTT),[6] Martin-Löf 타입 이론 과 유사한 타입 이론을 기반으로 한다.
Agda에서는 주로 독립 자료형 프로그래밍 언어의 대수적 자료형과 유사한 유도 자료형(Inductive types)을 이용하여 자료형을 정의한다.