Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Michael Lienhardt is active.

Publication


Featured researches published by Michael Lienhardt.


Software and Systems Modeling | 2016

A framework for deadlock detection in core ABS

Elena Giachino; Cosimo Laneve; Michael Lienhardt

We present a framework for statically detecting deadlocks in a concurrent object-oriented language with asynchronous method calls and cooperative scheduling of method activations. Since this language features recursion and dynamic resource creation, deadlock detection is extremely complex and state-of-the-art solutions either give imprecise answers or do not scale. In order to augment precision and scalability, we propose a modular framework that allows several techniques to be combined. The basic component of the framework is a front-end inference algorithm that extracts abstract behavioral descriptions of methods, called contracts, which retain resource dependency information. This component is integrated with a number of possible different back-ends that analyze contracts and derive deadlock information. As a proof-of-concept, we discuss two such back-ends: (1) an evaluator that computes a fixpoint semantics and (2) an evaluator using abstract model checking.


formal methods for open object based distributed systems | 2012

A reversible abstract machine and its space overhead

Michael Lienhardt; Ivan Lanese; Claudio Antares Mezzina; Jean-Bernard Stefani

We study in this paper the cost of making a concurrent programming language reversible. More specifically, we take an abstract machine for a fragment of the Oz programming language and make it reversible. We show that the overhead of the reversible machine with respect to the original one in terms of space is at most linear in the number of execution steps. We also show that this bound is tight since some programs cannot be made reversible without storing a commensurate amount of information.


integrated formal methods | 2013

Deadlock Analysis of Concurrent Objects: Theory and Practice

Elena Giachino; Carlo Augusto Grazia; Cosimo Laneve; Michael Lienhardt; Peter Y. H. Wong

We present a framework for statically detecting deadlocks in a concurrent object language with asynchronous invocations and operations for getting values and releasing the control. Our approach is based on the integration of two static analysis techniques: (i) an inference algorithm to extract abstract descriptions of methods in the form of behavioral types, called contracts, and (ii) an evaluator that computes a fixpoint semantics returning a finite state model of contracts. A potential deadlock is detected when a circular dependency is found in some state of the model. We discuss the theory and the prototype implementation of our framework. Our tool is validated on an industrial case study based on the Fredhopper Access Server (FAS) developed by SDL Fredhoppper. In particular we verify one of the core concurrent components of FAS to be deadlock-free.


generative programming and component engineering | 2007

Oz/K: a kernel language for component-based open programming

Michael Lienhardt; Alan Schmitt; Jean-Bernard Stefani

Programming in an open environment remains challenging because it requires combining modularity, security, concurrency, distribution, and dynamicity. In this paper, we propose an approach to open distributed programming that exploits the notion of locality, which has been used in the past decade as a basis for several distributed process calculi such as Mobile Ambients, Dπ, and Seal. We use the locality concept as a form of component that serves as a unit of modularity, of isolation, and of passivation. Specifically, we introduce in this paper Oz/K, a kernel programming language, that adds to the Oz computation model a notion of locality borrowed from the Kell calculus. We present an operational semantics for the language and several examples to illustrate how Oz/K supports open distributed programming.


european conference on service-oriented and cloud computing | 2013

Aeolus: Mastering the Complexity of Cloud Application Deployment

Michel Catan; Roberto Di Cosmo; Antoine Eiche; Tudor Alexandru Lascu; Michael Lienhardt; Jacopo Mauro; Ralf Treinen; Stefano Zacchiroli; Gianluigi Zavattaro; Jakub Zwolakowski

Cloud computing offers the possibility to build sophisticated software systems on virtualized infrastructures at a fraction of the cost necessary just few years ago, but deploying/maintaining/reconfiguring such software systems is a serious challenge. The main objective of the Aeolus project, an initiative funded by ANR (the French “Agence Nationale de la Recherche”), is to tackle the scientific problems that need to be solved in order to ease the problem of efficient and cost-effective deployment and administration of the complex distributed architectures which are at the heart of cloud applications.


