• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Practical Refinement-Type Checking (1997)

Cached

  • Download as a PDF
  •  
  • Download as a PS

Download Links

  • [pecan.srv.cs.cmu.edu]
  • [www.cs.cmu.edu]
  • [www.cs.cmu.edu]
  • [reports-archive.adm.cs.cmu.edu]
  • [www-2.cs.cmu.edu]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Rowan Davies , Frank Pfenning
Citations:25 - 1 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@TECHREPORT{Davies97practicalrefinement-type,
    author = {Rowan Davies and Frank Pfenning},
    title = {Practical Refinement-Type Checking},
    institution = {},
    year = {1997}
}

Years of Citing Articles

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Refinement types allow many more properties of programs to be expressed and statically checked than conventional type systems. We present a practical algorithm for refinement-type checking in a -calculus enriched with refinement-type annotations. We prove that our basic algorithm is sound and complete, and show that every term which has a refinement type can be annotated as required by our algorithm. Our positive experience with an implementation of an extension of this algorithm to the full core language of Standard ML demonstrates that refinement types can be a practical program development tool in a realistic programming language. The required refinement type definitions and annotations are not much of a burden and serve as formal, machine-checked explanations of code invariants which otherwise would remain implicit. 1 Introduction The advantages of statically-typed programming languages are well known, and have been described many times (e.g. see [Car97]). However, conventional ty...

Citations

1635 Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints - Cousot, Cousot - 1977
873 A theory of type polymorphism in programming - Milner - 1978
729 A formulation of the simple theory of types - Church - 1940
652 Notions of computation and monads - Moggi - 1991
573 The Definition of Standard ML (Revised - Milner, Tofte, et al. - 1997
493 Untersuchungen über das logische Schließen - Gentzen - 1935
488 A syntactic approach to type soundness - Wright, Felleisen - 1994
401 Computational lambda-calculus and monads - Moggi - 1989
395 The formulae-as-types notion of constructions - HOWARD - 1980
322 Flow-insensitive type qualifiers - Foster, Johnson, et al.
289 Subtyping recursive types - Amadio, Cardelli - 1993
272 Dependent types in practical programming - Xi, Pfenning - 1999
209 Investigations into logical deduction - Gentzen - 1969
203 Type inclusion constraints and type inference - Aiken, Wimmers - 1993
203 A Linear Logical Framework - CERVESATO, PFENNING - 2002
183 Combinatory Logic I - Curry, Feys - 1958
182 Soft typing with conditional types - Aiken, Wimmers, et al. - 1994
175 Soft typing - Cartwright, Fagan - 1991
166 A modal analysis of staged computation - Davies, Pfenning - 1996
157 Regular expression types for XML - Hosoya, Vouillon, et al. - 2000
155 The essence of Algol - Reynolds - 1981
151 Refinement types for ML - Freeman, Pfenning - 1991
150 Local type inference - Pierce, Turner
148 Call-by-name, call-by-value, and the lambda calculus - Plotkin - 1975
143 R.: A Judgmental Reconstruction of Modal Logic - Pfenning, Davies
139 CDuce: an XML-centric general-purpose language - Benzaken, Castagna, et al. - 2003
121 An ideal model for recursive polymorphic types - MacQueen, Plotkin, et al. - 1986
116 Representing monads - Filinski - 1994
115 Guarded recursive datatype constructors - Xi, Chen, et al. - 2003
104 Design of the programming language Forsythe - Reynolds - 1996
103 A practical soft type system for scheme - Wright, Cartwright - 1997
98 The principal type scheme of an object in combinatory logic - Hindley - 1969
91 First-class phantom types - Cheney, Hinze - 2003
90 A partial evaluator for the untyped lambda-calculus - Gomard, Jones - 1991
89 Simple imperative polymorphism - Wright - 1995
84 A type system equivalent to flow analysis - Palsberg, O’Keefe - 1995
80 A type-theoretic interpretation of Standard ML. Proof, language, and interaction: Essays in honor of robin milner - Harper, Stone - 2000
69 Deciding equivalence of finite tree automata - Seidl - 1990
68 Towards a theory of types in Prolog - Mishra - 1984
64 Catching bugs in the web of program invariants - Flanagan, Flatt, et al. - 1996
64 Programming with Intersection Types and Bounded Polymorphism - Pierce - 1991
64 Automatic computation of data set definitions - Reynolds - 1969
62 The pattern calculus - Jay
58 Intersection types and computational effects - Davies, Pfenning
57 Coinductive axiomatization of recursive type equality and subtyping - Brandt, Henglein - 1998
56 2003): An Effective Theory of Type Refinements - Mandelbaum, Walker, et al.
49 Functional Characters of Solvable Terms. Zeitschrift für Mathematische Logik und Grundlagen der Mathematik - Coppo, Dezani-Ciancaglini, et al. - 1981
48 Representing layered monads - Filinski - 1999
46 Implementing regular tree expressions - Aiken, Murphy - 1991
44 Semantic subtyping - Frisch, Castagna, et al. - 2002
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University