Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1481861.1481862acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
invited-talk

Dependently typed programming in Agda

Published: 24 January 2009 Publication History

Abstract

Dependently typed languages have for a long time been used to describe proofs about programs. Traditionally, dependent types are used mostly for stating and proving the properties of the programs and not in defining the programs themselves. An impressive example is the certified compiler by Leroy (2006) implemented and proved correct in Coq (Bertot and Castéran 2004).
Recently there has been an increased interest in dependently typed programming, where the aim is to write programs that use the dependent type system to a much higher degree. In this way a lot of the properties that were previously proved separately can be integrated in the type of the program, in many cases adding little or no complexity to the definition of the program. New languages, such as Epigram (McBride and McKinna 2004), are being designed, and existing languages are being extended with new features to accomodate these ideas, for instance the work on dependently typed programming in Coq by Sozeau (2007).
This talk gives an overview of the Agda programming language (Norell 2007), whose main focus is on dependently typed programming. Agda provides a rich set of inductive types with a powerful mechanism for pattern matching, allowing dependently typed programs to be written with minimal fuss. To read about programming in Agda, see the lecture notes from the Advanced Functional Programming summer school (Norell 2008) and the work by Oury and Swierstra (2008).
In the talk a number of examples of interesting dependently typed programs chosen from the domain of programming language implementation are presented as they are implemented in Agda.

References

[1]
Yves Bertot and Pierre Castéran. Interactive Theorem Proving and Program Development. Coq'Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. Springer Verlag, 2004.
[2]
Xavier Leroy. Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In 33rd symposium Principles of Programming Languages, pages 42--54. ACM Press, 2006.
[3]
C. McBride and J. McKinna. The view from the left. Journal of Functional Programming, 14 (1): 69--111, January 2004.
[4]
Ulf Norell. Dependently typed programming in Agda. In Lecture notes on Advanced Functional Programming, 2008. To appear.
[5]
Ulf Norell. Towards a practical programming language based on dependent type theory. PhD thesis, Department of Computer Science and Engineering, Chalmers University of Technology, SE-412 96 Göteborg, Sweden, September 2007.
[6]
Nicolas Oury and Wouter Swierstra. The Power of Pi. In ICFP'08: Proceedings of the 2008 SIGPLAN Internation Conference on Functional Programming, 2008.
[7]
Matthieu Sozeau. Programing Finger Trees in Coq. In ICFP'07: Proceedings of the 2007 ACM SIGPLAN International Conference on Functional Programming, pages 13--24. ACM Press, 2007.

Cited By

View all
  • (2025)On the Erdős–Tuza–Valtr conjectureEuropean Journal of Combinatorics10.1016/j.ejc.2024.104085124(104085)Online publication date: Feb-2025
  • (2024)WebPie: A Tiny Slice of Dependent TypingElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.400.2400(2-27)Online publication date: 6-Apr-2024
  • (2024)Containers for GUI ModelsCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660830(3-5)Online publication date: 11-Mar-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
TLDI '09: Proceedings of the 4th international workshop on Types in language design and implementation
January 2009
122 pages
ISBN:9781605584201
DOI:10.1145/1481861
  • General Chair:
  • Andrew Kennedy,
  • Program Chair:
  • Amal Ahmed
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 January 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dependent types
  2. programming

Qualifiers

  • Invited-talk

Conference

POPL09
Sponsor:

Acceptance Rates

Overall Acceptance Rate 11 of 26 submissions, 42%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)24
  • Downloads (Last 6 weeks)3
Reflects downloads up to 12 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)On the Erdős–Tuza–Valtr conjectureEuropean Journal of Combinatorics10.1016/j.ejc.2024.104085124(104085)Online publication date: Feb-2025
  • (2024)WebPie: A Tiny Slice of Dependent TypingElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.400.2400(2-27)Online publication date: 6-Apr-2024
  • (2024)Containers for GUI ModelsCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660830(3-5)Online publication date: 11-Mar-2024
  • (2024)Hashing Modulo Context-Sensitive 𝛼-EquivalenceProceedings of the ACM on Programming Languages10.1145/36564598:PLDI(2027-2050)Online publication date: 20-Jun-2024
  • (2024)Strictly Monotone Brouwer Trees for Well Founded Recursion over Multiple ArgumentsProceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3636501.3636948(205-217)Online publication date: 9-Jan-2024
  • (2024)Formally Verified Convergence of Policy-Rich DBF Routing ProtocolsIEEE/ACM Transactions on Networking10.1109/TNET.2023.332633632:2(1645-1660)Online publication date: Apr-2024
  • (2024)Maude2Lean: Theorem proving for Maude specifications using LeanJournal of Logical and Algebraic Methods in Programming10.1016/j.jlamp.2024.101005(101005)Online publication date: Aug-2024
  • (2023)Extensible Embedded Hardware Description Languages with Compilation, Simulation and VerificationProceedings of the 13th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies10.1145/3597031.3597051(1-10)Online publication date: 14-Jun-2023
  • (2023)Merging Inductive RelationsProceedings of the ACM on Programming Languages10.1145/35912927:PLDI(1759-1778)Online publication date: 6-Jun-2023
  • (2023)Towards a Certified Proof Checker for Deep Neural Network VerificationLogic-Based Program Synthesis and Transformation10.1007/978-3-031-45784-5_13(198-209)Online publication date: 16-Oct-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media