|
ABSTRACT
Cayenne is a Haskell-like language. The main difference between Haskell and Cayenne is that Cayenne has dependent types, i.e., the result type of a function may depend on the argument value, and types of record components (which can be types or values) may depend on other components. Cayenne also combines the syntactic categories for value expressions and type expressions; thus reducing the number of language concepts.Having dependent types and combined type and value expressions makes the language very powerful. It is powerful enough that a special module concept is unnecessary; ordinary records suffice. It is also powerful enough to encode predicate logic at the type level, allowing types to be used as specifications of programs. However, this power comes at a cost: type checking of Cayenne is undecidable. While this may appear to be a steep price to pay, it seems to work well in practice.
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.
| |
ACN90
|
L. Augustsson, T. Coquand, and B. NordstrSm. A short description of Another Logical Framework. In Proceedings of the First Workshop on Logical Frameworks, Antibes, pages 39-42, 1990.
|
| |
AJ89
|
|
 |
Aug93
|
|
| |
BDD89
|
H. Boehm, A. Demers, and J. Donahue. A Programmer's Introduction to Russell. Technical report, Cornell University, 1989.
|
| |
Bet98
|
Gustavo Betarte. Dependent Record Types and Algebraic Structures in Type Theory. PhD thesis, Department of Computing Science, University of GSteborg, GSteborg, Sweden, February 1998.
|
| |
Car88
|
Luca Gardelli. Phase Distinction in Type Theory. Research report, DEC SRC, 1988.
|
| |
Car94
|
Luca Cardelli. The Quest Language and System. Research report, DEC SRC, 1994.
|
| |
CH86
|
Thierry Coquand and G~rard Huet. The Calculus of Constructions. Technical Report 530, INRIA, Centre de Rocquencourt, 1986.
|
| |
CH88
|
|
| |
Con86
|
R. L. Constable , S. F. Allen , H. M. Bromley , W. R. Cleaveland , J. F. Cremer , R. W. Harper , D. J. Howe , T. B. Knoblock , N. P. Mendler , P. Panangaden , J. T. Sasaki , S. F. Smith, Implementing mathematics with the Nuprl proof development system, Prentice-Hall, Inc., Upper Saddle River, NJ, 1986
|
| |
Dan98
|
Olivier Danvy. Formatting Strings in ML. Technical Report RS-98-5, BRICS, Department of Computer SCience, University of Aarhus, Denmark, March 1998.
|
| |
Fra91
|
|
 |
HHP93
|
|
| |
How80
|
W.A. Howard. Tile formulae-as-types notion of construction. In J. P. Seldin and J. R. Hindley, editors, To H.B. Curry: Essays on Uombinatory Logic, Lambda Calculus and Formalism, pages 479-490. Academic Press, London, 1980.
|
 |
Hud92
|
Paul Hudak , Simon Peyton Jones , Philip Wadler , Brian Boutel , Jon Fairbairn , Joseph Fasel , María M. Guzmán , Kevin Hammond , John Hughes , Thomas Johnsson , Dick Kieburtz , Rishiyur Nikhil , Will Partain , John Peterson, Report on the programming language Haskell: a non-strict, purely functional language version 1.2, ACM SIGPLAN Notices, v.27 n.5, p.1-164, May 1992
[doi> 10.1145/130697.130699]
|
| |
Jon94
|
Mark P. Jones. The implementation of the Gofer filnctional programming system. Technical Report YALEU/DCS/RR-1030, Department of Computer Science, Yale University, New Haven, Connecticut, USA, May 1994, May 94.
|
| |
Lil97
|
Mark Lillibridge. Translucent Sums: A Foundation for Higher-Order Module Systems. PhD thesis, School of Computer Science, Carnegie Mellon University, May 1997. CM U-CS-97-122.
|
| |
LP92
|
Z. Luo and R. Pollack. LEGO Proof Development System: User's Manual. Technical report, LFCS Technical Report ECS-LFCS-92- 211, 1992.
|
| |
MN94
|
|
| |
Mor95
|
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
|
| |
MTH90
|
|
| |
Nor93
|
Bengt NordstrSm. The ALF proof editor. In Proceedings 1993 Informal Proceedings of the Nijmegen workhop on Types for Proofs and Programs, 1993.
|
| |
NPS90
|
|
| |
Pfe89
|
|
 |
PJ93
|
|
| |
Pol94
|
Robert Pollack. The Theory of Lego A Proof Checker for the Extended Calculus of Constructions. PhD thesis, University of Edinburgh, 1994.
|
| |
TMC+96
|
David Tarditi, Greg Morrisett, Pery Cheng, Chris Stone, Robert Harper, and Peter Lee. TIL: A Type-directed Optimizing Compiler for ML. Technical Report CMU-CS-96-108, School of Computer Science, Carnegie Mellon University, February 1996.
|
CITED BY 55
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gary T. Leavens , Jean-Raymond Abrial , Don Batory , Michael Butler , Alessandro Coglio , Kathi Fisler , Eric Hehner , Cliff Jones , Dale Miller , Simon Peyton-Jones , Murali Sitaraman , Douglas R. Smith , Aaron Stump, Roadmap for enhanced languages and methods to aid verification, Proceedings of the 5th international conference on Generative programming and component engineering, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paul Hudak , John Hughes , Simon Peyton Jones , Philip Wadler, A history of Haskell: being lazy with class, Proceedings of the third ACM SIGPLAN conference on History of programming languages, p.12-1-12-55, June 09-10, 2007, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Limin Jia , Jeffrey A. Vaughan , Karl Mazurak , Jianzhou Zhao , Luke Zarko , Joseph Schorr , Steve Zdancewic, AURA: a programming language for authorization and audit, ACM SIGPLAN Notices, v.43 n.9, September 2008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|