A core calculus of dependency

Notions of program dependency arise in many settings: security, partial evaluation, program slicing, and call-tracking. We argue that there is a central notion of dependency common to these settings that can be captured within a single calculus, the Dependency Core Calculus (DCC), a small extension of Moggi's computational lambda calculus. To establish this thesis, we translate typed calculi for secure information flow, binding-time analysis, slicing, and call-tracking into DCC. The translations help clarify aspects of the source calculi. We also define a semantic model for DCC and use it to give simple proofs of noninterference results for each case.

[1]  Philip Wadler,et al.  The marriage of effects and monads , 1998, ICFP '98.

[2]  Peter Thiemann,et al.  A Unified Framework for Binding-Time Analysis , 1997, TAPSOFT.

[3]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[4]  Martín Abadi,et al.  Secrecy by typing in security protocols , 1999, JACM.

[5]  Eugenio Moggi,et al.  A categorical account of two-level languages , 1997, MFPS.

[6]  Torben Amtoft,et al.  Faithful Translations between Polyvariant Flows and Polymorphic Types , 2000, ESOP.

[7]  Mads Tofte,et al.  Region-based Memory Management , 1997, Inf. Comput..

[8]  Dorothy E. Denning,et al.  A lattice model of secure information flow , 1976, CACM.

[9]  Geoffrey Smith,et al.  A Sound Type System for Secure Flow Analysis , 1996, J. Comput. Secur..

[10]  Flemming Nielson,et al.  Two-level functional languages , 1992, Cambridge tracts in theoretical computer science.

[11]  Matthias Felleisen,et al.  The semantics of program dependence , 1989, PLDI '89.

[12]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[13]  Flemming Nielson,et al.  Automatic Binding Time Analysis for a Typed lambda-Calculus , 1988, Sci. Comput. Program..

[14]  Jon G. Riecke,et al.  The SLam calculus: programming with secrecy and integrity , 1998, POPL '98.

[15]  Andrew C. Myers,et al.  JFlow: practical mostly-static information flow control , 1999, POPL '99.

[16]  Pierre Jouvelot,et al.  Effect systems with subtyping , 1995, PEPM '95.

[17]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[18]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[19]  Jens Palsberg,et al.  Trust in the λ-calculus , 1995, Journal of Functional Programming.

[20]  Claudia Eckert On security models , 1996, SEC.

[21]  Yanmei Tang Tang Systemes d'effet et interpretation abstraite pour l'analyse de flot de controle , 1994 .

[22]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[23]  Martín Abadi,et al.  Secrecy by Typing inSecurity Protocols , 1997, TACS.

[24]  Andrew C. Myers,et al.  A decentralized model for information flow control , 1997, SOSP.

[25]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

[26]  Frank Pfenning,et al.  A modal analysis of staged computation , 1996, POPL '96.

[27]  Peter J. Denning,et al.  Certification of programs for secure information flow , 1977, CACM.

[28]  Flemming Nielson,et al.  Strictness analysis and denotational abstract interpretation , 1987, POPL '87.

[29]  Olivier Danvy,et al.  A computational formalization for partial evaluation , 1996, Mathematical Structures in Computer Science.

[30]  Flemming Nielson,et al.  Automatic binding time analysis for a typed λ-calculus , 1988, POPL '88.

[31]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[32]  Ramesh Viswanathan,et al.  Isolating side effects in sequential languages , 1995, POPL '95.

[33]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[34]  C. A. R. Hoare,et al.  The Varieties of Programming Language , 1989, TAPSOFT, Vol.1.

[35]  A. Pitts INTRODUCTION TO HIGHER ORDER CATEGORICAL LOGIC (Cambridge Studies in Advanced Mathematics 7) , 1987 .

[36]  Brian T. Howard Inductive, coinductive, and pointed types , 1996, ICFP '96.

[37]  Analysis and caching of dependencies , 1996, ICFP '96.

[38]  David Sands,et al.  A Per Model of Secure Information Flow in Sequential Programs , 1999, High. Order Symb. Comput..

[39]  Matthias Felleisen,et al.  The theory and practice of first-class prompts , 1988, POPL '88.

[40]  Charles Consel,et al.  Binding time analysis for high order untyped functional languages , 1990, LISP and Functional Programming.

[41]  Carl A. Gunter,et al.  Dynamic slicing in higher-order programming languages , 1997 .

[42]  Geoffrey Smith,et al.  Secure information flow in a multi-threaded imperative language , 1998, POPL '98.