integrated formal methods | 2016

On Type Checking Delta-Oriented Product Lines

Ferruccio Damiani; Michael Lienhardt

A Software Product Line SPL is a set of similar programs generated from a common code base. Delta Oriented Programming DOP is a flexible approach to implement SPLs. Efficiently type checking an SPL i.e., checking that all its programs are well-typed is challenging. This paper proposes a novel type checking approach for DOP. Intrinsic complexity of SPL type checking is addressed by providing early detection of type errors and by reducing type checking to satisfiability of a propositional formula. The approach is tunable to exploit automatically checkable DOP guidelines for making an SPL more comprehensible and type checking more efficient. The approach and guidelines are formalized by means of a core calculus for DOP of product lines of Java programs.


formal methods | 2011

HATS abstract behavioral specification: the architectural view

Reiner Hähnle; Michiel Helvensteijn; Einar Broch Johnsen; Michael Lienhardt; Davide Sangiorgi; Ina Schaefer; Peter Y. H. Wong

The Abstract Behavioral Specification (ABS) language is a formal, executable, object-oriented, concurrent modeling language intended for behavioral modeling of complex software systems that exhibit a high degree of variation, such as software product lines. We give an overview of the architectural aspects of ABS: a feature-driven development workflow, a formal notion of deployment components for specifying environmental constraints, and a dynamic component model that is integrated into the language. We employ an industrial case study to demonstrate how the various aspects work together in practice.


principles and practice of declarative programming | 2015

Static analysis of cloud elasticity

Abel Garcia; Cosimo Laneve; Michael Lienhardt

We propose a static analysis technique that computes upper bounds of virtual machine usages in a concurrent language with explicit acquire and release operations of virtual machines. In our language it is possible to delegate other (ad-hoc or third party) concurrent code to release virtual machines (by passing them as arguments of invocations). Our technique is modular and consists of (i) a type system associating programs with behavioural types that records relevant information for resource usage (creations, releases, and concurrent operations), (ii) a translation function that takes behavioural types and return cost equations, and (iii) an automatic off-the-shelf solver for the cost equations. A soundness proof of the type system establishes the correctness of our technique with respect to the cost equations. We have experimentally evaluated our technique using a cost analysis solver and we report some results. The experiments show that our analysis allows us to derive bounds for programs that are better than other techniques, such as those based on amortized analysis.


european conference on service-oriented and cloud computing | 2015

On the Integration of Automatic Deployment into the ABS Modeling Language

Stijn de Gouw; Michael Lienhardt; Jacopo Mauro; Behrooz Nobakht; Gianluigi Zavattaro

In modern software systems, deployment is an integral and critical part of application development (see, e.g., the DevOps approach to software development). Nevertheless, deployment is usually overlooked at the modeling level, thus losing the possibility to perform deployment conscious decisions during the early stages of development. In this paper, we address the problem of promoting deployment as an integral part of modeling, by focusing on the Abstract Behavioral Specification (ABS) language used for the specification of models of systems composed of concurrent objects consuming resources provided by deployment components. We extend ABS with class annotations expressing the resource requirements of the objects of that class. Then we define a tool that, starting from a high-level declaration of the desired system, computes a model instance of such system that optimally distributes objects over available deployment components.


leveraging applications of formal methods | 2012

Conflict detection in delta-oriented programming

Michael Lienhardt; Dave Clarke

This paper studies the notion of conflict for a variant of Delta-Oriented Programming (DOP) without features, separating out the notions of hard and soft conflict. Specifically, we define a language for this subset of DOP and give a precise, formal definitions of these notions. We then define a type system based on row-polymorphism that ensures that the computation of a well-typed product will always succeed and has an unambiguous result.

Collaboration


Dive into the Michael Lienhardt's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Eduard Kamburjan

Technische Universität Darmstadt

View shared research outputs
Researchain Logo
Decentralizing Knowledge