Leuven, Belgium
Leuven, Belgium

Time filter

Source Type

Proenca J.,University of Minho | Clarke D.,iMinds DistriNet
Communications in Computer and Information Science | Year: 2013

This paper studies complex coordination mechanisms based on constraint satisfaction. In particular, it focuses on data-sensitive connectors from the Reo coordination language. These connectors restrict how and where data can flow between loosely-coupled components taking into account the data being exchanged. Existing engines for Reo provide a very limited support for data-sensitive connectors, even though data constraints are captured by the original semantic models for Reo. When executing data-sensitive connectors, coordination constraints are not exhaustively solved at compile time but at runtime on a per-need basis, powered by an existing SMT (satisfiability modulo theories) solver. To deal with a wider range of data types and operations, we abstract data and reduce the original constraint satisfaction problem to a SAT problem, based on a variation of predicate abstraction. We show soundness and completeness of the abstraction mechanism for well-defined constraints, and validate our approach by evaluating the performance of a prototype implementation with different test cases, with and without abstraction. © Springer-Verlag Berlin Heidelberg 2013.


Jacobs B.,IMinds DistriNet | Bosnacki D.,TU Eindhoven | Kuiper R.,TU Eindhoven
Leibniz International Proceedings in Informatics, LIPIcs | Year: 2015

We propose an approach for the modular specification and verification of total correctness properties of object-oriented programs. We start from an existing program logic for partial correctness based on separation logic and abstract predicate families. We extend it with call permissions qualified by an arbitrary ordinal number, and we define a specification style that properly hides implementation details, based on the ideas of using methods and bags of methods as ordinals, and exposing the bag of methods reachable from an object as an abstract predicate argument. These enable each method to abstractly request permission to call all methods reachable by it any finite number of times, and to delegate similar permissions to its callees. We illustrate the approach with several examples. © Bart Jacobs, Dragan Bosnacki, and Ruurd Kuiper;.


Patrignani M.,iMinds DistriNet | Clarke D.,Uppsala University
Computer Languages, Systems and Structures | Year: 2015

Abstract Protected module architectures (PMAs) are isolation mechanisms of emerging processors that provide security building blocks for modern software systems. Reasoning about these building blocks means reasoning about elaborate assembly code, which can be very complex due to the loose structure of the code. One way to overcome this complexity is providing the code with a well-structured semantics. This paper presents one such semantics, namely a fully abstract trace semantics, for an assembly language enhanced with PMA. The trace semantics represents the behaviour of protected assembly code with simple abstractions, unburdened by low-level details, at the maximum degree of precision. Furthermore, it captures the capabilities of attackers to protected code and simplifies the formulation of a secure compiler targeting PMA-enhanced assembly language. © 2015 Elsevier Ltd.


Patrignani M.,IMinds DistriNet | Clarke D.,IMinds DistriNet
Proceedings of the ACM Symposium on Applied Computing | Year: 2014

Many software systems adopt isolation mechanisms of modern processors as software security building blocks. Reasoning about these building blocks means reasoning about elaborate assembly code, which can be very complex due to the loose structure of the code. A way to overcome this complexity is giving the code a more structured semantics. This paper presents one such semantics, namely a fully abstract trace semantics, for an assembly language enhanced with protection mechanisms of modern processors. The trace semantics represents the behaviour of protected assembly code with simple abstractions, unburdened by low-level details, at the maximum degree of precision. Additionally, it captures the capabilities of attackers to protected software and simplifies providing a secure compiler targeting that language. Copyright 2014 ACM.


Jacobs B.,IMinds DistriNet
Proceedings of the 18th Workshop on Formal Techniques for Java-Like Programs, FTfJP 2016 - Co-located with ECOOP 2016 | Year: 2016

We describe our partial solutions, using our VeriFast separation-logic based tool for modular formal verification of C and Java programs, to Challenges 2 and 3 of the VerifyThis 2016 Verification Competition, involving the verification of crash-freedom and certain correctness properties of code fragments implementing constant-space tree traversal and a tree barrier. © 2016 ACM.


Clarke D.,IMinds DistriNet | Ostlund J.,Uppsala University | Sergey I.,IMinds DistriNet | Wrigstad T.,Uppsala University
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | Year: 2013

