IT University of Copenhagen

Displaying 1-14 of 14 results

  • White Papers // Jan 2012

    A Concurrent Logical Relation

    The authors 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. They show how to use their model to verify a number of interesting program...

    Provided By IT University of Copenhagen

  • White Papers // Jan 2012

    Views: Compositional Reasoning for Concurrent Programs

    The authors present a framework for reasoning compositionally about concurrent programs. At its core is the notion of a view: an abstraction of the state that takes account of the possible interference due to other threads. Threads' views are composable, and an update to the state by one thread must...

    Provided By IT University of Copenhagen

  • White Papers // Nov 2011

    Formalized Veri Cation of Snapshotable Trees: Separation and Sharing

    The authors use separation logic to specify and verify a Java program that implements snapshotable search trees, fully formalizing the specification and verification in the Coq proof assistant. They achieve local and modular reasoning about a tree and its snapshots and their iterators, although the implementation involves shared mutable heap...

    Provided By IT University of Copenhagen

  • White Papers // Sep 2011

    Programming Services With Correlation Sets

    Correlation sets define a powerful mechanism for routing incoming communications to the correct running session within a server, by inspecting the content of the received messages. The authors present a language for programming services based on correlation sets taking into account key aspects of service-oriented systems, such as distribution, loose...

    Provided By IT University of Copenhagen

  • White Papers // May 2011

    Verifying Object-Oriented Programs With Higher-Order Separation Logic in Coq

    The authors present a shallow Coq embedding of a higher-order separation logic with nested triples for an object-oriented programming language. Moreover, they develop novel specification and proof patterns for reasoning in higher-order separation logic with nested triples about programs that use interfaces and interface inheritance. In particular, they show how...

    Provided By IT University of Copenhagen

  • White Papers // Feb 2011

    A New Data Layout For Set Intersection on GPUs

    Set intersection is the core in a variety of problems, e.g. frequent itemset mining and sparse boolean matrix multiplication. It is well-known that large speed gains can, for some computational problems, be obtained by using a Graphics Processing Unit (GPU) as a massively parallel computing device. However, GPUs require highly...

    Provided By IT University of Copenhagen

  • White Papers // Aug 2010

    Formal Semantics and Implementation of BPMN 2.0 Inclusive Gateways

    The authors present the first direct formalization of the semantics of inclusive gateways as described in the Business Process Modeling Notation (BPMN) 2.0 Beta 1 specification. The formal semantics is given for a minimal subset of BPMN 2.0 containing just the inclusive and exclusive gateways and the start and stop...

    Provided By IT University of Copenhagen

  • White Papers // Jul 2010

    A Step-Indexed Kripke Model of Hidden State Via Recursive Properties on Recursively Defined Metric Spaces

    Frame and anti-frame rules have been proposed as proof rules for modular reasoning about programs. Frame rules allow one to hide irrelevant parts of the state during verification, whereas the anti-frame rule allows one to hide local state from the context. The authors give a possible worlds semantics for Chargueraud...

    Provided By IT University of Copenhagen

  • White Papers // Jun 2009

    Compiling Spreadsheet-Defined Functions

    Spreadsheets are ubiquitous end-user programming tools, but lack even the simplest abstraction mechanism: The ability to encapsulate a computation as a function. This paper presents a solution in the form of sheet-defined functions, which are built from well-known spreadsheet cells, formulas and references. They should be understandable to most spreadsheet...

    Provided By IT University of Copenhagen

  • White Papers // May 2009

    Logical Step-Indexed Logical Relations

    The authors show how to reason about "Step-indexed" logical relations in an abstract way, avoiding the tedious, error-prone, and proof-obscuring step-index arithmetic that seems superficially to be an essential element of the method. Specifically, they define a logic LSLR, which is inspired by Plotkin and Abadi's logic for parametricity, but...

    Provided By IT University of Copenhagen

  • White Papers // Jan 2009

    Realizability Semantics of Parametric Polymorphism, General References, and Recursive Types

    The authors present a realizability model for a call-by-value, higher-order programming language with parametric polymorphism, general first-class references, and recursive types. The main novelty is a relational interpretation of open types (as needed for parametricity reasoning) that include general reference types. The interpretation uses a new approach to modeling references....

    Provided By IT University of Copenhagen

  • White Papers // May 2008

    Programming Language Concepts for Software Developers

    This note describes and motivates the current plans for an undergraduate course on programming language concepts for software development students. The paper describes the competences one expects students to acquire as well as the topics covered by the course. The paper plans to use C# and Scheme as instruction languages,...

    Provided By IT University of Copenhagen

  • White Papers // Apr 2008

    A Simple Model of Separation Logic for Higher-Order Store

    Separation logic is a Hoare-style logic for reasoning about pointer-manipulating programs. Its core ideas have recently been extended from low-level to richer, high-level languages. In this paper, the authors develop a new semantics of the logic for a programming language where code can be stored (i.e., with higher-order store). The...

    Provided By IT University of Copenhagen

  • White Papers // Oct 2006

    A Pattern-Based Approach to Business Process Modeling and Implementation in Web Services

    There are often three groups of experts involved in the design and implementation of business processes in a service oriented enterprise; business analysts, solution architects and system developers. They collaborate with each other to transform a high-level design created by a business analyst to a final executable workflow, based on...

    Provided By IT University of Copenhagen

  • White Papers // Oct 2006

    A Pattern-Based Approach to Business Process Modeling and Implementation in Web Services

    There are often three groups of experts involved in the design and implementation of business processes in a service oriented enterprise; business analysts, solution architects and system developers. They collaborate with each other to transform a high-level design created by a business analyst to a final executable workflow, based on...

    Provided By IT University of Copenhagen

  • White Papers // May 2008

    Programming Language Concepts for Software Developers

    This note describes and motivates the current plans for an undergraduate course on programming language concepts for software development students. The paper describes the competences one expects students to acquire as well as the topics covered by the course. The paper plans to use C# and Scheme as instruction languages,...

    Provided By IT University of Copenhagen

  • White Papers // Jun 2009

    Compiling Spreadsheet-Defined Functions

    Spreadsheets are ubiquitous end-user programming tools, but lack even the simplest abstraction mechanism: The ability to encapsulate a computation as a function. This paper presents a solution in the form of sheet-defined functions, which are built from well-known spreadsheet cells, formulas and references. They should be understandable to most spreadsheet...

    Provided By IT University of Copenhagen

  • White Papers // Feb 2011

    A New Data Layout For Set Intersection on GPUs

    Set intersection is the core in a variety of problems, e.g. frequent itemset mining and sparse boolean matrix multiplication. It is well-known that large speed gains can, for some computational problems, be obtained by using a Graphics Processing Unit (GPU) as a massively parallel computing device. However, GPUs require highly...

    Provided By IT University of Copenhagen

  • White Papers // May 2011

    Verifying Object-Oriented Programs With Higher-Order Separation Logic in Coq

    The authors present a shallow Coq embedding of a higher-order separation logic with nested triples for an object-oriented programming language. Moreover, they develop novel specification and proof patterns for reasoning in higher-order separation logic with nested triples about programs that use interfaces and interface inheritance. In particular, they show how...

    Provided By IT University of Copenhagen

  • White Papers // Nov 2011

    Formalized Veri Cation of Snapshotable Trees: Separation and Sharing

    The authors use separation logic to specify and verify a Java program that implements snapshotable search trees, fully formalizing the specification and verification in the Coq proof assistant. They achieve local and modular reasoning about a tree and its snapshots and their iterators, although the implementation involves shared mutable heap...

    Provided By IT University of Copenhagen

  • White Papers // Jan 2012

    A Concurrent Logical Relation

    The authors 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. They show how to use their model to verify a number of interesting program...

    Provided By IT University of Copenhagen

  • White Papers // Jan 2012

    Views: Compositional Reasoning for Concurrent Programs

    The authors present a framework for reasoning compositionally about concurrent programs. At its core is the notion of a view: an abstraction of the state that takes account of the possible interference due to other threads. Threads' views are composable, and an update to the state by one thread must...

    Provided By IT University of Copenhagen

  • White Papers // Jul 2010

    A Step-Indexed Kripke Model of Hidden State Via Recursive Properties on Recursively Defined Metric Spaces

    Frame and anti-frame rules have been proposed as proof rules for modular reasoning about programs. Frame rules allow one to hide irrelevant parts of the state during verification, whereas the anti-frame rule allows one to hide local state from the context. The authors give a possible worlds semantics for Chargueraud...

    Provided By IT University of Copenhagen

  • White Papers // May 2009

    Logical Step-Indexed Logical Relations

    The authors show how to reason about "Step-indexed" logical relations in an abstract way, avoiding the tedious, error-prone, and proof-obscuring step-index arithmetic that seems superficially to be an essential element of the method. Specifically, they define a logic LSLR, which is inspired by Plotkin and Abadi's logic for parametricity, but...

    Provided By IT University of Copenhagen

  • White Papers // Jan 2009

    Realizability Semantics of Parametric Polymorphism, General References, and Recursive Types

    The authors present a realizability model for a call-by-value, higher-order programming language with parametric polymorphism, general first-class references, and recursive types. The main novelty is a relational interpretation of open types (as needed for parametricity reasoning) that include general reference types. The interpretation uses a new approach to modeling references....

    Provided By IT University of Copenhagen

  • White Papers // Apr 2008

    A Simple Model of Separation Logic for Higher-Order Store

    Separation logic is a Hoare-style logic for reasoning about pointer-manipulating programs. Its core ideas have recently been extended from low-level to richer, high-level languages. In this paper, the authors develop a new semantics of the logic for a programming language where code can be stored (i.e., with higher-order store). The...

    Provided By IT University of Copenhagen

  • White Papers // Sep 2011

    Programming Services With Correlation Sets

    Correlation sets define a powerful mechanism for routing incoming communications to the correct running session within a server, by inspecting the content of the received messages. The authors present a language for programming services based on correlation sets taking into account key aspects of service-oriented systems, such as distribution, loose...

    Provided By IT University of Copenhagen

  • White Papers // Aug 2010

    Formal Semantics and Implementation of BPMN 2.0 Inclusive Gateways

    The authors present the first direct formalization of the semantics of inclusive gateways as described in the Business Process Modeling Notation (BPMN) 2.0 Beta 1 specification. The formal semantics is given for a minimal subset of BPMN 2.0 containing just the inclusive and exclusive gateways and the start and stop...

    Provided By IT University of Copenhagen