ABSTRACT
Idris (http://idris-lang.org/) is a general purpose pure functional programming language with dependent types. Its syntax is influenced by Haskell and its features include full dependent types and records, type classes, tactic based theorem proving, totality checking and an optimising compiler with a foreign function interface.
One of the goals of the Idris project is to bring type-based program verification techniques to functional programmers while still supporting efficient systems programming via an optimising compiler and interaction with external libraries. In this talk I will introduce dependently typed programming using Idris, and demonstrate its features using several examples including an interpreter for the simply typed lambda calculus, and a verified binary adder. I will also show how the Idris compiler generates executable code, maintaining a phase distinction between compile-time and run-time terms.
Index Terms
- Idris: general purpose programming with dependent types
Recommendations
Elaborator reflection: extending Idris in Idris
ICFP 2016: Proceedings of the 21st ACM SIGPLAN International Conference on Functional ProgrammingMany programming languages and proof assistants are defined by elaboration from a high-level language with a great deal of implicit information to a highly explicit core language. In many advanced languages, these elaboration facilities contain powerful ...
IDRIS ---: systems programming meets full dependent types
PLPV '11: Proceedings of the 5th ACM workshop on Programming languages meets program verificationDependent types have emerged in recent years as a promising approach to ensuring program correctness. However, existing dependently typed languages such as Agda and Coq work at a very high level of abstraction, making it difficult to map verified ...
Idris: Implementing a Dependently Typed Programming Language
LFMTP '14: Proceedings of the 2014 International Workshop on Logical Frameworks and Meta-languages: Theory and PracticeIdris is a purely functional programming language with dependent types. As well as supporting theorem proving, Idris is intended to be a general purpose programming language. As such, it provides high-level concepts such as implicit syntax, type classes ...
Comments