24,323 research outputs found
Type and Behaviour Reconstruction for Higher-Order Concurrent Programs
In this paper we develop a sound and complete type and behaviour inference algorithm for a fragment of CML (Standard ML with primitives for concurrency). Behaviours resemble terms of a process algebra and yield a concise representation of the communications taking place during execution; types are mostly as usual except that function types and ``delayed communication types'' are labelled by behaviours expressing the communications that will take place if the function is applied or the delayed action is activated. The development of the present paper improves a previously published algorithm in achieving completeness as well as soundness; this is due to an alternative strategy for generalising over types and behaviours
Static Safety for an Actor Dedicated Process Calculus by Abstract Interpretation
The actor model eases the definition of concurrent programs with non uniform
behaviors. Static analysis of such a model was previously done in a data-flow
oriented way, with type systems. This approach was based on constraint set
resolution and was not able to deal with precise properties for communications
of behaviors. We present here a new approach, control-flow oriented, based on
the abstract interpretation framework, able to deal with communication of
behaviors. Within our new analyses, we are able to verify most of the previous
properties we observed as well as new ones, principally based on occurrence
counting
The role of concurrency in an evolutionary view of programming abstractions
In this paper we examine how concurrency has been embodied in mainstream
programming languages. In particular, we rely on the evolutionary talking
borrowed from biology to discuss major historical landmarks and crucial
concepts that shaped the development of programming languages. We examine the
general development process, occasionally deepening into some language, trying
to uncover evolutionary lineages related to specific programming traits. We
mainly focus on concurrency, discussing the different abstraction levels
involved in present-day concurrent programming and emphasizing the fact that
they correspond to different levels of explanation. We then comment on the role
of theoretical research on the quest for suitable programming abstractions,
recalling the importance of changing the working framework and the way of
looking every so often. This paper is not meant to be a survey of modern
mainstream programming languages: it would be very incomplete in that sense. It
aims instead at pointing out a number of remarks and connect them under an
evolutionary perspective, in order to grasp a unifying, but not simplistic,
view of the programming languages development process
Type systems for distributed programs: session communication
Distributed systems are everywhere around us and guaranteeing their correctness is of paramount importance. It is natural to expect that these systems interact and communicate among them to achieve a common task.
In this work, we develop techniques based on types and type systems for the verification of correctness, consistency and safety properties related to communication in complex distributed systems. We study advanced safety properties related to communication, like deadlock or lock freedom and progress. We study session types in the pi-calculus describing distributed systems and communication-centric computation. Most importantly, we de- fine an encoding of the session pi-calculus into the standard typed pi-calculus in order to understand the expressive power of these concurrent calculi. We show how to derive in the session pi-calculus basic properties, like type safety or complex ones, like progress, by exploiting this encoding
Thin Games with Symmetry and Concurrent Hyland-Ong Games
We build a cartesian closed category, called Cho, based on event structures.
It allows an interpretation of higher-order stateful concurrent programs that
is refined and precise: on the one hand it is conservative with respect to
standard Hyland-Ong games when interpreting purely functional programs as
innocent strategies, while on the other hand it is much more expressive. The
interpretation of programs constructs compositionally a representation of their
execution that exhibits causal dependencies and remembers the points of
non-deterministic branching.The construction is in two stages. First, we build
a compact closed category Tcg. It is a variant of Rideau and Winskel's category
CG, with the difference that games and strategies in Tcg are equipped with
symmetry to express that certain events are essentially the same. This is
analogous to the underlying category of AJM games enriching simple games with
an equivalence relations on plays. Building on this category, we construct the
cartesian closed category Cho as having as objects the standard arenas of
Hyland-Ong games, with strategies, represented by certain events structures,
playing on games with symmetry obtained as expanded forms of these arenas.To
illustrate and give an operational light on these constructions, we interpret
(a close variant of) Idealized Parallel Algol in Cho
PLACES'10: The 3rd Workshop on Programmng Language Approaches to concurrency and Communication-Centric Software
Paphos, Cyprus. March 201
- âŚ