Ownership types were devised nearly 15 years ago to provide a stronger notion of protection to object-oriented programming languages. Rather than simply protecting the fields of an object from external access, ownership types protect also the objects stored in the fields, thereby enabling an object to claim (exclusive) ownership of and access to other objects. Furthermore, this notion is statically enforced by now-standard type-checking techniques. Originating as the formalisation of the core of Flexible Alias Protection, ownership types have since been extended and adapted in many ways, and the notion of protection provided has been refined into topological and encapsulation dimensions. This article surveys the various flavours of ownership types that have been developed over the years, along with the many applications and other developments. The chapter concludes by suggesting some directions for future work. © Springer-Verlag Berlin Heidelberg 2013.


Naqvi N.Z.,IMinds DistriNet | Vansteenkiste-Muylle T.,IMinds DistriNet | Berbers Y.,IMinds DistriNet
Proceedings - IEEE Symposium on Computers and Communications | Year: 2016

Mobile Cloud Computing (MCC) addresses the resource limitations of the mobile devices, but with a hidden cost depending on the requirements of the mobile applications. In this work, we investigate the proclaimed benefits of MCC for smart phones when thin clients are used to access remote cloud services, especially for applications that capitalize on the data generated from the mobile device. The added value of MCC can be hampered if the power of today's leading-edge mobile technology is not estimated. The opportunistic use of cloud is inevitable for the maximum benefit of the devices. Our experiments show that many resource and performance trade-offs exist and the current deployment schemes for these kind of applications are rough around the edges. There is a need for an automated deployment decision support for mobile applications to exploit the benefits of the cloud as well as the power of today's high-end mobile devices. © 2015 IEEE.


Patrignani M.,IMinds DistriNet | Clarke D.,IMinds DistriNet | Piessens F.,IMinds DistriNet
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | Year: 2013

A fully abstract compilation scheme prevents the security features of the high-level language from being bypassed by an attacker operating at a particular lower level. This paper presents a fully abstract compilation scheme from a realistic object-oriented language with dynamic memory allocation, cross-package inheritance, exceptions and inner classes to untyped machine code. Full abstraction of the compilation scheme relies on enhancing the low-level machine model with a fine-grained, program counter-based memory access control mechanism. This paper contains the outline of a formal proof of full abstraction of the compilation scheme. Measurements of the overhead introduced by the compilation scheme indicate that it is negligible. © Springer International Publishing 2013.


Van Dooren M.,iMinds DistriNet | Clarke D.,iMinds DistriNet | Jacobs B.,iMinds DistriNet
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | Year: 2013

Classes are fundamental elements in object-oriented programming, but they cannot be assembled in a truly flexible manner from other classes. As a result, cross-cutting structural code for implementing associations, graph structures, and so forth must be implemented over and over again. Subobject-oriented programming overcomes this problem by augmenting object-oriented programming with subobjects. Subobjects can be used as buildings blocks to configure and compose classes without suffering from name conflicts. This paper gives an overview of subobject-oriented programming and introduces mechanisms for subobject initialization, navigation of the subobject structure in super calls, and subobject refinement. Subobject-oriented programming has been implemented as a language extension to Java with Eclipse support and as a library in Python. © 2013 Springer-Verlag.


Proenca J.,iMinds DistriNet | Clarke D.,iMinds DistriNet
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | Year: 2013

Interaction constraints are an expressive formalism for describing coordination patterns, such as those underlying the coordination language Reo, that can be efficiently implemented using constraint satisfaction technologies such as SAT and SMT solvers. Existing implementations of interaction constraints interact with external components only in a very simple way: interaction occurs only between rounds of constraint satisfaction. What is missing is any means for the constraint solver to interact with the external world during constraint satisfaction. This paper introduces interactive interaction constraints which enable interaction during constraint satisfaction, and in turn increase the expressiveness of coordination languages based on interaction constraints by allowing a larger class of operations to be considered to occur atomically. We describe how interactive interaction constraints are implemented and detail a number of strategies for guiding constraint solvers. The benefit of interactive interaction constraints is illustrated using two examples, a hotel booking system and a system of transactions with compensations. From a general perspective, our work describes how to open up and exploit constraint solvers as the basis of a coordination engine. © 2013 IFIP International Federation for Information Processing.

Loading IMinds DistriNet collaborators
Loading IMinds DistriNet collaborators