Network


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

Hotspot


Dive into the research topics where Lars-Åke Fredlund is active.

Publication


Featured researches published by Lars-Åke Fredlund.


international conference on functional programming | 2007

McErlang: a model checker for a distributed functional programming language

Lars-Åke Fredlund; Hans Svensson

We present a model checker for verifying distributed programs written in the Erlang programming language. Providing a model checker for Erlang is especially rewarding since the language is by now being seen as a very capable platform for developing industrial strength distributed applications with excellent failure tolerance characteristics. In contrast to most other Erlang verification attempts, we provide support for a very substantial part of the language. The model checker has full Erlang data type support, support for general process communication, node semantics (inter-process behave subtly different from intra-process communication), fault detection and fault tolerance through process linking, and can verify programs written using the OTP Erlang component library (used by most modern Erlang programs). As the model checking tool is itself implemented in Erlang we benefit from the advantages that a (dynamically typed) functional programming language offers: easy prototyping and experimentation with new verification algorithms, rich executable models that use complex data structures directly programmed in Erlang, the ability to treat executable models interchangeably as programs (to be executed directly by the Erlang interpreter) and data, and not least the possibility to cleanly structure and to cleanly combine various verification sub-tasks. In the paper we discuss the design of the tool and provide early indications on its performance.


International Journal on Software Tools for Technology Transfer | 2003

A verification tool for ERLANG

Lars-Åke Fredlund; Dilian Gurov; Thomas Noll; Mads Dam; Thomas Arts; Gennady Chugunov

This paper presents an overview of the main results of the project “Verification of ERLANG Programs ”, which is funded by the Swedish Business Development Agency (NUTEK) and by Ericsson within the ASTEC (Advanced Software TEChnology) initiative. Its main outcome is the ERLANG Verification Tool (EVT), a theorem prover which assists in obtaining proofs that ERLANG applications satisfy their correctness requirements formulated as behavioural properties in a modal logic with recursion. We give a summary of the verification framework as supported by EVT, discuss reasoning principles essential for successful proofs such as inductive and compositional reasoning, and an efficient treatment of side-effect-free code. The experiences of applying the tool in an industrial case study are summarised, and an approach for supporting verification in the presence of program libraries is outlined.EVT is essentially a classical proof assistant, or theorem-proving tool, requiring users to intervene in the proof process at crucial steps such as stating program invariants. However, the tool offers considerable support for automatic proof discovery through higher-level tactics tailored to the particular task of the verification of ERLANG programs. In addition, a graphical interface permits easy navigation through proof tableaux, proof reuse, and meaningful feedback about the current proof state, to assist users in taking informed proof decisions.


annual erlang workshop | 2007

A more accurate semantics for distributed erlang

Hans Svensson; Lars-Åke Fredlund

In order to formally reason about distributed Erlang systems, it is necessary to have a formal semantics. In a previous paper we have proposed such a semantics for distributed Erlang. However, recent work with a model checker for Erlang revealed that the previous attempt wasnot good enough. In this paper we present a more accurate semantics for distributed Erlang. The more accurate semantics includes several modifications and additions to the semantics for distributed Erlang proposed by Claessen and Svensson in 2005, which in turn is an extension to Fredlunds formal single-node semantics for Erlang. Themost distinct addition to the previous semantics is the possibility to correctly model disconnected nodes.


annual erlang workshop | 2010

A unified semantics for future Erlang

Hans Svensson; Lars-Åke Fredlund; Clara Benac Earle

The formal semantics of Erlang is a bit too complicated to be easily understandable. Much of this complication stems from the desire to accurately model the current implementations (Erlang/OTP R11-R14), which include features (and optimizations) developed during more than two decades. The result is a two-tier semantics where systems, and in particular messages, behave differently in a local and a distributed setting. With the introduction of multi-core hardware, multiple run-queues and efficient SMP support, the boundary between local and distributed is diffuse and should ultimately be removed. In this paper we develop a new, much cleaner semantics, for such future implementations of Erlang. We hope that this paper can stimulate some much needed debate regarding a number of poorly understood features of current and future implementations of Erlang.


programming multi agent systems | 2012

eJason: An Implementation of Jason in Erlang

Álvaro Fernández Díaz; Clara Benac Earle; Lars-Åke Fredlund

In this paper we describe eJason, a prototype implementation of Jason, the well-known agent-oriented programming language, in Erlang, a concurrent functional programming language. The reason for choosing Erlang as the implementation vehicle is the surprising number of similarities between Jason and Erlang, e.g., both have their syntactical roots in logic programming, and share an actor-based process and communication model. Moreover, the Erlang runtime system implements lightweight processes and fast message passing between processes. Thus, by mapping Jason agents and agent-to-agent communication onto Erlang processes and Erlang process-to-process communication, we can create a very high-performing Jason implementation, potentially capable of supporting up to a hundred thousand concurrent actors. In this paper we describe in detail the implementation of Jason in Erlang, and provide early feedback on the performance of the implementation.


