Hybrid Type Checking

被引:53
作者
Knowles, Kenneth [1 ]
Flanagan, Cormac [1 ]
机构
[1] Univ Calif Santa Cruz, Dept Comp Sci, Santa Cruz, CA 95064 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2010年 / 32卷 / 02期
基金
美国国家科学基金会;
关键词
Languages; Theory; Verification; Type systems; contracts; static checking; dynamic checking;
D O I
10.1145/1667048.1667051
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Traditional static type systems are effective for verifying basic interface specifications. Dynamically checked contracts support more precise specifications, but these are not checked until runtime, resulting in incomplete detection of defects. Hybrid type checking is a synthesis of these two approaches that enforces precise interface specifications, via static analysis where possible, but also via dynamic checks where necessary. This article explores the key ideas and implications of hybrid type checking, in the context of the lambda-calculus extended with contract types, that is, with dependent function types and with arbitrary refinements of base types.
引用
收藏
页数:34
相关论文
共 55 条
  • [1] ABADI M, 1989, CONFERENCE RECORD OF THE SIXTEENTH ANNUAL ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, P213, DOI 10.1145/75277.75296
  • [2] Agarwal R, 2004, LECT NOTES COMPUT SC, V2937, P149
  • [3] Aiken Alexander., 1994, P 21 ACM SIGPLAN SIG, P163, DOI DOI 10.1145/174675.177847
  • [4] [Anonymous], P C PROGR LANG DES I
  • [5] [Anonymous], 2002, ACM SIGPLAN NOTICES, DOI [10.1145/503272.503286, DOI 10.1145/565816.503286]
  • [6] Augustsson L., 1998, Proceedings of the third ACM SIGPLAN international conference on Functional programming, ICFP '98, P239
  • [7] BLEI D, 2000, VAMPYRE
  • [8] Sound and complete models of contracts
    Blume, Matthias
    McAllester, David
    [J]. JOURNAL OF FUNCTIONAL PROGRAMMING, 2006, 16 : 375 - 414
  • [9] INHERITANCE AS IMPLICIT COERCION
    BREAZUTANNEN, V
    COQUAND, T
    GUNTER, CA
    SCEDROV, A
    [J]. INFORMATION AND COMPUTATION, 1991, 93 (01) : 172 - 221
  • [10] BURDY L, 2003, 8 INT WORKSH FORM ME, V80, P73