DROPS (Schloss Dagstuhl – Leibniz Center for Informatics) · 2012 · 24 citations · 22 references
ComputingComputer ScienceComputer SystemsFormal MethodsParallel ComputingProgramming LanguagesConcurrency VerificationConcurrent ModelingConcurrent ProgrammingData-flow AnalysisType CheckingType SystemsConcurrency SemanticsConcurrent Program VerificationDynamic Memory AllocationDynamic Memory ManagementHigher-order FunctionsMemory AllocationParallelizationTransformations
We present a logical relation for showing the correctness of program transformations based on a new type-and-effect system for a concurrent extension of an ML-like language with higher-order functions, higher-order store and dynamic memory allocation. We show how to use our model to verify a number of interesting program transformations that rely on effect annotations. In particular, we prove a Parallelization Theorem, which expresses when it is sound to run two expressions in parallel instead of sequentially. The conditions are expressed solely in terms of the types and effects of the expressions. To the best of our knowledge, this is the first such result for a concurrent higher-order language with higher-order store and dynamic memory allocation.
22
Resources, concurrency, and local reasoning
Peter W. O’Hearn · Theoretical Computer Science · 2007 · 558 citations
Jan Lucassen, David K. Gifford · 1988 · 480 citations
Integrating functional and imperative programming
David K. Gifford, John M. Lucassen · 1986 · 226 citations
State-dependent representation independence
Amal Ahmed, Derek Dreyer, Andreas Rossberg · 2009 · 181 citations