32 research outputs found
Continuity as a computational effect
The original purpose of component-based development was to provide techniques to master complex software, through composition, reuse and parametrisation. However, such systems are rapidly moving towards a level in which software becomes prevalently intertwined with (continuous) physical processes. A possible way to accommodate the latter in component calculi relies on a suitable encoding of continuous behaviour as (yet another) computational effect.
This paper introduces such an encoding through a monad which, in the compositional development of hybrid systems, may play a role similar to the one played by 1+, powerset, and distribution monads in the characterisation of partial, nondeterministic and probabilistic components, respectively. This monad and its Kleisli category provide a universe in which the effects of continuity over (different forms of) composition can be suitably studied.This work is financed by the ERDF - European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT - Fundacao para a Ciencia e a Tecnologia within project POCI-01-0145-FEDER-016692.The first author is also sponsored by FCT grant SFRH/BD/52234/2013, and the second one by FCT grant SFRH/BSAB/113890/2015. Moreover, D. Hofmann and M. Martins are supported by the EU FP7 Marie Curie PIRSES-GA-2012-318986 project GeTFun: Generalizing Truth-Functionality and FCT project UID/MAT/04106/2013 through CIDMA
A single complete relational rule for coalgebraic refinement
A transition system can be presented either as a binary relation or as a coalgebra for the powerset functor, each representation being obtained from the other by transposition. More generally, a coalgebra for a functor F generalises transition systems in the sense that a shape for transitions is determined by F, typically encoding a signature of methods and observers. This paper explores such a duality to frame in purely relational terms coalgebraic refinement, showing that relational (data) refinement of transition relations, in its two variants, downward and upward (functional) simulations, is equivalent to coalgebraic refinement based on backward and forward morphisms, respectively. Going deeper, it is also shown that downward simulation provides a complete relational rule to prove coalgebraic refinement. With such a single rule the paper defines a pre-ordered calculus for refinement of coalgebras, with bisimilarity as the induced equivalence. The calculus is monotonic with respect to the main relational operators and arbitrary relator F, therefore providing a framework for structural reasoning about refinement
Structural Operational Semantics for Heterogeneously Typed Coalgebras
Concurrently interacting components of a modular software architecture are heterogeneously structured behavioural models. We consider them as coalgebras based on different endofunctors. We formalize the composition of these coalgebras as specially tailored segments of distributive laws of the bialgebraic approach of Turi and Plotkin. The resulting categorical rules for structural operational semantics involve many-sorted algebraic specifications, which leads to a description of the components together with the composed system as a single holistic behavioural system. We evaluate our approach by showing that observational equivalence is a congruence with respect to the algebraic composition operation
Structural Operational Semantics for Heterogeneously Typed Coalgebras
Concurrently interacting components of a modular software architecture are heterogeneously structured behavioural models. We consider them as coalgebras based on different endofunctors. We formalize the composition of these coalgebras as specially tailored segments of distributive laws of the bialgebraic approach of Turi and Plotkin. The resulting categorical rules for structural operational semantics involve many-sorted algebraic specifications, which leads to a description of the components together with the composed system as a single holistic behavioural system. We evaluate our approach by showing that observational equivalence is a congruence with respect to the algebraic composition operation.publishedVersio
Languages and models for hybrid automata: A coalgebraic perspective
article in pressWe study hybrid automata from a coalgebraic point of view. We show that such a perspective supports a generic theory of hybrid automata with a rich palette of definitions and results. This includes, among other things, notions of bisimulation and behaviour, state minimisation techniques, and regular expression languages.POCI-01-0145-FEDER-016692. RDF — European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation — COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT — Fundação para a Ciência e a Tecnologia within project POCI-01-0145-FEDER-016692 and by the PT-FLAD Chair on Smart Cities & Smart Governance at Universidade do Minh
Hybrid programs
The MAP-i Doctoral Programme in Informatics, of the Universities of Minho, Aveiro and PortoThis thesis studies hybrid systems, an emerging family of devices that combine in their
models digital computations and physical processes. They are very quickly becoming a
main concern in software engineering, which is explained by the need to develop software
products that closely interact with physical attributes of their environment e. g. velocity,
time, energy, temperature – typical examples range from micro-sensors and pacemakers,
to autonomous vehicles, transport infrastructures and district-wide electric grids. But
even if already widespread, these systems entail different combinations of programs with
physical processes, and this renders their development a challenging task, still largely
unmet by the current programming practices.
Our goal is to address this challenge at its core; we wish to isolate the basic interactions
between discrete computations and physical processes, and bring forth the programming
paradigm that naturally underlies them. In order to do so in a precise and clean way, we
resort to monad theory, a well established categorical framework for developing program
semantics systematically. We prove the existence of a monad that naturally encodes the
aforementioned interactions, and use it to develop and examine the foundations of the
paradigm alluded above, which we call hybrid programming: we show how to build, in a
methodical way, different programming languages that accommodate amplifiers, differential
equations, and discrete assignments – the basic ingredients of hybrid systems – we list
all program operations available in the paradigm, introduce if-then-else constructs, abort
operations, and different types of feedback.
Hybrid systems bring several important aspects of control theory into computer science.
One of them is the notion of stability, which refers to a system’s capacity of avoiding
significant changes in its output if small variations in its state or input occur. We introduce
a notion of stability to hybrid programming, explore it, and show how to analyse hybrid
programs with respect to it in a compositional manner.
We also introduce hybrid programs with internal memory and show that they form
the basis of a component-based software development discipline in hybrid programming.
We develop their coalgebraic theory, namely languages, notions of behaviour, and bisimulation.
In the process, we introduce new theoretical results on Coalgebra, including
improvements of well-known results and proofs on the existence of suitable notions of
behaviour for non-deterministic transition systems with infinite state spaces.Esta tese estuda sistemas hÃbridos, uma famÃlia emergente de dispositivos que envolvem
diferentes interações entre computações digitais e processos fÃsicos. Estes sistemas estão
rapidamente a tornar-se elementos-chave da engenharia de software, o que é explicado
pela necessidade de desenvolver produtos que interagem com os atributos fÃsicos do seu
ambiente e. g. velocidade, tempo, energia, e temperatura – exemplos tÃpicos variam de
micro-sensores e pacemakers, a veÃculos autónomos, infra-estruturas de transporte, e redes
eléctricas distritais. Mas ainda que amplamente usados, estes sistemas são geralmente
desenvolvidos de forma pouco sistemática nas prácticas de programação atuais.
O objetivo deste trabalho é isolar as interações básicas entre computações digitais e
processos fÃsicos, e subsequentemente desenvolver o paradigma de programação subjacente.
Para fazer isto de forma precisa, a nossa base de trabalho irá ser a teoria das
mónadas, uma estrutura categórica para o desenvolvimento sistemático de semânticas
na programação. A partir desta base, provamos a existência de uma mónada que capta
as interações acima mencionadas, e usamo-la para desenvolver e examinar os fundamentos
do paradigma de programação correspondente a que chamamos programação hÃbrida:
mostramos como construir, de maneira metódica, diferentes linguagens de programação
que acomodam amplificadores, equações diferenciais, e atribuições - os ingredientes básicos
dos sistemas hÃbridos - caracterizamos todas as operações sobre programas disponÃveis,
introduzimos construções if-then-else, operações para lidar com excepções, e diferentes
tipos de feedback.
Os sistemas hÃbridos trazem vários aspectos da teoria de controlo para a ciência da
computação. Um destes é a noção de estabilidade, que se refere à capacidade de um
sistema de evitar mudanças drásticas no seu output se pequenas variações no seu estado ou
input ocorrerem. Neste trabalho, desenvolvemos uma noção composicional de estabilidade
para a programação hÃbrida. Introduzimos também programas hÃbridos com memória
interna, que formam a base de uma disciplina de desenvolvimento de software baseado em
componentes. Desenvolvemos a sua teoria coalgébrica, nomeadamente linguagens, noções
de comportamento e bisimulação. Neste processo, introduzimos também novos resultados
teóricos sobre Coalgebra, incluindo melhorias a resultados conhecidos e provas acerca da
existência de noções de comportamento para sistemas de transição não determinÃsiticos
com espaço de estados infinitos.The present work was financed by FCT – Fundação para a Ciência e a Tecnologia –
with the grant SFRH/BD/52234/2013. Additional support was provided by the PTFLAD
Chair on Smart Cities & Smart Governance and by project Dalà (POCI-01-0145-FEDER-016692), the latter funder by ERDF – European Regional Development Fund – through COMPETE 2020 – Operational Programme for Competitiveness and Internationalisation – together with FCT
A perspective on service orchestration
Service-oriented computing is an emerging paradigm with increasing impact on the way modern software systems are designed and developed. Services are autonomous, loosely coupled and heterogeneous computational entities able to cooperate to achieve common goals. This paper introduces a model for service orchestration, which combines a exogenous coordination model, with services’ interfaces annotated with behavioural patterns specified in a process algebra which is parametric on the interaction discipline. The coordination model is a variant of Reo for which a new semantic model is proposed
Components as coalgebras
In the tradition of mathematical modelling in physics and chemistry, constructive formal specification methods are based on the notion of a software model, understood as a state-based abstract machine which persists and evolves in time, according to a behavioural model capturing, for example, partiality or (different degrees of) nondeterminism. This can be identified with the more prosaic notion of a software component advocated by the software industry as ‘building block’ of large, often distributed, systems. Such a component typically encapsulates a number of services through a public interface which provides a limited access to a private state space, paying tribute to the nowadays widespread object-oriented programming principles.
The tradition of communicating systems formal design, by contrast, has developed the notion of a process as an abstraction of the behavioural patterns of a computing system, deliberately ignoring the data and state aspects of software systems.
Both processes and components are among the broad group of computing phenomena which are hardly definable (or simply not definable) algebraically, i.e., in terms of a complete set of constructors. Their semantics is essentially observational, in the sense that all that can be traced of their evolution is their interaction with the environment. Therefore, coalgebras, whose theory has recently witnessed remarkable
developments, appear as a suitable modelling tool.
The basic observation of category theory that universal constructions always come in pairs, has motivated research on the duality between algebras and coalgebras, which provides a bridge between models of static (constructive, data-oriented) and dynamical (observational, behaviour-oriented) systems. At the programming level, the intuitive symmetry between data and behaviour provides evidence of such a duality,
in its canonical initial-final specialisation.
This line of thought entails both definitional and proof principles, i.e., a basis for the development of program calculi directly based on (actually driven by) type specifications. Moreover, such properties can be expressed in terms of generic programming combinators which are used, not only to calculate programs, but also to program with.
Framed in this context, this thesis addresses the following main themes:
The investigation of a semantic model for (state-based) software components. These are regarded as concrete coalgebras for some Set endofunctors,
with specified initial conditions, and organise themselves in a bicategorical setting. The model is able to capture both behavioural issues, which
are usually left implicit in state-based specification methods, and interaction through structured data, which is usually a minor concern on process calculi. Two basic cases are considered entailing, respectively, a ‘functional’ and an ‘object-oriented’ shape for components. Both cases are parametrized by a
model of behaviour, introduced as a strong (usually commutative) monad.
The development of corresponding component calculi, also parametric on the behaviour model, which adds to the genericity of the approach.
The study of processes and the ‘reconstruction’ of classical (CCS-like) process calculi on top of their representation as inhabitants of (the carriers of) final coalgebras, in an essentially pointfree, calculational style.
An overall concern for genericity, in the sense that models and calculi for both components and processes are parametric on the behaviour model and the interaction discipline, respectively.
The animation of both processes and components in CHARITY, a functional programming language entirely based on inductive and coinductive categorical data types. In particular this leads to the development of a process calculi interpreter parametric on the interaction discipline.PRAXIS XXI - Projecto LOGCAMP; POO11/IC-PME/II/S -Projecto KARMA; Fundação para a Ciência e Tecnologia; ALGORITMI Research Center