formal methods | 2009

Property-based testing: the ProTest project

John Derrick; Neil Walkinshaw; Thomas Arts; Clara Benac Earle; Francesco Cesarini; Lars-Åke Fredlund; Víctor M. Gulías; John Hughes; Simon J. Thompson

The ProTest project is an FP7 STREP on property based testing. The purpose of the project is to develop software engineering approaches to improve reliability of service-oriented networks; support fault-finding and diagnosis based on specified properties of the system. And to do so we will build automated tools that will generate and run tests, monitor execution at run-time, and log events for analysis. The Erlang / Open Telecom Platform has been chosen as our initial implementation vehicle due to its robustness and reliability within the telecoms sector. It is noted for its success in the ATM telecoms switches by Ericsson, one of the project partners, as well as for multiple other uses such as in facebook, yahoo etc. In this paper we provide an overview of the project goals, as well as detailing initial progress in developing property based testing techniques and tools for the concurrent functional programming language Erlang.


annual erlang workshop | 2005

Verifying fault-tolerant Erlang programs

Clara Benac Earle; Lars-Åke Fredlund; John Derrick

In this paper we target the verification of fault tolerant aspects of distributed applications written in Erlang. Erlang is unusual in several respects. First, it is one of a few functional languages that is used in industry. Secondly the programming language contains support for concurrency and distribution as well as including constructs for handling fault-tolerance.Erlang programmers, of course, mostly work with ready-made language components. Our approach to verification of fault tolerance is to verify systems built using two central components of most Erlang software, a generic server component with fault tolerance handling, and a supervisor component that restarts failed processes.To verify Erlang programs built using these components we automatically translate them into processes of the μCRL process algebra, generate their state spaces, and use a model checker to determine whether they satisfy correctness properties specified in the μ-calculus.The key observation of this paper is that, due to the usage of these higher-level design patterns (supervisors and generic servers) that structure process communication and fault recovery, the state space generated from a Erlang program, even with failures occurring, is relatively small, and can be generated automatically. Moreover the method is independent from the actual Erlang program studied, and is thus reusable.We demonstrate the approach in a case study where a server, built using the generic server component, implements a locking service for a number of client processes, and show that the server tolerates client failures.


international conference on web services | 2014

Property-Based Testing of JSON Based Web Services

Lars-Åke Fredlund; Clara Benac Earle; Ángel Herranz; Julio Mariño

This article describes a systematic approach to testing behavioural aspects of Web Services that communicate using the JSON data format. As a key component, the Quviq QuickCheck property-based testing tool is used to automatically generate a large number of test cases from an abstract description of the service behaviour in the form of a finite state machine. The same behavioural description is also used to decide whether the execution of a test case is successful or not. To generate random JSON data for populating tests we have developed a new library, jsongen, which given a characterisation of the JSON data as a JSON schema, automatically derives a QuickCheck generator which is capable of generating an infinite number of JSON values that validate against the schema.


formal methods for open object based distributed systems | 2012

Verification of timed erlang programs using mcerlang

Clara Benac Earle; Lars-Åke Fredlund

There is a large number of works that apply model checking to timed specifications, however, there are far fewer attempts at model checking concurrent programs for which correct timed behaviour is crucial. In this work we explore the formal verification of timed programs written in the Erlang concurrent programming language, in its full complexity, using the McErlang model checker. We have extended the McErlang model checker with a timed semantics, similar to the timed semantics Lamport has developed for TLA and TLC, but with a few notable differences. In the paper we present the resulting semantics, its implementation in McErlang, and evaluate it using a number of examples. Among the examples is a process supervision component for controlling the processes in an Erlang application, which provides fault-tolerance.


annual erlang workshop | 2007

Programming distributed erlang applications: pitfalls and recipes

Hans Svensson; Lars-Åke Fredlund

We investigate the distributed part of the Erlang programminglanguage, with an aim to develop robust distributed systems andalgorithms running on top of Erlang runtime systems. Although the stepto convert an application running on a single node to a fullydistributed (multi-node) application is deceptively simple (changingcalls to spawn so that processes are spawned on differentnodes), there are some corner cases in the Erlang language and APIwhere the introduction of distribution can cause problems. In thispaper we discuss a number of such pitfalls, where the semantics ofcommunicating processes differs significantly depending if theprocesses reside on the same node or not, we also provide someguidelines for safe programming of distributed systems.

Collaboration


Dive into the Lars-Åke Fredlund's collaboration.

Top Co-Authors

Avatar

Clara Benac Earle

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Julio Mariño

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Ángel Herranz

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Hans Svensson

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Guillem Marpons

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Manuel Carro

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar

John Derrick

University of Sheffield

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge