|
ABSTRACT
This paper exhibits the power of programming with dependent types by dint of embedding three domain-specific languages: Cryptol, a language for cryptographic protocols; a small data description language; and relational algebra. Each example demonstrates particular design patterns inherent to dependently-typed programming. Documenting these techniques paves the way for further research in domain-specific embedded type systems.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Lennart Augustsson and Magnus Carlsson. An exercise in dependent types: a well-typed interpreter. Unpublished manuscript.
|
| |
2
|
|
 |
3
|
Per Bjesse , Koen Claessen , Mary Sheeran , Satnam Singh, Lava: hardware design in Haskell, Proceedings of the third ACM SIGPLAN international conference on Functional programming, p.174-184, September 26-29, 1998, Baltimore, Maryland, United States
|
 |
4
|
Björn Bringert , Anders Höckersten , Conny Andersson , Martin Andersson , Mary Bergman , Victor Blomqvist , Torbjörn Martin, Student paper: HaskellDB improved, Proceedings of the 2004 ACM SIGPLAN workshop on Haskell, p.108-115, September 22-22, 2004, Snowbird, Utah, USA
[doi> 10.1145/1017472.1017473]
|
 |
5
|
|
 |
6
|
|
 |
7
|
|
 |
8
|
Kathleen Fisher , Yitzhak Mandelbaum , David Walker, The next 700 data description languages, Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.2-15, January 11-13, 2006, Charleston, South Carolina, USA
|
 |
9
|
|
| |
10
|
Galois, Inc. Cryptol Reference Manual, 2002.
|
| |
11
|
Ralf Hinze and Johan Jeuring. Generic Haskell: Practice and theory. In Generic Programming, volume 2793 of Lecture Notes in Computer Science. Springer-Verlag, 2003.
|
| |
12
|
|
 |
13
|
|
 |
14
|
|
| |
15
|
Daan Leijen and Erik Meijer. Parsec: Direct style monadic parser combinators for the real world. Technical Report UU-CS-2001-27, Universiteit Utrecht, 2001.
|
| |
16
|
Conor McBride. Epigram: Practical programming with dependent types. In Advanced Functional Programming, volume 3622 of LNCS-Tutorial, pages 130--170. Springer-Verlag, 2004.
|
| |
17
|
|
 |
18
|
Peter J. McCann , Satish Chandra, Packet types: abstract specification of network protocol messages, Proceedings of the conference on Applications, Technologies, Architectures, and Protocols for Computer Communication, p.321-333, August 28-September 01, 2000, Stockholm, Sweden
|
| |
19
|
James McKinna and Joel Wright. A type-correct, stack-safe, provably correct expression compiler in Epigram. Accepted for publication in the Journal of Functional Programming.
|
| |
20
|
Peter Morris, Thorsten Altenkirch, and Conor McBride. Exploring the regular tree types. In Types for Proofs and Programs, volume 3839 of LNCS. Springer-Verlag, 2004.
|
 |
21
|
Henrik Nilsson , Antony Courtney , John Peterson, Functional reactive programming, continued, Proceedings of the 2002 ACM SIGPLAN workshop on Haskell, p.51-64, October 03, 2002, Pittsburgh, Pennsylvania
[doi> 10.1145/581690.581695]
|
| |
22
|
Bengt Nordström, Kent Petersson, and Jan M. Smith. Programming in Martin-Löf's Type Theory. Oxford University Press, 1990.
|
| |
23
|
Ulf Norell. Towards a practical programming language based on dependent type theory. D thesis, Chalmers University of Technology, 2007.
|
| |
24
|
Simon Peyton Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003.
|
 |
25
|
|
 |
26
|
Simon Peyton Jones , Dimitrios Vytiniotis , Stephanie Weirich , Geoffrey Washburn, Simple unification-based type inference for GADTs, Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming, September 16-21, 2006, Portland, Oregon, USA
|
 |
27
|
|
| |
28
|
Matthieu Sozeau. Subset coercions in Coq. In Types for Proofs and Programs, volume 4502 of LNCS. Springer-Verlag, 2007.
|
| |
29
|
|
| |
30
|
Wouter Swierstra and Thorsten Altenkirch. Dependent types for distributed arrays. In Proceedings of the Ninth Symposium on Trends in Functional Programming, 2008.
|
| |
31
|
The Agda Team. Agda homepage. http://www.cs.chalmers.se/~ulfn/Agda, 2008.
|
| |
32
|
Peter Thiemann. Server-side web programming in WASH. In Advanced Functional Programming, volume 3622 of LNCS-Tutorial. Springer-Verlag, 2004.
|
 |
33
|
|
|