|
ABSTRACT
We present an internal language with equivalent expressive power to Standard ML, and discuss its formalization in LF and the machine-checked verification of its type safety in Twelf. The internal language is intended to serve as the target of elaboration in an elaborative semantics for Standard ML in the style of Harper and Stone. Therefore, it includes all the programming mechanisms necessary to implement Standard ML, including translucent modules, abstraction, polymorphism, higher kinds, references, exceptions, recursive types, and recursive functions. Our successful formalization of the proof involved a careful interplay between the precise formulations of the various mechanisms, and required the invention of new representation and proof techniques of general interest.
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
|
H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. Elsevier, 1984.
|
| |
2
|
Karl Crary and Susmit Sarkar. Foundational certified code in a metalogical framework. In Nineteenth International Conference on Automated Deduction, Miami, Florida, 2003. Extended version published as CMU technical report CMU-CS-03-108.
|
 |
3
|
|
| |
4
|
|
| |
5
|
|
 |
6
|
Derek Dreyer , Karl Crary , Robert Harper, A type system for higher-order modules, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.236-249, January 15-17, 2003, New Orleans, Louisiana, USA
|
| |
7
|
Derek Dreyer, Robert Harper, Manuel M.T. Chakravarty, and Gabriele Keller. Modular type classes. Technical Report TR-2006-03, University of Chicago, April 2006.
|
| |
8
|
Sophia Drossopoulou and Susan Eisenbach. Towards an operational semantics and proof of type soundness for Java. In Formal Syntax and Semantics of Java. Springer-Verlag, March 1998.
|
| |
9
|
Sophia Drossopoulou, Tanya Valkevych, and Susan Eisenbach. Java type soundness revisited, September 2000 Technical report, Imperial College London.
|
| |
10
|
|
| |
11
|
|
 |
12
|
|
| |
13
|
Robert Harper and Daniel R. Licata. Mechanizing language definitions. Submitted for publication, April 2006.
|
 |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
Gerwin Klein and Tobias Nipkow. A machine-checked model for a Java-like language, virtual machine and compiler. Technical Report 0400001T.1, National ICT Australia, Sydney, March 2004.
|
| |
18
|
Daniel K. Lee, Karl Crary, and Robert Harper. Mechanizing the metatheory of Standard ML. Technical Report CMU-CS-06-138, Carnegie Mellon University, School of Computer Science, 2006.
|
 |
19
|
Xavier Leroy, Manifest types, modules, and separate compilation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.109-122, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.176926]
|
 |
20
|
|
| |
21
|
|
 |
22
|
Greg Morrisett , Matthias Felleisen , Robert Harper, Abstract models of memory management, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.66-77, June 26-28, 1995, La Jolla, California, United States
[doi> 10.1145/224164.224182]
|
| |
23
|
|
| |
24
|
|
| |
25
|
Leaf Petersen, Perry Cheng, Robert Harper, and Chris Stone. Implementing the TILT internal language. Technical Report CMU-CS-00-180, Carnegie Mellon University, School of Computer Science, December 2000.
|
| |
26
|
Frank Pfenning. Computation and deduction. Lecture notes, available electronically at http://www.cs.cmu.edu/char"7Etwelf.
|
| |
27
|
Frank Pfenning and Carsten Schürmann. Twelf User's Guide, Version 1.4, 2002. Available electronically at http://www.cs.cmu.edu/char"7Etwelf.
|
| |
28
|
Brigitte Pientka and Frank Pfenning. Termination and reduction checking in the logical framework. In Workshop of Automation of Proofs by Mathematical Induction, June 2000.
|
| |
29
|
|
| |
30
|
|
| |
31
|
Gordon D. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN-19, University of Aarhus, 1981.
|
| |
32
|
John C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van Vliet, editors, Proceedings of the International Symposium on Algorithmic Languages, pages 345--372, Amsterdam, October 1981. North-Holland.
|
| |
33
|
Jeffrey Sarnat and Carsten Schürmann. A proof-theoretic account of logical relations. Submitted for publication, 2006.
|
| |
34
|
|
| |
35
|
Christopher A. Stone , Robert Harper, Extensional equivalence and singleton types, ACM Transactions on Computational Logic (TOCL), v.7 n.4, p.676-722, October 2006
|
| |
36
|
|
 |
37
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
38
|
|
| |
39
|
|
| |
40
|
Kevin Watkins, Iliano Cervesato, Frank Pfenning, and David Walker. A concurrent logical framework: The propositional fragment. In S. Berardi, M. Coppo, and F. Damiani, editors, Types for Proofs and Programs, volume 3085 of Lecture Notes in Computer Science, pages 355--377. Springer-Verlag, 2004. Papers from the Third International Workshop on Types for Proofs and Programs, April 2003, Torino, Italy.
|
CITED BY 13
|
|
PETER SEWELL , JAMES J. LEIFER , KEITH WANSBROUGH , FRANCESCO ZAPPA NARDELLI , MAIR ALLEN-WILLIAMS , PIERRE HABOUZIT , VIKTOR VAFEIADIS, Acute: High-level programming language design for distributed computation, Journal of Functional Programming, v.17 n.4-5, p.547-612, July 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aaron Stump , Morgan Deters , Adam Petcher , Todd Schiller , Timothy Simpson, Verified programming in Guru, Proceedings of the 3rd workshop on Programming languages meets program verification, January 20-20, 2009, Savannah, GA, USA
|
|
|
Peter Sewell , Francesco Zappa Nardelli , Scott Owens , Gilles Peskine , Thomas Ridge , Susmit Sarkar , Rok Strniša, Ott: effective tool support for the working semanticist, ACM SIGPLAN Notices, v.42 n.9, September 2007
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|