@inproceedings{sheard-langfuture, author = {Tim Sheard}, title = "Languages of the future", booktitle = "ACM Conference on Object Orientated Programming Systems, Languages and Applicatioons (OOPSLA'04)", year = "2004" } @inproceedings{ivor, author = {Edwin Brady}, title = {{Ivor}, a proof engine}, year = {2007}, publisher = {Springer}, series = {LNCS}, booktitle = {Implementation and Application of Functional Languages 2006}, note = {To appear} } @misc{coq-in-coq, author = {Bruno Barras and Benjamin Werner}, year = 1997, title = {{Coq} in {Coq}} } @article{hudak-edsl, author = {Paul Hudak}, title = {Building Domain-Specific Embedded Languages}, year = {1996}, month = {December}, journal = {ACM Computing Surveys}, volume = {28A}, number = {4} } @inproceedings{concon, author = {Conor McBride and Healfdene Goguen and James McKinna}, title = {Some Constructions On Constructors}, year = 2005, booktitle = {TYPES 2004}, publisher = {Springer}, series = {LNCS}, volume = {3839} } @InProceedings{Hume-GPCE, author = {K. Hammond and G.J. Michaelson}, title = {{Hume: a Domain-Specific Language for Real-Time Embedded Systems}}, booktitle = {{Proc. Conf. Generative Programming and Component Engineering (GPCE~'03)}}, publisher = {Springer-Verlag}, series = {Lecture Notes in Computer Science}, year = {2003}, } @inproceedings{lcf-milner, author = {Robin Milner}, title = {{LCF}: A Way of Doing Proofs with a Machine}, booktitle = {Mathematical Foundations of Computer Science 1978}, pages = {146-159}, year = 1979, series = {LNCS}, volume = {64} } @inproceedings{epireloaded, title = {Epigram Reloaded: A Standalone Typechecker for {ETT}}, author = {James Chapman and Thorsten Altenkirch and Conor McBride}, year = 2006, booktitle = {Trends in Functional Programming 2005}, note = {To appear} } @TECHREPORT{why-tool, AUTHOR = {J.-C. Filli\^atre}, TITLE = {{Why: a multi-language multi-prover verification tool}}, INSTITUTION = {{LRI, Universit\'e Paris Sud}}, TYPE = {{Research Report}}, NUMBER = {1366}, MONTH = {March}, YEAR = 2003, URL = {http://www.lri.fr/~filliatr/ftp/publis/why-tool.ps.gz} } @misc{ large-extraction, author = "Lu\'iz Cruz-Filipe and Bas Spitters", title = "Program Extraction from Large Proof Developments", year = 2003, url = "citeseer.ist.psu.edu/cruz-filipe03program.html" } @inproceedings{ fta, author = "Herman Geuvers and Freek Wiedijk and Jan Zwanenburg", title = "A Constructive Proof of the Fundamental Theorem of Algebra without Using the Rationals", booktitle = "{TYPES 2000}", pages = "96--111", year = "2000", url = "citeseer.ist.psu.edu/geuvers01constructive.html" } @article{mckinna-expr, title = {A type-correct, stack-safe, provably correct, expression compiler in {Epigram}}, author = {James McKinna and Joel Wright}, year = 2007, journal = {Journal of Functional Programming}, note = {To appear} } @article{pugh-omega, title = "The {Omega} {Test}: a fast and practical integer programming algorithm for dependence analysis", author = "William Pugh", journal = "Communication of the ACM", year = 1992, pages = {102--114} } @misc{four-colour, author = "Georges Gonthier", title = "A computer-checked proof of the {Four Colour Theorem}", year = 2005, howpublished = {\url{http://research.microsoft.com/~gonthier/4colproof.pdf}}} @inproceedings{sparkle, author = "Maarten {de Mol} and Marko {van Eekelen} and Rinus Plasmeijer", title = "Theorem Proving for Functional Programmers", url = "citeseer.ist.psu.edu/654423.html", BOOKTITLE = {Proc. Implementation of Functional Languages (IFL 2002)}, publisher = {Springer}, series = {LNCS}, volume = {2312}, year = 2002 } @misc{agda, title = {Agda}, author = {Catarina Coquand}, howpublished= {\url{http://agda.sourceforge.net/}}, year = 2005 } @misc{cover, title = {Cover Translator}, howpublished = {\url{http://coverproject.org/CoverTranslator/}} } @misc{parsec, title = {Parsec, a fast combinator parser}, author = {Daan Leijen}, year = {2001}, howpublished = {\url{http://www.cs.uu.nl/~daan/parsec.html}} } @inproceedings{dtpmsp-gpce, author = {Edwin Brady and Kevin Hammond}, title = {A Verified Staged Interpreter is a Verified Compiler}, booktitle = {{Proc. Conf. Generative Programming and Component Engineering (GPCE~'06)}}, year = 2006 } @misc{haddock, title = {Haddock: A {Haskell} Documentation Tool}, howpublished = {\url{http://www.haskell.org/haddock/}} } @inproceedings{offshoring, title = {Implicitly Heterogeneous Multi-Stage Programming}, author = {Jason Eckhardt and Roumen Kaibachev and Emir Pa\v{s}al\'{i}c and Kedar Swadi and Walid Taha}, booktitle = {Proc. 2005 Conf. on Generative Programming and Component Engineering (GPCE 2005)}, publisher = {Springer}, series = {LNCS}, volume = {3676}, year = 2005 } @misc{alti-partial, title = {Stop thinking about bottoms when writing programs}, author = {Thorsten Altenkirch}, year = 2006, note = {Talk at BCTCS 2006} } @misc{tarmo-partial, title = {Partiality is an Effect}, author = {Tarmo Uustalu}, year = 2004, note = {Talk at Dagstuhl workshop on Dependently Typed Progamming} } @inproceedings{McKinnaPOPL06, author = {James McKinna}, title = {Why dependent types matter}, booktitle = {Proc. ACM Symp. on Principles of Programming Languages (POPL 2006)}, year = {2006}, issn = {0362-1340}, pages = {1--1}, doi = {http://doi.acm.org/10.1145/1111320.1111038}, } @inproceedings{leroy-compiler, title = {Formal Certification of a Compiler Back-end}, author = {Xavier Leroy}, year = 2006, booktitle = {Principles of Programming Languages 2006}, pages = {42--54}, publisher = {ACM Press} } @inproceedings{hutton-exceptions, title = {Compiling Exceptions Correctly}, year = 2004, author = {Graham Hutton and Joel Wright}, booktitle = {Mathematics of Program Construction}, publisher = {Springer}, series = {LNCS}, volume = {3125} } @inproceedings{tagless-staged, title = {Tagless Staged Interpreters for Typed Languages}, year = {2002}, booktitle = {Proc. 2002 International Conf. on Functional Programming (ICFP 2002)}, author = {Emir Pa\v{s}al\'{i}c and Walid Taha and Tim Sheard}, publisher = {ACM} } @inproceedings{env-classifiers, title = {Environment Classifiers}, year = 2003, author = {Walid Taha}, booktitle = {Proc. ACM Symp. on Principles of Programming Languages (POPL 2003)}, pages = {26--37}, } @inproceedings{dsl-msp, title = {{DSL} Implementation in {MetaOCaml}, {Template Haskell}, {and C++}}, booktitle = {Domain Specific Program Genearation 2004}, author = {Krzysztof Czarnecki and John O'Donnell and J\"{o}rg Striegnitz and Walid Taha}, publisher = {Springer}, series = {LNCS}, volume = {3016}, year = 2004 } @misc{ gadt-extk, author = {Tim Sheard and James Hook and Nathan Linger}, title = {{GADTs} + Extensible Kinds = Dependent Programming}, year = 2005, misc = {Submitted to ICFP '05} } @INPROCEEDINGS{dt-framework, TITLE = {A Dependently Typed Framework for Static Analysis of Program Execution Costs}, YEAR = {2006}, BOOKTITLE = {Proc. Implementation of Functional Languages (IFL 2005)}, AUTHOR = {Edwin Brady and Kevin Hammond}, VOLUME = {4015}, SERIES = {LNCS}, PAGES = {74--90}, PUBLISHER = {Springer} } @INPROCEEDINGS{step-counting, TITLE = {Accurate Step Counting}, YEAR = {2006}, BOOKTITLE = {Proc. Implementation of Functional Languages (IFL 2005)}, AUTHOR = {Catherine Hope and Graham Hutton}, PUBLISHER = {Springer} } @misc{multi-taha, author = {Walid Taha}, title = {A Gentle Introduction to Multi-stage Programming}, year = {2003}, note = {Available from \url{http://www.cs.rice.edu/~taha/publications/journal/dspg04a.pdf}} } @misc{mckinnabrady-phase, title = {Phase Distinctions in the Compilation of {Epigram}}, year = 2005, author = {James McKinna and Edwin Brady}, note = {Draft} } @phdthesis{ brady-thesis, author = {Edwin Brady}, title = {Practical Implementation of a Dependently Typed Functional Programming Language}, year = 2005, school = {University of Durham} } @phdthesis{ taha-thesis, author = {Walid Taha}, title = {Multi-stage Programming: Its Theory and Applications}, year = 1999, school = {Oregon Graduate Inst. of Science and Technology} } @phdthesis{ pasalic-thesis, author = {Emir Pa\v{s}al\'{i}c}, title = {The Role of Type-Equality in Meta-programming}, year = 2004, school = {OGI School of Science and Engineering} } @misc{ydtm, author = {Thorsten Altenkirch and Conor McBride and James McKinna}, title = {Why Dependent Types Matter}, note = {Draft}, year = 2005} @inproceedings { wadler-listless, author = {Philip Wadler}, title = {Listlessness is better than laziness: {Lazy} evaluation and garbage collection at compile-time}, booktitle = {Proceedings of the 1984 ACM Symposium on LISP and functional programming}, year = 1984, pages = {45--52} } @techreport { gofer-impl, author = {Mark P. Jones}, title = {The implementation of the Gofer functional programming system}, month = {May}, year = {1994}, number = {YALEU/DCS/RR-1030}, institution = {Yale University} } @techreport { pm-opt1, author = {Kevin Scott and Norman Ramsey}, title = {When do match-compilation heuristics matter?}, month = {May}, year = {2000}, number = {CS-2000-13}, institution = {Department of Computer Science, University of Virginia} } @inproceedings{ pm-opt2, author = "Fabrice Le Fessant and Luc Maranget", title = "Optimizing Pattern Matching", booktitle = "International Conference on Functional Programming", pages = "26-37", year = "2001", url = "citeseer.ist.psu.edu/lefessant01optimizing.html" } @incollection{con-engine, author = {G\'{e}rard Huet}, title = {The constructive engine}, booktitle = {A Perspective in Theoreticak Computer Science}, publisher = {World Scientific Publishing}, year = {1989}, editor = {R. Narasimhan}, note = {Commemorative Volume for Gift Siromoney}, pages = {38--69} } @inproceedings{gadts, title = {Simple unification-based type inference for {GADTs}}, author = {Simon {Peyton Jones} and Dimitrios Vytiniotis and Stephanie Weirich and Geoffrey Washburn}, year = {2006}, booktitle = {Proc. 2006 International Conf. on Functional Programming (ICFP 2006)} } @misc{wobbly, author = {Simon {Peyton Jones} and Geoffrey Washburn and Stephanie Weirich}, title = {Wobbly types: type inference for generalised algebraic data types}, year = {2004}, note = {Submitted to POPL 2005} } @misc{epigram-afp, author = {Conor McBride}, title = {Epigram: Practical Programming with Dependent Types}, year = {2004}, howpublished = {Lecture Notes, International Summer School on Advanced Functional Programming} } @book{ml85, author = {Per Martin-L\"{o}f}, title = "Intuitionistic Type Theory", year = "1985", publisher = "Bibliopolis" } @article{modular-fulllazy, title = {A Modular Fully Lazy Lambda Lifter in {Haskell}}, author = {Simon {Peyton Jones} and David Lester}, year = {1991}, month = {May}, journal = {Software Practice and Experience}, volume = {21}, number = {5}, pages = {479--506} } @article{ghani-jay95, author = {Barry Jay and Neil Ghani}, title = {The Virtues of Eta-Expansion}, journal = {Journal of Functional Programming}, year = {1995}, volume = {5}, number = {2}, pages = {135-154}, } @misc{nkpat, author = {Lennart Augustsson}, title = {n+k patterns}, year = {1993}, howpublished = {Message to the haskell mailing list, Mon, 17 May 93} } @article{ danvy98functional, author = "Olivier Danvy", title = "Functional Unparsing", journal = "Journal of Functional Programming", volume = "8", number = "6", pages = "621-625", year = "1998", url = "citeseer.ist.psu.edu/danvy98functional.html" } @inproceedings{SeveriPoll94, author = {Paula Severi and Erik Poll}, booktitle = {Logical Foundations of Computing Science, LFCS'94}, editor = {A. Nerode and Yu. V. Matiyasevich}, number = {813}, pages = {316--328}, publisher = {Springer}, series = {LNCS}, title = {{P}ure {T}ype {S}ystems with {D}efinitions}, year = {1994} } @inproceedings{coinductive, title = {An Application of Co-Inductive Types in Coq: Verification of the Alternating Bit Protocol}, booktitle = {Proceedings of the 1995 Workshop on Types for Proofs and Programs}, series = {LNCS}, year = {1995}, volume = {1158}, pages = {135-152}, publisher = {Springer-Verlag}, author = {Eduardo Gim\'{e}nez} } @book{erlang, author = "Joe Armstrong and Robert Virding and Claes Wikstr{\"o}m and Mike Williams", title = "Concurrent Programming in Erlang", edition = "Second", publisher = "Prentice-Hall", year = "1996", url = "citeseer.ist.psu.edu/armstrong93concurrent.html" } @PhdThesis{alti:phd93, author = "Thorsten Altenkirch", title = "Constructions, Inductive Types and Strong Normalization", school = "University of Edinburgh", year = "1993", month = "November", } @inproceedings{coq-modules, author = "Jacek Chrzaszcz", title = "Modules in {Coq} Are and Will Be Correct", year = {2004}, booktitle = {Types for Proofs and Programs 2003}, editor = {Stefano Berardi and Mario Coppo and Ferruccio Damiani}, publisher = {Springer}, volume = {3085} } @inproceedings{comp-polymorphism, author = "Robert Harper and Greg Morrisett", title = "Compiling Polymorphism Using Intensional Type Analysis", year = "1995", booktitle = "Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages", pages = "130 -- 141" } @misc{runtime-loader, author = "Andre Pang", title = "{GHC} Runtime Loading", year = "2004", howpublished = {Available from \verb+http://www.algorithm.com.au/wiki/hacking/haskell.ghc_runtime_loading+} } @article{mccarthy-lisp, author = "John McCarthy", title = "Recursive Functions of Symbolic Expressions and Their Computation By Machine", year = "1960", journal = "Communications of the ACM", volume = "3", number = "4", pages = "184--195" } @book{stl, author = " David R. Musser and Atul Saini and Gillmer J. Derge", title= "The {STL} Tutorial and Reference Guide: {C++} Programming with the Standard Template Library", year = "2001", publisher = "Addison Wesley" } @misc{ phase-distinction, author = "Luca Cardelli", title = "Phase Distinctions in Type Theory", howpublished = "Manuscript", year = "1988", url = "citeseer.ist.psu.edu/cardelli88phase.html" } @book {pierce-types, author = "Benjamin C. Pierce", title = "Type and Programming Languages", year = "2002", publisher = "MIT Press" } @article{ coqcc, Author = "Thierry Coquand and G\'{e}rard Huet", title = "The calculus of constructions", year = "1988", journal = "Information and Computation", volume = "76", pages = "95--120" } @article{ miller91jlc, Author = "Dale Miller", Title = "A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification", Journal = "Journal of Logic and Computation", Volume = "1", Number = "4", Pages = "497-536", Year = "1991", URL = "citeseer.ist.psu.edu/miller91logic.html", URL = "file://ftp.cis.upenn.edu/pub/papers/miller/jlc91.dvi.Z" } @article{miller-unity, author = "Dale Miller", title = "Unification Under a Mixed Prefix", journal = "Journal of Symbolic Computation", volume = "14", pages = "321--358", year = 1992 } @inproceedings{ cynthia, author = "Jon Whittle and Alan Bundy and Richard J. Boulton and Helen Lowe", title = "An {ML} Editor Based on Proofs-As-Programs", booktitle = "Automated Software Engineering", pages = "166-173", year = "1999", url = "citeseer.ist.psu.edu/whittle99ml.html" } @misc{ewd340, title={The Humble Programmer}, author={Edsger Dijkstra}, year={1972}, note={Turing Award Lecture, EWD 340} } @misc{fortran, title={Specifications for the {IBM} Mathematical FORmula TRANslating System, {FORTRAN}}, author={{IBM Applied Science Division}}, key={IBM}, year={1954}, month={November} } @inproceedings{quickcheck, title = {{QuickCheck}: A Lightweight Tool For Random Testing Of {Haskell} Programs}, author = {Koen Claessen and John Hughes}, year = {2000}, booktitle = {International Conference on Functional Programming} } @inproceedings{currylam, title = {Functionality in Combinatory Logic}, author = {Haskell Curry}, year = {1934}, booktitle = {Proc. Nat. Acad. Sci, USA}, volume = {20}, pages = {584--590} } @article{churchsimplelam1, title = {A set of postulates for the foundation of logic}, author = {Alonzo Church}, year = {1932}, journal = {Annals of Mathematics}, volume = {2}, number = {33}, pages = {346--366} } @article{churchsimplelam2, title = {A set of postulates for the foundation of logic}, author = {Alonzo Church}, year = {1933}, journal = {Annals of Mathematics}, volume = {2}, number = {34}, pages = {839--864} } @article{churchlam, title = {A Formulation of the Simple Theory of Types}, author = {Alonzo Church}, year = {1940}, journal = {Journal of Symbolic Logic}, volume = {5}, pages = {56--58} } @book{mitchell, title = {Concepts in Programming Languages}, author = {John C. Mitchell}, year = {2003}, publisher = {Cambridge University Press} } @inproceedings{harrison-hol99, title = {A Machine-Checked Theory of Floating Point Arithmetic}, year = {1999}, booktitle = {Theorem Proving in Higher Order Logics: 12th International Conference, TP}, pages = {113--130}, author = {John Harrison}, crossref = {hol99} } @inproceedings{c--, title = {C--: A portable assembly language}, year = {1997}, booktitle = {Workshop on Implementing Functional Languages, St Andrews}, author = {Simon {Peyton Jones} and Thomas Nordin and Dino Oliva}, crossref = {func-imp97} } @proceedings{func-imp97, title = {Workshop on Implementing Functional Languages, St Andrews}, year = {1997}, editor = {C Clack}, publisher = {Springer-Verlag} } @proceedings{hol99, volume = {1690}, title = {Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs'99}, year = {1999}, editor = {Yves Bertot and Gilles Dowek and Andr{\'e} Hirschowitz and Christine Paul}, publisher = {Springer-Verlag}, address = {Nice, France}, series = {LNCS} } @book{mathlogic, title = {Mathematical Logic and Programming Languages}, year = {1985}, editor = {C.A.R. Hoare and J.C. Shepherdson}, publisher = {Prentice-Hall} } @book{automath, title = {Selected Papers on Automath}, year = {1994}, editor = {S. Abramsky and J. Barwise and K. Fine and H.J. Keisler and A.S. Troelstr}, publisher = {North-Holland} } @misc{gimps, howpublished = {http://www.mersenne.org/prime.htm}, title = {Great Internet Mersenne Prime Search} } @misc{haskell-report, title = {Haskell 98 Language and Libraries --- The Revised Report}, year = {2002}, month = {December}, author = {Simon {Peyton Jones} and others}, howpublished = {Available from \verb+http://www.haskell.org/+} } @inproceedings{cayenne-icfp, author = "Lennart Augustsson", title = "Cayenne - a Language with Dependent Types", booktitle = "Proc. 1998 International Conf. on Functional Programming (ICFP '98)", pages = "239--250", year = "1998", url = "citeseer.nj.nec.com/augustsson98cayenne.html" } @misc{equality-cayenne, howpublished = {\verb+http://www.cs.chalmers.se/~augustss/cayenne/+}, title = {Equality Proofs in Cayenne}, year = {1999}, author = {Lennart Augustsson} } @misc{interp-cayenne, howpublished = {\url{http://www.cs.chalmers.se/~augustss/cayenne/}}, title = {An exercise in dependent types: A well-typed interpreter}, year = {1999}, author = {Lennart Augustsson and Magnus Carlsson} } @inproceedings{balaa00fixpoint, title = {Fix-Point Equations for Well-Founded Recursion in Type Theory}, year = {2000}, booktitle = {Theorem Proving in Higher Order Logics}, pages = {1-16}, author = {Antonia Balaa and Yves Bertot} } @inproceedings{isabelle-maple, title = {Theorems and algorithms: An interface between Isabelle and Maple}, year = {1995}, booktitle = {International Symposium on Symbolic and Algebraic Computation}, author = {Ballarin, C. and Homann, K., and Calmet, J.} } @book{barendregt-num, title = {The Lambda Calculus, Its Syntax and Semantics}, year = {1984}, publisher = {North-Holland}, author = {Henk Barendregt} } @book{beiler, title = {Recreations in the Theory of Numbers}, year = {1964}, publisher = {Dover}, author = {Albert H. Beiler} } @article{multidigit, journal = {Advances in Applied Mathematics}, title = {Multidigit Multiplication for Mathematicians}, year = {1998}, author = {Daniel J. Bernstein} } @article{buhler-fox, journal = {ACM Crossroads 2.1.}, month = {September}, title = {The Fox project: A language-structured approach to networking software.}, year = {1995}, author = {Buhler, J.}, note = {Available at http://www.acm.org/crossroads/xrds2-1/foxnet.html} } @techreport{burstall91, title = {Computer Assisted Proof for Mathematics: an Introduction Using the \textsc{Lego} Proof System}, year = {1991}, institution = {University of Edinburgh}, author = {Rod Burstall} } @article{plastic, title = {An Implementation of {LF} with Coercive Subtyping and Universes}, author = {Paul Callaghan and Zhaohui Luo}, journal = {Journal of Automated Reasoning}, volume = {27}, number = {1}, pages = {3--27}, year = {2001} } @article{coercive, title = {Coercive subtyping}, author = {Zhaohui Luo}, journal = {J. Logic Comput.}, volume = {9}, number = {1}, year = {1991}, pages = {105--130} } @inproceedings{calmet-homann, title = {Classification of communication and cooperation mechanisms for logical and symbolic computation systems}, year = {1996}, booktitle = {Proceedings of the First International Workshop 'Frontiers of Combining S}, pages = {133-146}, publisher = {Kluwer}, author = {J. Calmet and K. Homann} } @techreport{comm-proofs, title = {On Communicating Proofs in Interactive Mathematical Documents}, year = {2000}, institution = {Eindhoven University of Technology}, author = {Olga Caprotti and Martijn Oostdijk} } @article{prime2999, title = {How to formally and efficiently prove Prime(2999)}, year = {2001}, author = {Olga Caprotti and Martijn Oostdijk}, journal = {Symbolic Computation and Automated Reasoning}, pages = {114--125} } @book{church-num, title = {The Calculi of Lambda-Conversion}, year = {1941}, publisher = {Princeton University Press}, author = {Alonzo Church} } @book{nuprl86, title = {Implementing Mathematics with the NuPrl Proof Development System}, year = {1986}, publisher = {Prentice-Hall}, address = {NJ}, author = {Constable, Robert L. and others} } @book{conway, title = {On Numbers and Games}, year = {1976}, publisher = {Academic Press}, author = {J.H. Conway} } @misc{coq-manual, howpublished = {\verb+http://coq.inria.fr/+}, title = {The {Coq} Proof Assistant --- Reference Manual}, year = {2001}, author = {{Coq Development Team}} } @misc{tt-prog, month = {June}, title = {Type Theory and Programming}, year = {1994}, author = {Thierry Coquand and Bengt Nordstr\"{o}m and Jan M. Smith and Bj\"{o}rn von Sydow} } @book{func-appr, title = {The Functional Approach to Programming}, year = {1998}, publisher = {Cambridge University Press}, author = {Guy Cousineau and Michel Mauny} } @misc{ibmspec, howpublished = {http://www2.hursley.ibm.com/decimal/}, month = {January}, title = {Standard Decimal Arithmetic Specification}, year = {2001}, author = {Mike Cowlishaw}, note = {\copyright IBM Corporation 2001} } @book{dummett, title = {Elements of Intuitionism}, year = {2000}, edition = {2nd}, publisher = {Oxford: Clarendon}, author = {Michael A.E. Dummet} } @article{dybjer94, title = {Inductive Families}, year = {1994}, author = {Peter Dybjer}, journal = {Formal Aspects Of Computing}, volume = {6}, pages = {440--465} } @misc{octave, howpublished = {http://www.octave.org/}, month = {February}, title = {GNU Octave -- A high-level interactive language for numerical computations}, year = {1997}, author = {John W. Eaton} } @book{comp-methods, title = {Computing methods for scientists and engineers}, year = {1968}, publisher = {Oxford : Clarendon Press}, author = {L. Fox and D.F. Mayers} } @misc{guile, howpublished = {http://www.gnu.org/software/guile/guile.html}, title = {Guile -- Project GNU's extension language}, year = {2001}, author = {{Free Software Foundation}} } @article{need-dep, journal = {Journal of Functional Programming}, number = {4}, volume = {10}, title = {Do we need dependent types?}, year = {2000}, pages = {409-415}, author = {Daniel Fridlender and Mia Indrika} } @book{primes-programming, title = {Primes and Programming -- An Introduction to Number Theory with Computing}, year = {1993}, publisher = {Cambridge University Press}, author = {Peter Giblin} } @misc{rec-coq, month = {May}, title = {A Tutorial on Recursive Types in \textsc{Coq}}, year = {1998}, author = {Eduardo Gim\'{e}nez} } @article{goldberg91, journal = {ACM Computing Surveys}, number = {1}, volume = {23}, title = {What every computer scientist should know about floating point arithmetic}, year = {1991}, pages = {5-48}, author = {D. Goldberg} } @article{binary-lambda, journal = {Journal of Functional Programming}, number = {6}, volume = {10}, title = {An adequate and efficient left associated binary numeral system in the $\lambda$-calculus}, year = {2000}, author = {Mayer Goldberg} } @book{hol, title = {Introduction to HOL}, year = {1993}, publisher = {Cambridge University Press}, author = {M. Gordon and T. Melham} } @misc{gmp, howpublished = {Available from \verb+http://www.swox.com/gmp/manual/+}, title = {The {GNU Multiple Precision} Arithmetic Library 4.1.3 --- Manual}, year = {2004}, author = {Torbj\"{o}rn Granlund and others} } @article{harrison-fmsd94, journal = {Formal Methods in System Design}, volume = {5}, title = {Constructing the Real Numbers in {HOL}}, year = {1994}, pages = {35--59}, author = {John Harrison} } @book{harrison-thesis, title = {Theorem Proving with the Real Numbers}, year = {1998}, publisher = {Springer-Verlag}, author = {John Harrison} } @techreport{hol-maple, title = {Reasing about the Reals: the marriage of HOL and Maple}, year = {1993}, institution = {University of Cambridge Computer Laboratory}, author = {John Harrison and Laurent Th\'{e}ry} } @misc{coq-tutorial, howpublished = {http://pauillac.inria.fr/coq}, title = {The \textsc{Coq} Proof Assistant - A Tutorial}, author = {G\'{e}rard Huet and Gilles Kahn and Christine Paulin-Mohring} } @misc{restr-haskell, howpublished = {http://citeseer.nj.nec.com/253599.html}, month = {September}, title = {Restricted Data Types in Haskell}, year = {1999}, author = {John Hughes} } @misc{javadec, howpublished = {http://www2.hursley.ibm.com/decimalj/decimald.html}, month = {September}, title = {Decimal Arithmetic for Java -- a Proposal}, year = {2000}, author = {{IBM Corporation}} } @misc{ieee754, title = {IEEE Standard for Binary Floating Point Arithmetic}, year = {1985}, author = {{IEEE Standard 754}} } @misc{ieee854, title = {IEEE Standard for Radix-Independent Floating-Point Arithmetic}, year = {1987}, author = {{IEEE Standard 854}} } @inproceedings{jon91, title = {Completing the Rational and Metric Spaces in \textsc{Lego}}, year = {1991}, booktitle = {Proceedings of the Second Workshop on Logical Frameworks}, author = {Claire Jones} } @misc{ typinghaskell, author = "Mark Jones", title = "Typing {Haskell} in {Haskell}", howpublished = "In Haskell Workshop, September 1999.", year = "1999", url = "citeseer.ist.psu.edu/article/jones99typing.html" } @article{karatsuba, journal = {Soviet Physics-Doklady}, volume = {7}, title = {Multiplication of multidigit numbers by automata}, year = {1963}, pages = {595--596}, author = {A. Karatsuba and Y. Ofman} } @book{knuth2, volume = {2}, title = {The Art of Computer Programming - Seminumerical Algorithms}, year = {1969}, publisher = {Addison Wesley}, author = {Donald E. Knuth} } @article{next700, journal = {Communications of the ACM}, number = {3}, month = {March}, volume = {9}, title = {The next 700 programming languages}, year = {1966}, author = {P.J. Landin} } @techreport{luo-spec, month = {January}, title = {Program Specification and Data Refinement in Type Theory}, year = {1993}, institution = {Department of Computer Science, University of Edinburgh}, author = {Zhaohui Luo} } @phdthesis{luo90, school = {University of Edinburgh}, title = {An Extended Calculus Of Constructions}, year = {1990}, author = {Zhaohui Luo} } @techreport{lego-manual, title = {\textsc{Lego} Proof Development System: User's Manual}, year = {1992}, institution = {Department of Computer Science, University of Edinburgh}, author = {Zhaohui Luo and Robert Pollack} } @inproceedings{alf, title = {The {ALF} proof editor and its proof engine}, year = {1994}, booktitle = {Formal Proceeding of the 1993 Workshop on Types for Proofs and Programs}, author = {Lena Magnusson and Bengt N\"{o}rdstrom} } @misc{happy, howpublished = {http://www.haskell.org/happy/}, title = {Happy User Guide}, year = {2001}, author = {Simon Marlow and Andy Gill} } @inproceedings{generic-haskell, title = {Generic Haskell, Specifically}, author = {Dave Clarke and Andres L\"{o}h}, editor = {Jeremy Gibbons and Johan Jeuring}, booktitle = {Proceedings of the IFIP TC2 Working Conference on Generic Programming}, year = {2002}, publisher = {Kluwer Academic Publishers}, pages = {21--48} } @article{faking-it, title = {Faking It -- Simulating Dependent Types in {Haskell}}, year = {2002}, author = {Conor McBride}, journal = {Journal of Functional Programming}, volume = {12}, number = {4+5}, pages = {375--392} } @misc{mcbride-inverting, title = {Inverting Inductively Defined Relations in \textsc{Lego}}, year = {1996}, author = {Conor McBride} } @phdthesis{mcbride-thesis, month = {May}, school = {University of Edinburgh}, title = {Dependently Typed Functional Programs and their proofs}, year = {2000}, author = {Conor McBride} } @article{mcbride-unification, title = {First-Order Unification by Structural Recursion}, year = {2003}, author = {Conor McBride}, journal = {Journal of Functional Programming}, volume = {13}, number = {6}, pages = {1061--1075} } @misc{mckinna-pollack, howpublished = {Kluwer Academic Publishers}, title = {Some Lambda Calculus and Type Theory formalized}, year = {1998}, author = {James McKinna and Robert Pollack} } @book{num-theory, title = {An Introduction to the Theory of Numbers}, year = {1980}, publisher = {John Wiley and Sons}, author = {Ivan Niven and Herbert S. Zuckerman} } @book{prog-mltt, title = {Programming in Martin-L\"{o}f's Type Theory -- An Introduction}, year = {1990}, publisher = {Oxford University Press}, author = {Bengt Nordstr\"{o}m and Kent Petersson and Jan M. Smith}, note = {Out of print. Available from http://www.cs.chalmers.se/Cs/Research/Logic} } @book{okasaki, title = {Purely Functional Data Structures}, year = {1998}, publisher = {Cambridge University Press}, author = {Chris Okasaki} } @book{arith-systems, title = {Computer Arithmetic Systems}, year = {1994}, publisher = {Prentice-Hall}, author = {Amos R. Omondi} } @book{pj-imp, title = {The Implementation of Functional Programming Languages}, year = {1987}, publisher = {Prentice-Hall}, author = {Simon {Peyton Jones}} } @book{cp-bjc, title = {Computational Numerical Methods}, year = {1986}, publisher = {John Wiley and Sons}, author = {C. Phillips and B. Cornelius} } @book{nag, title = {The NAG Library: a beginner's guide}, year = {1986}, publisher = {Oxford : Clarendon Press}, author = {Jen Phillips} } @misc{believe, month = {September}, title = {How to Believe a Machine-Checked Proof}, year = {1996}, author = {Robert Pollack} } @phdthesis{pollack94, school = {University of Edinburgh}, title = {The Theory of LEGO -- A Proof Checker for the Extended Calculus of Constructions}, year = {1994}, author = {Robert Pollack} } @inproceedings{intel-bug, series = {LNCS}, volume = {915}, title = {Anatomy of the Pentium Bug}, publisher = {Springer-Verlag}, year = {1995}, pages = {97--107}, author = {V.R. Pratt} } @book{maple, title = {The Maple Handbook: Maple V Release 4}, year = {1996}, publisher = {Springer}, author = {Darren Redfern} } @book{crypto, title = {Applied Cryptography: protocols, algorithms and source code in C.}, year = {1996}, publisher = {Wiley}, author = {Bruce Schneier} } @article{adts, journal = {Mathematical Structures in Computer Science}, number = {2}, volume = {10}, title = {On lists and other abstract data types in the calculus of construction}, year = {2000}, pages = {261-276}, author = {Jonathan P. Seldin} } @article{seldin97, journal = {Annals of Pure and Applied Logic}, number = {1}, month = {January}, volume = {83}, title = {On the proof theory of Coquand's calculus of constructions}, year = {1997}, pages = {23--101}, author = {Jonathan P. Seldin} } @article{wichmann, journal = {The Computer Journal}, volume = {32}, title = {Towards a Formal Specification of Floating Point}, year = {1989}, pages = {432-436}, author = {B.A. Wichmann} } @book{mathematica, title = {Mathematica : a system for doing mathematics by computer}, year = {1991}, publisher = {Addison Wesley}, author = {Stephen Wolfram} } @inproceedings{xi-imp, author = "Hongwei Xi", title = {{Imperative Programming with Dependent Types}}, booktitle = "Proceedings of 15th IEEE Symposium on Logic in Computer Science", year = 2000, month = "June", address = "Santa Barbara", pages = "375--387" } @phdthesis{xi-thesis, month = {December}, school = {Department of Mathematical Sciences, Carnegie Mellon University}, title = {Dependent Types in Practical Programming}, year = {1998}, author = {Hongwei Xi} } @techreport{dtal, author = {Hongwei Xi and Robert Harper}, title = {A Dependently Typed Assembly Language}, institution = {Computer Science and Engineering Department, Oregon Graduate Institute}, year = 1999, number = {OGI-CSE-99-008}, month = {July}, } @misc{bignum-cmp, month = {February}, title = {Comparison of three public-domain multiprecision libraries: BigNum, Gmp and Pari}, year = {1998}, author = {Paul Zimmerman} } @book{perl, title = {Programming Perl}, author = {Larry Wall and Tom Christiansen and Jon Orwant}, year = {2000}, edition = {3rd}, publisher = {O'Reilly} } @misc{python, howpublished = {http://www.python.org/doc/current/tut/tut.html}, month = {April}, title = {Python Tutorial}, year = {2001}, author = {Guido van {Rossum} and Fred L. {Drake, Jr}} } @book{logic, title = {The Language of First Order Logic}, year = {1992}, publisher = {CSLI Lecture Notes}, author = {Jon Barwise and John Etchemendy} } @book{haskell, title = {Haskell -- The Craft of Functional Programming}, year = {1999}, publisher = {Addison Wesley}, author = {Simon Thompson} } @inproceedings{coq-hol, title = {A Comparative Study of Coq and HOL}, year = {1997}, booktitle = {Theorem Proving in Higher Order Logics}, pages = {323-337}, author = {Vincent Zammit} } @misc{gay90, month = {November}, title = {Correctly Rounded Binary-Decimal and Decimal-Binary Conversions}, year = {1990}, author = {David M. Gay}, note = {AT&T Bell Laboratories, Numerical Analysis Manuscript 90-10} } @article{hughes-matters, journal = {Computer Journal}, number = {2}, volume = {32}, title = {Why Functional Programming Matters}, year = {1989}, pages = {98--107}, author = {J. Hughes} } @inproceedings{proofpointing, title = {Proof by Pointing}, year = {1994}, booktitle = {Proceedings of the International Symposium on Theoretical Aspects of Computer So}, pages = {141--160}, editor = {M. Hagiya and J. C. Mitchell}, publisher = {Springer-Verlag}, series = {LNCS}, volume = {789}, address = {Sendai, Japan}, author = {Yves Bertot and Gilles Kahn and Laurent Th{\'e}ry} } @misc{inductive-coq, month = {December}, title = {Inductive Definitions in the System Coq -- Rules and Properties}, year = {1992}, author = {Christine Paulin-Mohring} } @misc{leiserson98, month = {July}, title = {Using de Bruijn Sequences to Index a 1 in a Computer Word}, year = {1998}, author = {{Charles E. Leiserson} and {Harald Prokop} and {Keith H. Randall}} } @inproceedings{proofchecking, title = {A two-level approach towards lean proof-checking}, year = {1996}, booktitle = {TYPES}, pages = {16--35}, author = {G. Barthe and M.P.J. Ruys and H.P. Barendregt} } @inproceedings{congruence, title = {Congruence Types}, year = {1995}, booktitle = {CSL}, pages = {36--51}, author = {Gilles Barthe and Herman Geuvers} } @phdthesis{geuvers-thesis, title = {Logic and Type Systems}, author = {Herman Geuvers}, year = 1993, school = {Katholieke Universiteit Nijmegen} } @techreport{multiple-values, title = {Multiple Values in {Standard ML}}, year = {1994}, number = {94-312}, institution = {LFCS, Dept of Computer Science, University of Edinburgh}, author = {Kevin Mitchell} } @inproceedings{oracle-checking, month = {January}, title = {Oracle-Based Checking of Untrusted Software}, year = {2001}, booktitle = {Proceedings of the 28th ACM Symposium on Principles of Programming Languages}, pages = {142--154}, author = {{George C. Necula} and {S.P. Rahul}} } @article{adams93jfp, journal = {Journal of Functional Programming}, number = {4}, volume = {3}, title = {Efficient Sets -- A Balancing Act}, year = {1993}, pages = {553--561}, author = {Stephen Adams} } @inproceedings{hughes-sized, title = {Proving the Correctness of Reactive Systems Using Sized Types}, year = {1996}, booktitle = {Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programmin}, pages = {410--423}, author = {John Hughes and Lars Pareto and Amr Sabry} } @inproceedings{whittle99ml, title = {An {ML} Editor Based on Proofs-As-Programs}, year = {1999}, booktitle = {Automated Software Engineering}, pages = {166--173}, author = {Jon Whittle and Alan Bundy and Richard J. Boulton and Helen Lowe} } @book{efp-typeinf, title = {Elements of Functional Programming}, year = {1989}, publisher = {Addison-Wesley}, author = {Chris Reade}, series = {International Computer Science Series} } @incollection{ wadler-views, author = "Philip Wadler", title = "Views: {A} Way for Pattern Matching to Cohabit with Data Abstraction", booktitle = "Proceedings, 14th Symposium on Principles of Programming Languages", publisher = "Association for Computing Machinery", editor = "Steve Munchnik", pages = "307--312", year = "1987", url = "citeseer.nj.nec.com/wadler87views.html" } @article{ coquand-checking, author = "Thierry Coquand", title = "An Algorithm for Type-Checking Dependent Types", journal = "Science of Computer Programming", volume = "26", number = "1-3", pages = "167-177", year = "1996", url = "citeseer.nj.nec.com/coquand96algorithm.html" } @misc{coquand-pm, author = "Thierry Coquand", title = "Pattern Matching with Dependent Types", year = "1992", howpublished = "Available from \verb+http://www.cs.chalmers.se/~coquand/type.html+" } @misc{pollack-records, month = {August}, title = {Dependently Typed Records for Representing Mathematical Structure}, year = {2000}, author = {Robert Pollack} } @article{checking-betarte, journal = {Journal of Functional Programming}, number = {2}, month = {March}, volume = {10}, title = {Type checking dependent (record) types and subtyping}, year = {2000}, pages = {137--166}, author = {Gustavo Betarte} } @article{ gcode, author = "Thomas Johnsson", title = "Efficient Compilation of Lazy Evaluation", booktitle = "Proceedings of the {ACM} {SIGPLAN}'84 Symposium on Compiler Con struction", journal = "SIGPLAN Notices", volume = "19", number = "6", month = "June", publisher = "ACM Press", pages = "58--69", year = "1984", url = "citeseer.nj.nec.com/johnsson84efficient.html" } @misc{kamareddine01, month = {February}, title = {Reviewing the classical and the de Bruijn notation for $\lambda$-calculus and pure type systems}, year = {2001}, author = {Fairouz Kamareddine} } @book{prooftheory, title = {Basic Proof Theory}, year = {1996}, publisher = {Cambridge University Press}, author = {A.S. Troelstra and H. Schwichtenberg}, series = {Cambridge Tracts in Theoretical Computer Science} } @misc{nbe_staged, title = {Integrating Normalization-by-Evaluation into a Staged Programming Language}, year = {1998}, author = {Tim Sheard} } @inproceedings{nbe2, title = {Normalization by evaluation}, year = {1998}, author = {Ulrich Berger and Matthias Eberl and Helmut Schwichtenberg}, booktitle = {Prospects for Hardware Foundations 1998}, pages = {117--137}, series = {LNCS} } @misc{rtcg_jfp, title = {Compiling for Run-time Code Generation}, year = {2000}, author = {Frederick Smith and Dan Grossman and Greg Morrisett and Luke Hornof and Trevor J}, note = {Under consideration for J. Functional Programming} } @phdthesis{fredsmith_thesis, month = {January}, school = {Cornell University}, title = {Certified Run-time Code Generation}, year = {2002}, author = {Frederick Smith} } @inproceedings{xi_arraybounds, author = "Hongwei Xi and Frank Pfenning", title = {Eliminating Array Bound Checking through Dependent Types}, booktitle = "Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation", year = 1998, month = "June", address = "Montreal", pages = "249--257", } @inproceedings{xi_deadcode, author = "Hongwei Xi", title = {Dead Code Elimination through Dependent Types}, booktitle = "The First International Workshop on Practical Aspects of Declarative Languages", year = 1999, month = "January", address = "San Antonio", pages = "228--242" } @book{compilers, title = {Compilers --- Principles, Techniques and Tools}, year = {1986}, publisher = {Addison-Wesley}, author = {Alfred Aho and Ravi Sethi and Jeffrey Ullman} } @inproceedings{nhc, title = {Highlights from nhc: A space efficient {Haskell} Compiler}, year = {1995}, author = "Niklas R{\"o}jemo", booktitle = "Functional Programming Languages and Computer Architecture", pages = "282--292" } @misc{mlmatch, title = {SML/NJ Match Compiler Notes}, year = {1992}, author = {William Aitken} } @misc{mlmatch_sestoft, title = {ML pattern match compilation and partial evaluation}, year = {1992}, author = {Peter Sestoft} } @inproceedings{compiledstrongreduction, title = {A Compiled Implementation of Strong Reduction}, year = {2002}, author = {Benjamin Gr\'{e}goire and Xavier Leroy}, booktitle = {Proc. 2002 International Conf. on Functional Programming (ICFP 2002)}, pages = {235--246} } @misc{tclhaskell, howpublished = {http://www.dcs.gla.ac.uk/~meurig/TclHaskell/usermanual.html}, month = {August}, title = {TclHaskell - User Manual}, year = {1999}, author = {Meurig Sage} } @InProceedings{nbe-cat, author = "Thorsten Altenkirch and Martin Hofmann and Thomas Streicher", title = "Categorical reconstruction of a reduction free normalization proof", year = "1995", booktitle = "Category Theory and Computer Science", editor = {David Pitt and David E. Rydeheard and Peter Johnstone}, series = {LNCS}, volume = {953}, pages = {182-199} } @inproceedings{presburgerEFSM, title = {A Comparison of Presburger Engines for EFSM Reachability}, year = {1998}, booktitle = {Computer Aided Verification '98}, pages = {280--292}, author = {Thomas R. Shiple and James H. Kukula and Rajeev K. Ranjan} } @misc{typesafecast, title = {Type-Safe Cast}, year = {2000}, author = {Stephanie Weirich} } @phdthesis{grobauer-thesis, school = {University of Aarhus}, title = {Topics in Semantics Based Program Manipulation}, year = {2001}, author = {Bernd Grobauer} } @misc{monads-moggi, title = {Computational Lambda Calculus and Monads}, year = {1989}, author = {Eugenio Moggi} } @article{gmp-proof, title = {A proof of {GMP} square root}, year = {2002}, journal = {Journal of Automated Reasoning}, volume = {29}, pages = {225--252}, author = {Yves Bertot and Nicolas Magaud and Paul Zimmerman} } @article{F-tal, journal = {ACM Transactions on Programming Languages and Systems}, number = {3}, month = {May}, volume = {21}, title = {From {System F} to Typed Assembly Language}, year = {1999}, pages = {528--569}, author = {Greg Morrisett and David Walker and Karl Crary and Neal Glew} } @techreport{nbe-rtcg, month = {December}, title = {Strong Normalization by Type-Directed Partial Evaluation and Run-Time Code Generation}, year = {1997}, institution = {BRICS}, author = {Vincent Balat and Oliver Danvy} } @misc{yong-schemata, howpublished = {http://www.dur.ac.uk/yong.luo/}, title = {A Methodology for Implementing Inductive Schemata}, year = {2002}, author = {Yong Luo and Zhaohui Luo} } @inproceedings{harper93, title = {Explicit Polymorphism and CPS Conversion}, year = {1993}, booktitle = {20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, pages = {206--219}, publisher = {ACM Press, New York, NY, USA}, author = {Robert Harper and Mark Lillibridge} } @techreport{backends, month = {November}, title = {Functional Back-Ends within the Lambda-Sigma Calculus}, year = {1996}, institution = {INRIA}, author = {Th\'{e}r\`{e}se Hardin and Luc Maranget and Bruno Pagano} } @article{stg, title = {Implementing lazy functional languages on stock hardware -- the {Spineless Tagless G-machine}}, year = {1992}, journal = {Journal of Functional Programming}, volume = {2}, number = {2}, pages = {127--202}, month = {April}, author = {Simon {Peyton Jones}} } @article{debruijn, journal = {Indagationes Mathematicae}, volume = {34}, title = {Lambda calculus notation with nameless dummies}, year = {1972}, pages = {381--392}, author = {N.G. de Bruijn} } @book{assembly, month = {January}, title = {PC Assembly Language}, year = {2002}, publisher = {http://www.drpaulcarter.com/}, author = {Paul A. Carter} } @inproceedings{poly99, title = {Once Upon A Polymorphic Type}, year = {1999}, booktitle = {26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, publisher = {ACM}, author = {Keith Wansbrough and Simon {Peyton Jones}} } @misc{lazy_intro, title = {Compiling Lazy Functional Languages: An introduction}, year = {1986}, author = {Thomas Johnsson} } @inproceedings{unboxed-fp, month = {Sept}, title = {Unboxed Values as First Class Citizens in a Non-Strict Functional Language}, year = {1991}, author = {Simon {Peyton Jones} and John Launchbury}, booktitle = {Functional Programming Languages and Computer Architecture (FPCA'91)}, crossref = {fplca91}, pages = {636--666} } @inproceedings{abc-machine, author = {Sjaak Smetsers and Eric N{\"{o}}cker and John {van Groningen} and Rinus Plasmeijer}, title = {Generating efficient code for lazy functional languages}, booktitle = {Functional programming Languages and Computer Architecture}, year = {1991}, pages = {592--617}, crossref = {fplca91} } @proceedings{fplca91, title = {Functional programming Languages and Computer Architecture}, year = {1991}, volume = {523}, series = {LNCS}, publisher = {Springer-Verlag}, editor = {John Hughes} } @inproceedings{nbe, title = {An inverse of the evaluation functional for typed $\lambda$-calculus}, year = {1991}, booktitle = {Proc. 1991 IEEE Symp. on Logic in Comp. Sci.}, pages = {203--211}, editor = {R. Vemuri}, author = {Ulrich Berger and Helmut Schwichtenberg} } @inproceedings{typed-closure, title = {Typed Closure Conversion}, year = {1996}, booktitle = {Symposium on Principles of Programming Languages}, pages = {271--283}, author = {Yasuhiko Minamide and J. Gregory Morrisett and Robert Harper} } @misc{ghc-commentary, howpublished = {http://www.cse.unsw.edu.au/~chak/haskell/ghc/comm/}, title = {The Glasgow Haskell Compiler (GHC) Commentary}, year = {2002}, author = {Manuel M. T. Chakravarty and Sigbjorn Finne and Simon Marlow and Simon {Peyton Jones} and Julian Seward and Reuben Thomas}, note = {Available from GHC CVS repository} } @inproceedings{lambdalift, month = {September}, title = {Lambda Lifting: Transforming Programs to Recursive Equations}, year = {1985}, booktitle = {Functional Programming Languages and Computer Architecture}, pages = {190--203}, editor = {Jean-Pierre Jouannaud}, publisher = {Springer-Verlag}, author = {Thomas Johnsson} } @inproceedings{til, title = {TIL: A Type-Directed Optimizing Compiler for ML}, year = {1996}, booktitle = {Proc. {ACM} {SIGPLAN} '96 Conference on Programming Language Design and Implementation}, pages = {181--192}, author = {D. Tarditi and G. Morrisett and P. Cheng and C. Stone and R. Harper and P. Lee} } @phdthesis{shao94, school = {Princeton University}, title = {Compiling Standard {ML} for Efficient Execution on Modern Machines}, year = {1994}, author = {Zhong Shao} } @inproceedings{gmachine, month = {September}, title = {The {G-Machine}: A fast, graph-reduction evaluator}, year = {1985}, booktitle = {Functional Programming Languages and Computer Architecture}, pages = {400--413}, editor = {Jean-Pierre Jouannaud}, publisher = {Springer-Verlag}, author = {R.B. Kieburtz} } @inproceedings{strictness, month = {September}, title = {Strictness Analysis - A practical approach}, year = {1985}, booktitle = {Functional Programming Languages and Computer Hardware}, pages = {35--49}, editor = {Jean-Pierre Jouannaud}, publisher = {Springer-Verlag}, author = {Chris Clack and Simon {Peyton Jones}} } @book{fl-impl, title = {Implementing Functional Languages - A Tutorial}, year = {1992}, publisher = {Prentice Hall International}, author = {Simon {Peyton Jones} and David Lester} } @phdthesis{capretta-thesis, school = {Katholieke Universiteit Nijmegen}, title = {Abstraction and Computation}, year = {2002}, author = {Venanzio Capretta} } @article{bird-pointer, journal = {Journal of Functional Programming}, number = {3}, month = {May}, volume = {11}, title = {Unfolding Pointer Algorithms}, year = {2001}, pages = {347--358}, author = {Richard S. Bird} } @article{impl-tp, journal = {Journal of Functional Programming}, number = {2}, month = {March}, volume = {9}, title = {Implementing Theorem Provers in a Purely Functional Style}, year = {1999}, pages = {147--166}, author = {Keith Hanna} } @article{shrink-lambda, journal = {Journal of Functional Programming}, number = {5}, month = {September}, volume = {7}, title = {Shrinking Lambda Expressions in Linear Time}, year = {1997}, pages = {515--540}, author = {Andrew W. Appel and Trevor Jim} } @article{stack-tal, journal = {Journal of Functional Programming}, number = {1}, month = {January}, volume = {12}, title = {Stack-based Typed Assembly Language}, year = {2002}, pages = {43--88}, author = {Greg Morrisset and Karl Crart and Neal Glew and David Walker} } @article{runtime-lamsig, journal = {Journal of Functional Programming}, number = {2}, month = {March}, volume = {8}, title = {Functional Runtime Systems within the lambda-sigma Calculus}, year = {1998}, pages = {131--176}, author = {Th\'{e}r\`{e}se Hardin and Luc Maranget and Bruno Pagano} } @article{busylazy, journal = {Journal of Functional Programming}, number = {6}, month = {November}, volume = {11}, title = {How to look busy while being as lazy as ever: the Implementation of a lazy functional debugger}, year = {2001}, pages = {629--671}, author = {Henrik Nilsson} } @article{lazyveager, journal = {Journal of Functional Programming}, number = {5}, month = {September}, volume = {7}, title = {More haste, less speed: lazy versus eager evaluation}, year = {1997}, pages = {541--547}, author = {Richard Bird and Geraint Jones and Oege {de Moor}} } @article{jvm-fp, journal = {Journal of Functional Programming}, number = {6}, month = {November}, volume = {9}, title = {Compiling lazy functional programs for the Java Virtual Machine}, year = {1999}, pages = {579--603}, author = {David Wakeling} } @book{isabelle, publisher = {Springer-Verlag}, series = {LNCS}, volume = {2283}, month = {March}, title = {Isabelle/HOL - A proof assistant for higher order logic}, year = {2002}, author = {Tobias Nipkow and Lawrence C. Paulson and Markus Wenzel} } @article{ghc-inliner, journal = {Journal of Functional Programming}, number = {4}, month = {September}, volume = {12}, title = {Secrets of the {Glasgow Haskell Compiler} inliner}, year = {2002}, pages = {393--434}, author = {Simon {Peyton Jones} and Simon Marlow} } @article{dynamic-fp, journal = {Journal of Functional Programming}, number = {1}, month = {January}, volume = {8}, title = {The dynamic compiliation of lazy functional programs}, year = {1998}, pages = {61--81}, author = {David Wakeling} } @misc{isabelle-ref, month = {March}, title = {Isabelle Reference Manual}, year = {2002}, author = {Lawrence C. Paulson} } @article{debruijn-nested, journal = {Journal of Functional Programming}, number = {1}, month = {January}, volume = {9}, title = {de Bruijn notation as a nested datatype}, year = {1999}, pages = {77--91}, author = {Richard S. Bird and Ross Paterson} } @article{perfect-trees, journal = {Journal of Functional Programming}, number = {3}, month = {May}, volume = {10}, title = {Perfect trees and bit-reversal permutations}, year = {2000}, pages = {305--317}, author = {Ralf Hinze} } @phdthesis{paulin-extraction, school = {Paris 7}, title = {Extraction de programmes dans le Calcul des Constructions}, year = {1989}, author = {Christine Paulin-Mohring} } @phdthesis{santos95, school = {University of Glasgow}, title = {Compilation By Transformation In Non-Strict Functional Languages}, year = {1995}, author = {{Andr\'{e} Lu\'{i}s de Medeiros} Santos} } @book{cps, title = {Compiling With Continuations}, year = {1992}, publisher = {Cambridge University Press}, author = {Andrew W. Appel} } @techreport{SKIM, number = {31}, title = {The {SKIM} microprogrammer's guide}, year = {1983}, institution = {University of Cambridge}, author = {W.R. Stoye} } @misc{NORMA, title = {An Overview of Burroughs {NORMA}}, year = {1985}, author = {H. Richards} } @book{ml, title = {The Definition of Standard ML --- Revised}, year = {1997}, publisher = {MIT Press}, author = {Robin Milner and Mads Tofte and Robert Harper and David MacQueen} } @misc{ml71, title = {An intuitionistic theory of types}, year = {1971}, author = {Per Martin-L\"{o}f} } @phdthesis{girard-thesis, school = {Universit\'{e} Paris VII}, title = {Interpr\'{e}tation fonctionelle et \'{e}limination des coupures de l'arithm\'{e}tique d'ordre sup\'{e}rieur}, year = {1972}, author = {Jean-Yves Girard} } @inproceedings{ml75, title = {An intuitionistic theory of types: predicative part}, year = {1975}, booktitle = {Logic Colloquium '73}, editor = {H. Rose and J.C. Shepherdson}, publisher = {North-Holland}, author = {Per Martin-L\"{o}f} } @inproceedings{cpm90, title = {Inductively defined types}, year = {1990}, author = {Thierry Coquand and Christine Paulin-Mohring}, series = {LNCS}, volume = {417}, publusher = {Springer-Verlag} } @phdthesis{fpcustom, month = {May}, school = {Computer Lab, University of Cambridge}, title = {The Implementation of Functional Languages using Custom Hardware}, year = {1985}, author = {W.R. Stoye} } @phdthesis{hughesthesis, month = {September}, school = {Programming Research Group, Oxford}, title = {The design and implementation of programming languages}, year = {1984}, author = {John Hughes} } @inproceedings{tim, volume = {274}, title = {{TIM} -- A simple lazy abstract machine to execute supercombinators}, year = {1987}, booktitle = {Functional Programming Languages and Computer Architecture}, publisher = {Springer-Verlag}, author = {John Fairbairn and Stuart Wray}, pages = {34--45}, series = {LNCS} } @techreport{abc, title = {The {ABC} machine -- A Sequential Stack-based Abstract Machine For Graph Rewriting}, year = {1990}, institution = {University of Nijmegen}, author = {P.W.M. Koopman and M.C.J.D. van {Eekelen} and E.G.J.M.H. Ncker and J.E.W. Smetsers and M.J. Plasmeijer} } @techreport{implicit, title = {On Implicit Arguments}, year = {1994}, institution = {Faculty of Science, University of Tokyo}, author = {Masami Hagiya and Yozo Toda} } @book{semantics, title = {Denotational Semantics}, year = {1986}, publisher = {Wm. C. Brown}, author = {David A. Schmidt} } @inproceedings{lazyml, month = {August}, title = {A compiler for {Lazy} {ML}}, year = {1984}, booktitle = {Proceedings of the {ACM} Symposium on Lisp and Functional Programming}, pages = {218--227}, author = {Lennart Augustsson} } @inproceedings{nu-g, title = {Parallel graph reduction with the $\langle\nu,G\rangle$-machine}, year = {1989}, booktitle = {Functional Programming Languages and Computer Architecture}, publisher = {ACM Press}, author = {Lennart Augustsson and Thomas Johnsson} } @book{k&r, title = {The C programming language}, year = {1988}, publisher = {Prentice-Hall}, author = {Brian W. Kernighan and Dennis M. Ritchie} } @misc{c--garbage, title = {C--: a portable assembly language that supports garbage collection}, year = {1999}, author = {Simon {Peyton Jones} and Norman Ramsey and Fermin Reig}, note = {Invited talk at PPDP'99} } @misc{epigram, howpublished = {http://www.dur.ac.uk/CARG/epigram.html}, title = {Project Proposal: {Epigram}: Innovative Programming via Inductive Families}, year = {2002}, author = {Zhaohui Luo and James McKinna and Paul Callaghan and Conor McBride} } @misc{ghc-rewrite, title = {Playing by the Rules: Rewriting as a practical optimisation technique in {GHC}}, year = {2001}, author = {Simon {Peyton Jones} and Andrew Tolmach and Tony Hoare} } @UNPUBLISHED{implicit-pollack, AUTHOR = {Robert Pollack}, TITLE = {Implicit Syntax}, NOTE = {Informal Proceedings of First Workshop on Logical Frameworks, Antibes}, YEAR = {1990}, MONTH = MAY } @article{transform-haskell, journal = {Science of Computer Programming}, volume = {32}, title = {A transformation-based optimiser for {Haskell}}, year = {1998}, pages = {3--47}, author = {Simon {Peyton Jones} and Andr\'{e} L. M. Santos} } @inproceedings{knuth-bendix, title = {Simple Word Problems in Universal Algebras}, year = {1970}, booktitle = {Computational Problems in Abstract Algebra}, pages = {263--298}, editor = {John Leech}, publisher = {Pergamon Press}, author = {Donald E. Knuth and Peter B. Bendix} } @inproceedings{phantomfun, title = {Fun With Phantom Types}, author = {Ralf Hinze}, pages = {245--262}, year = {2003}, crossref = {funprogramming}, booktitle = {The Fun Of Programming}, publisher = {Palgrave} } @book{funprogramming, month = {March}, title = {The Fun Of Programming}, year = {2003}, editor = {Jeremy Gibbons and Oege {de Moor}}, publisher = {Palgrave}, series = {Cornerstones of Computing} } @inproceedings{anderson-proof, title = {Representing Proof Transformations For Program Optimization}, year = {1994}, booktitle = {International Conference On Automated Deduction}, publisher = {Springer Verlag}, author = {Penny Anderson} } @phdthesis{daria-thesis, month = {April}, school = {Institute of Informatics, Warsaw University}, title = {Termination of Rewriting in the Calculus of Constructions}, year = {2003}, author = {Daria Walukiewicz-Chrzaszcz} } @inproceedings{change-data, title = {Changing Data Structures In Type Theory: A Study Of Natural Numbers}, year = {2001}, booktitle = {Types For Proofs And Programs 2000}, pages = {181--196}, editor = {Paul Callaghan and Zhaohui Luo and James McKinna and Robert Pollack}, publisher = {Springer}, author = {Nicolas Magaud and Yves Bertot} } @phdthesis{nico-thesis, title = {Changement de Representation des donn\'{e}es dans le Calcul de Constructions}, author = {Nicolas Magaud}, year = {2003}, month = {October}, school = {Universit\'{e} de Nice - Sophia Antipolis} } @book{patterns, title = {Design Patterns}, year = {1995}, publisher = {Addison Wesley}, author = {Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides} } @misc{ghchugs, month = {August}, title = {The New {GHC}/{Hugs} Runtime System}, year = {1998}, author = {Simon Marlow and Simon {Peyton Jones}} } @misc{stgrevised, month = {February}, title = {The {STG} runtime system (revised)}, year = {1999}, author = {Simon {Peyton Jones} and Simon Marlow and Alastair Reid}, howpublished = {Available from \verb+http://www.haskell.org/ghc/documentation.html+} } @inproceedings{optimistic, month = {March}, title = {Optimistic Evaluation --- an adaptive evaluation strategy for non-strict programs}, year = {2003}, author = {Robert Ennals and Simon {Peyton Jones}}, booktitle = {International Conference on Functional Programming}, pages = {287--298} } @phdthesis{ennals-thesis, title = {Adaptive Evaluation of Non-Strict Programs}, author = {Robert Ennals}, year = {2003}, month = {December}, school = {King's College, University of Cambridge} } @article{garbage, journal = {ACM Computing Surveys}, number = {3}, volume = {13}, title = {Garbage Collection of Linked Data Structures}, year = {1981}, pages = {341--367}, author = {Jacques Cohen} } @article{baker-gc, journal = {Communications of the ACM}, number = {4}, month = {April}, volume = {21}, title = {List Processing In Real Time On A Serial Computer}, year = {1978}, pages = {280--294}, author = {Henry G. {Baker Jr}} } @misc{bc-rec, month = {February}, title = {Modelling General Recursion in Type Theory}, year = {2003}, note = {Under consideration for publication in Math. Struct. in Comp. Science. Draft, DCS, CTH --- INRIA, Sophia Antipolis, France}, author = {Ana Bove and Venanzio Capretta} } @misc{global-tag, title = {Global Tagging Optimization by Type Inference}, year = {1992}, author = {Fritz Henglein} } @book{esr, month = {October}, title = {The Cathedral And The Bazaar}, year = {1999}, publisher = {O'Reilly}, author = {Eric Raymond} } @book{manmonth, title = {The Mythical Man-month: Essays on Software Engineering}, year = {1975}, publisher = {Addison Wesley}, author = {Frederick P. Brooks} } @inproceedings{evalpush, title = {How to make a fast curry: push/enter vs eval/apply}, year = {2004}, author = {Simon Marlow and Simon {Peyton Jones}}, booktitle = {International Conference on Functional Programming, Snowbird}, pages = {4--15} } @phdthesis{boquist-thesis, month = {April}, school = {Chalmers University of Technology}, title = {Code Optimisation Techniques for Lazy Functional Languages}, year = {1999}, author = {Urban Boquist} } @book{formal-spec, title = {Formal Specification Of Programming Languages}, year = {1981}, publisher = {Prentice-Hall}, author = {Frank G. Pagan} } @inproceedings{elim-motive, title = {Elimination With A Motive}, year = {2000}, booktitle = {Types for Proofs and Programs}, pages = {197--216}, editor = {Paul Callaghan and Zhaohui Luo and James McKinna and Robert Pollack}, publisher = {Springer}, author = {Conor McBride} } @article{telescope, journal = {Information and Computation}, number = {2}, month = {April}, volume = {91}, title = {Telescoping Mappings in Typed Lambda Calculus}, year = {1991}, pages = {189--204}, author = {N.G. de Bruijn} } @misc{typeintype, title = {Typechecking is undecidable when 'type' is a type}, year = {1989}, author = {Mark B. Reinhold} } @misc{core, month = {September}, title = {An External Representation for the {GHC} Core Language}, year = {2001}, author = {Andrew Tolmach and {The GHC Team}} } @article{deforestation, journal = {Theoretical Computer Science}, volume = {73}, title = {Deforestation: Transforming programs to eliminate trees}, year = {1990}, pages = {231--248}, author = {Philip Wadler} } @misc{hep, month = {July}, title = {Architecture of the {Haskell} Execution Platform}, year = {1999}, author = {Julian Seward and Simon Marlow and Andy Gill and Sigbjorn Finne and Simon {Peyton Jones} }, note = {Version 6}, howpublished = {Available from \verb+http://www.haskell.org/ghc/documentation.html+} } @mastersthesis{wahlstedt-thesis, month = {October}, school = {Chalmers University Of Technology}, title = {Detecting Termination Using Size Change In Parameter Values}, year = {2000}, author = {David Wahlstedt} } @inproceedings{size-change, title = {The size-change principle for program termination}, year = {2001}, booktitle = {Proceedings of the 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, author = {Chin Soon Lee and Neil D. Jones and Amir Ben-Amram. } } @article{ski-turner, journal = {Software -- Practice and Experience}, volume = {9}, title = {A new implementation technique for applicative languages}, year = {1979}, pages = {31--49}, author = {David Turner} } @inproceedings{turner-strong, number = {1022}, title = {Elementary Strong Functional Programming}, year = {1996}, booktitle = {First International Symposium on Functional Programming Languages in Education, Nijmegen, Netherlands, December 1995.}, pages = {1--13}, publisher = {Springer}, author = {David Turner}, series = {LNCS} } @misc{clean, title = {The {Concurrent CLEAN} Language Report (draft)}, year = {2003}, author = {Rinus Plasmeijer and Marko van Eekelen}, howpublished = {Available from \verb+http://www.cs.kun.nl/~clean/+} } @article{burstall-struct, journal = {Computer Journal}, number = {1}, volume = {12}, title = {Proving Properties of Programs By Structural Induction}, year = {1969}, pages = {41--48}, author = {Rod Burstall} } @incollection{ barendregt-types, author = "Henk Barendregt", title = "Lambda Calculi with Types", booktitle = "Handbook of Logic in Computer Science, Volumes 1 (Background: Mathematical Structures) and 2 (Background: Computational Structures), Abramsky \& Gabbay \& Maibaum (Eds.)", publisher = "Clarendon", volume = "2", year = "1992", url = "citeseer.nj.nec.com/barendregt92lambda.html" } @book{curry-feys, title = {Combinatory Logic, volume 1}, year = {1958}, publisher = {North Holland}, author = {Haskell B. Curry and Robert Feys} } @phdthesis{bove-thesis, month = {November}, school = {Chalmers University of Technology}, title = {General Recursion in Type Theory}, year = {2002}, author = {Ana Bove} } @inbook{ml-cm, title = {Constructive Mathematics and Computer Programming}, year = {1985}, booktitle = {Mathematical Logic and Programming Languages}, publisher = {Prentice Hall}, author = {Per Martin-L\"{o}f} } @inproceedings{howard, title = {The formulae-as-types notion of construction}, year = {1980}, booktitle = {To H.B.Curry: Essays on combinatory logic, lambda calculus and formalism}, editor = {Jonathan P. Seldin and J. Roger Hindley}, publisher = {Academic Press}, author = {William A. Howard}, note = {A reprint of an unpublished manuscript from 1969} } @inproceedings{talx86, title = {TALx86: A Realistic Typed Assembly Language}, year = {1999}, booktitle = {ACM SIGPLAN Workshop on Compiler Support for System Software}, pages = {25--35}, author = {Greg Morrisett and Karl Crary and Neal Glew and Dan Grossman and Richard Samuels and Frederick Smith and David Walker and Stephanie Weirich and Steve Zdancewic} } @inproceedings{bove-capretta, volume = {2152}, title = {Nested General Recursion and Partiality in Type Theory}, year = {2001}, booktitle = {Theorem Proving in Higher Order Logics, 14th International Conference, TPHOLS 2001}, pages = {121--135}, editor = {Richard J. Boulton and Paul B. Jackson}, publisher = {Springer-Verlag}, author = {Ana Bove and Venanzio Capretta}, series = {LNCS} } @misc{lvm, month = {November}, title = {LVM, the lazy virtual machine}, year = {2002}, author = {Daan Leijen} } @misc{ocaml, howpublished = {\verb+http://caml.inria.fr/ocaml/htmlman/+}, month = {August}, title = {The {Objective Caml} system release 3.06}, year = {2002}, author = {Xavier Leroy} } @misc{lambdagoto, title = {Lambda : The Ultimate Goto}, year = {1977}, author = {Guy L. {Steele Jr}}, note = {MIT AI Memo 443} } @inproceedings{ liu-tail, author = "Yanhong A. Liu and Scott D. Stoller", title = "From Recursion to Iteration: What are the Optimizations?", booktitle = "Partial Evaluation and Semantic-Based Program Manipulation", pages = "73-82", year = "2000", url = "citeseer.nj.nec.com/liu00from.html" } @inproceedings{aczel77, title = {An Introduction To Inductive Definitions}, year = {1977}, booktitle = {Handbook of Mathematical Logic}, editor = {J. Barwise}, publisher = {North Holland}, author = {Peter Aczel} } @inproceedings{inductive-plastic, volume = {1956}, title = {Implementation Techniques for Inductive Types in {Plastic}}, year = {1999}, booktitle = {Types for Proofs and Programs}, pages = {94--113}, editor = {Thierry Coquand and Peter Dybjer and Bengt Nordstr\"{o}m and Jan Smith}, publisher = {Springer-Verlag}, author = {Paul Callaghan and Zhaohui Luo}, series = {LNCS} } @misc{graham, howpublished = {Available from \verb+http://www.paulgraham.com/+}, month = {April}, title = {The Hundred Year Language}, year = {2003}, author = {Paul Graham}, note = {Keynote address at PyCon 2003} } @inproceedings{gimenez98, volume = {1443}, title = {Structural Recursive Definitions in Type Theory}, year = {1998}, booktitle = {Proceedings of ICALP '98}, publisher = {Springer-Verlag}, author = {Eduardo Gim\'{e}nez}, series = {LNCS} } @article{quicksort, journal = {Computer Journal}, number = {1}, volume = {5}, title = {Quicksort}, year = {1962}, pages = {10--15}, author = {C.A.R. Hoare} } @phdthesis{goguen-thesis, school = {University of Edinburgh}, title = {A Typed Operational Semantics for Type Theory}, year = {1994}, author = {Healfdene Goguen} } @article{ph-universes, journal = {Theoretical Computer Science}, number = {1}, volume = {89}, title = {Type Checking With Universes}, year = {1991}, pages = {107--136}, author = {Robert Harper and Randy Pollack} } @inproceedings{pm-compile, month = {September}, title = {Compiling Pattern Matching}, year = {1985}, booktitle = {Functional Programming Languages and Computer Architecture}, pages = {368--381}, editor = {Jean-Pierre Jouannaud}, publisher = {Springer-Verlag}, author = {Lennart Augustsson} } @phdthesis{lena-thesis, school = {Chalmers University of Technology, G\"{o}teborg}, title = {The implementation of {ALF} -- A Proof Editor based on {Martin-L\"{o}f}'s Monomorphic Type Theory with Explicit Substitutions}, year = {1994}, author = {Lena Magnusson} } @article{view-left, journal = {Journal of Functional Programming}, number = {1}, volume = {14}, title = {The View From The Left}, year = {2004}, author = {Conor McBride and James McKinna}, pages = {69--111} } @inproceedings{not-a-number, author = {Conor McBride and James McKinna}, title = {I am not a number, {I} am a free variable}, year = {2004}, booktitle = {Proceedings of the ACM SIGPLAN Haskell Workshop} } @misc{profiling, title = {Time and Space Profiling for Non-Strict, Higher Order Functional Languages}, year = {1995}, author = {Patrick M. Sansom and Simon {Peyton Jones}} } @inbook{pattern-matching, title = {The Implementation of Functional Programming Languages}, year = {1987}, booktitle = {The Implementation of Functional Programming Languages}, pages = {78--103}, editor = {Simon {Peyton Jones}}, chapter = {5}, publisher = {Prentice Hall}, author = {Philip Wadler}, crossref = {pj-imp} } @misc{tag-elim, title = {Tag Elimination -- or -- Type Specialisation is a Type Indexed Effect}, year = {2000}, author = {Walid Taha and Henning Makholm} } @inproceedings{extraction-coq, title = {A New Extraction for {Coq}}, year = {2002}, booktitle = {Types for proofs and programs}, editor = {Herman Geuvers and Freek Wiedijk}, publisher = {Springer}, author = {Pierre Letouzey}, series = {LNCS} } @phdthesis{mcbride-snr-thesis, school = {Queen's University of Belfast}, title = {Computer Aided Manipulation of Symbols}, year = {1970}, author = {Fred McBride} } @article{ho-strictness, journal = {Science of Computer Programming}, volume = {7}, title = {Strictness analysis for higher-order functions}, year = {1986}, pages = {249--278}, author = { Geoffrey L. Burn and Chris Hankin and Samson Abramsky} } @phdthesis{mycroft-thesis, school = {Dept Computer Science, University of Edinburgh}, title = {Abstract interpretation and optimising transformations for applicative programs}, year = {1981}, author = {A. Mycroft} } @inproceedings{bc-nested, month = {September}, volume = {2152}, title = {Nested General Recursion and Partiality in Type Theory}, year = {2001}, booktitle = {Theorem Proving In Higher Order Logics: 14th International Conferences, TPHOLS 2001}, pages = {121--135}, publisher = {Springer--Verlag}, author = {Ana Bove and Venanzio Capretta}, series = {LNCS} } @techreport{bove-mutual, month = {May}, title = {Mutual General Recursion in Type Theory}, year = {2002}, institution = {Department of Computing Science, Chalmers University of Technology}, author = {Ana Bove} } @article{berardi-pruning, journal = {Journal of Logic and Computation}, number = {5}, volume = {6}, title = {Pruning Simply Typed Lambda Terms}, year = {1996}, pages = {663--681}, author = {Stefano Berardi} } @article{milner-tc, journal = {Journal of Computer and System Science}, volume = {17}, title = {A Theory of Type Polymorphism in Programming}, year = {1978}, pages = {348--75}, author = {R. Milner} } @inproceedings{extt, title = {Inductive Families Need Not Store Their Indices}, year = {2004}, booktitle = {Types for Proofs and Programs 2003}, author = {Edwin Brady and Conor McBride and James McKinna}, editor = {Stefano Berardi and Mario Coppo and Ferruccio Damiani}, publisher = {Springer}, volume = {3085}, pages = {115--129} } @book{luo94, title = {Computation and Reasoning -- A Type Theory for Computer Science}, year = {1994}, publisher = {OUP}, author = {Zhaohui Luo}, series = {Intl. Series of Monographs on Comp. Sci.} } @article{backus78, journal = {Communications of the ACM}, month = {August}, volume = {21}, title = {Can Programming Be Liberated From the {Von Neumann} Style?}, year = {1978}, pages = {280--294}, author = {John Backus} } @misc{henk, month = {May}, title = {Henk: A Typed Intermediate Language}, year = {1997}, author = {Simon {Peyton Jones} and Erik Meijer} } @article{thunks, journal = {Journal of Functional Programming}, number = {3}, month = {May}, volume = {7}, title = {Thunks and the $\lambda$-calculus}, year = {1997}, pages = {303--319}, author = {John Hatcliff and Olivier Danvy} } @inproceedings{grin-project, author = "Urban Boquist and Thomas Johnsson", title = "The {GRIN} Project: A Highly Optimising Back End for Lazy Functional Languages", booktitle = "Implementation of Functional Languages", pages = "58--84", year = "1996", url = "citeseer.ist.psu.edu/boquist96grin.html" } @misc{boehm-gc, howpublished = {\verb+http://www.hpl.hp.com/personal/Hans_Boehm/gc/+}, title = {A garbage collector for {C} and {C++}}, year = {2001}, author = {Hans-J. Boehm and Alan J. Demers and {Xerox Corporation Silicon Graphic} and {Hewlett-Packard Company}} } @misc{art-interpreter, month = {May}, title = {The Art of the Interpreter or, the Modularity Complex (Parts Zero, One, and Two)}, year = {1978}, author = {Guy Lewis {Steele, Jr.} and Gerald Jay Sussman}, note = {MIT AI Lab. AI Lab Memo AIM-453} } @inproceedings{gimenez, title = {Codifying Guarded Definitions With Recursive Schemes}, year = {1994}, booktitle = {Proceedings of TYPES 1994}, pages = {39--59}, author = {Eduardo Gim\'{e}nez} } @manual{ghc-manual, title = {The Glasgow Haskell Compiler User's Guide, Version 6.0}, year = {2003}, author = {The {GHC Team}} } @article{rbtree, journal = {Journal of Functional Programming}, number = {4}, month = {May}, volume = {9}, title = {Red-Black Trees In A Functional Setting}, year = {1999}, pages = {471--477}, author = {Chris Okasaki} } @inproceedings{dt-data, author = "Hongwei Xi", title = {{Dependently Typed Data Structures}}, booktitle = "Proceedings of Workshop of Algorithmic Aspects of Advanced Programming Languages (WAAAPL '99)", year = 1999, month = "September", pages = "17--32", address = "Paris", } @misc{krivine, title = {On the Correctness and Efficiency of the {Krivine} Machine}, year = {2003}, month = {October}, author = {Mitchell Wand and Daniel P. Friedman}, howpublished = {Submitted for publication} } @inproceedings{nbe-filinski, title = {Normalization by Evaluation for the Computational Lambda-Calculus}, year = {2001}, month = {May}, booktitle = {Typed Lambda Calculi and Applications: 5th International Conference, TLCA 2001}, author = {Andrzej Filinski}, pages = {151--165}, publisher = {Springer-Verlag}, series = {LNCS}, volume = {2044} } @inproceedings{filinski-nbesem, title = {A semantic account of type-directed partial evaluation}, year = {1999}, author = {Andrzej Filinski}, editor = {G. Nadathur}, booktitle = {International Conference on Principles and Practice of Declarative Programming}, volume = {1702}, series = {LNCS}, pages = {378--395}, publisher = {Springer-Verlag} } @article{secd, title = {The mechanical evaluation of expressions}, author = {P.J. Landin}, year = {1964}, journal = {Computer Journal}, volume = {6}, pages = {308--320} } @misc{lispkit, title = {The {LispKit} Manual}, author = {Peter Henderson and Geraint Jones and Simon Jones}, year = {1982}, howpublished = {Oxford University Computing Laboratory} } @inproceedings{wells-undecidable, title = {Typability and Type Checking in the Second-order $\lambda$-calculus are equivalent and undecidable}, author = {J. Wells}, year = {1994}, month = {July}, booktitle = {Proc. 9th Ann. IEEE Symp. Logic Comput. Sci.} } @misc{patguards, title = {Pattern Guards and Transformational Patterns}, author = {Martin Erwig and Simon {Peyton Jones}}, year = {2000}, howpublished = {Haskell Workshop} } @misc{alfa-manual, title = {Alfa Users' Guide}, author = {Thomas Hallgren}, year = {2001}, howpublished = {Available from \verb+http://www.cs.chalmers.se/~hallgren/Alfa/+} } @inproceedings{nofib, title = {The nofib Benchmark Suite of {Haskell} Programs}, author = {Will Partain}, year = {1992}, booktitle = {Functional Programming}, editor = {J. Launchbury and P.L. Sansom}, series = {Workshops in Computing}, publisher = {Springer Verlag} } @article{shape, title = {Shape in Computing}, author = {Barry Jay}, journal = "{ACM} Computing Surveys", year = "1996", volume = "28", number = "2", pages = "355--357", } @misc{ffi, title = {The {Haskell 98} Foreign Function Interface 1.0: An Addendum to the {Haskell 98} Report}, editor = {Manuel Chakravarty}, key = {FFI}, year = {2002}, month = {December}, howpublished = {Available from \verb+http://www.haskell.org/+} } @misc{perlxs, title = {Perl {XS} Reference Manual}, author = {Dean Roehrich and {The Perl Porters}}, year = {1996}, howpublished = {\verb+http://www.perldoc.com/perl5.6/pod/perlxs.html+} } @misc{swig, title = {{SWIG} : An Easy to Use Tool for Integrating Scripting Languages with {C} and {C++}}, author = {David M. Beazley}, year = {1996}, howpublished = {\verb+http://www.swig.org/papers/Tcl96/tcl96.html+} } @inproceedings{types-prog, title = {Type Systems for Programming Languages}, booktitle = {Handbook of Theoretical Computer Science}, author = {John C. Mitchell}, pages = {365--458}, year = {1990}, crossref = {htcs} } @book{htcs, title = {Handbook of Theoretical Computer Science}, editor = {J. van Leeuwen}, publisher = {Elsevier Science}, year = {1990} } @misc{r5rs, title = {Revised$^5$ Report on the Algorithmic Language Scheme}, author = {Richard Kelsey and William Clinger and Jonathan Rees}, year = {1998}, month = {February}, howpublished = {Available from \verb+http://www.schemers.org/+} }