32 research outputs found

    Continuity as a computational effect

    Get PDF
    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

    Coalgebraic modelling of timed processes

    Get PDF

    A single complete relational rule for coalgebraic refinement

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore