ACM SIGPLAN Notices · 2004 · 59 citations · 21 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesTheory Of ComputationControl-flow AnalysisData-flow AnalysisRecursion TheoryType CheckingType SystemsLambda CalculusMonadsParametric PolymorphismParametricityPolymorphic Type SystemsPolymorphic TypesPolymorphism StudiesRecursion
Abadi et al. introduced the dependency core calculus (DCC) as a unifying framework to study many important program analyses such as binding time, information flow, slicing, and function call tracking. DCC uses a lattice of monads and a nonstandard typing rule for their associated bind operations to describe the dependency of computations in a program. Abadi et al. proved a noninterference theorem that establishes the correctness of DCC's type system and thus the correctness of the type systems for the analyses above.In this paper, we study the relationship between DCC and the Girard-Reynolds polymorphic lambda calculus (System F). We encode the recursion-free fragment of DCC into F via a type-directed translation. Our main theoretical result is that, following from the correctness of the translation, the parametricity theorem for F implies the noninterference theorem for DCC. In addition, the translation provides insights into DCC's type system and suggests implementation strategies of dependency calculi in polymorphic languages.
21
Notions of computation and monads
Eugenio Moggi · Information and Computation · 1991 · 1.7K citations
Philip Wadler · 1989 · 776 citations
Types, Abstraction and Parametric Polymorphism.
John Reynolds · IFIP Congress · 1983 · 771 citations