Searcharxiv⌕ Search

arXiv subjects

Damian Arellanes

Publications and source records attributed to Damian Arellanes.

7 recordsLinked to original sources

Colimit-Based Composition of High-Level Computing Devices

Models of High-level Computation (MHCs) provide effective means to describe complex real-world computing systems because they offer formal foundations for the specification of interacting computing devices, as opposed to describing individual ones, which has been the focus of classical models such as Turing machines or the lambda calculus itself. Despite numerous proposals over the past half century, there is still no canonical MHC akin to Turing machines for (compositionally) reasoning about computation in the large. One of the major drawbacks of state- and data-oriented MHCs is that they extensively neglect control flow, a well-known semantic property that defines computation order. Only control-oriented MHCs treat control explicitly at the expense of ignoring data flow or assuming that data follows control. Mixing data and control within the same framework leads to inefficient methods for formal analysis and verification. To address this, the computon model has recently emerged as a category-theoretic MHC that separates data and control and makes control explicit by supporting composition operators characterised as finite colimit constructions. Such constructions allow the formation of sequential, parallel, branching and iterative computing devices. Unfortunately, the computon model is still a generic reference rather than a concrete realisation. In this paper, we provide a variation of it to enable functional computing devices, introduce a new branching operator, discuss how to define synchronous parallelising out of sequencing and asynchronous parallelising, describe concrete operational semantics for computon execution and provide the first implementation of the model. The implementation yields an open-source programming environment that realises the underlying categorical semantics with partial type-level guarantees. This tool is publicly available for building complex computing devices with a high degree of structural correctness by construction.

cs.LO↗

Compositional Separation of Control Flow and Data Flow

Every Model of High-Level Computation (MHC) has an underlying composition mechanism for combining simple computing devices into more complex ones. Composition can be done by (explicitly or implicitly) defining control flow, data flow or any combination thereof. Control flow specifies the order in which individual computations are activated, whereas data flow defines how data is exchanged among them. Unfortunately, traditional MHCs either mix data and control or only consider one dimension explicitly, which makes it difficult to reason about data flow and control flow separately. Reasoning about these dimensions orthogonally is a crucial desideratum for optimisation, maintainability and verification purposes. In this paper, we introduce a novel MHC that explicitly treats data flow and control flow as separate dimensions, while providing modularity. As the model is rooted in category theory, it provides category-theoretic operations for compositionally constructing sequential, parallel, branching or iterative composites. Compositionality entails that a composite exhibits the same properties as its respective constituents, including separation of concerns and modularity. We conclude the paper by demonstrating how our proposal can be used to model high-level computations in two different application domains: software engineering and artificial intelligence.

cs.LO↗

Compositional Control-Driven Boolean Circuits

Boolean circuits abstract away from physical details to focus on the logical structure and computational behaviour of digital components. Although such circuits have been studied for many decades, compositionality has been widely ignored or examined in an informal manner, which is a property for combining circuits without delving into their internal structure, while supporting modularity and formal reasoning. In this paper, we address this longstanding theoretical gap by proposing colimit-based operators for compositional circuit construction. We define separate operators for forming sequential, parallel, branching and iterative circuits. As composites encapsulate explicit control flow, a new model of computation emerges which we refer to as (families of) control-driven Boolean circuits. We show how this model is at least as powerful as its classical counterpart. In other words, it is able to non-uniformly compute any Boolean function on inputs of arbitrary length.

cs.LO↗

Models of High-Level Computation

Classical models of computation have been successful in capturing the very essence of individual computing devices. Although they are useful to understand computability power and limitations in the small, such models are not suitable to study large-scale complex computations. Accordingly, plenty of formalisms have been proposed in the last half century as an attempt to raise the level of abstraction, with the aim of describing not only a single computing device but interactions among a collection of them. In this paper, we encompass such formalisms into a common framework which we refer to as Models of High-Level Computation. We particularly discuss the semantics, some of the key properties, paradigms and future directions of such models.

cs.LO↗

Towards an Algebra of Computon Spaces

Compositionality is a key property for dealing with complexity, which has been studied from many points of view in diverse fields. Particularly, the composition of individual computations (or programs) has been widely studied almost since the inception of computer science. Unlike existing composition theories, this paper presents an algebraic model not for composing individual programs but for inductively composing spaces of sequential and/or parallel constructs. We particularly describe the semantics of the proposed model and present an abstract example to demonstrate its application.

cs.LO↗

Composition Machines: Programming Self-Organising Software Models for the Emergence of Sequential Program Spaces

We are entering a new era in which software systems are becoming more and more complex and larger. So, the composition of such systems is becoming infeasible by manual means. To address this challenge, self-organising software models represent a promising direction since they allow the (bottom-up) emergence of complex computational structures from simple rules. In this paper, we propose an abstract machine, called the composition machine, which allows the definition and the execution of such models. Unlike typical abstract machines, our proposal does not compute individual programs but enables the emergence of multiple programs at once. We particularly present the machine's semantics and provide examples to demonstrate its operation with well-known rules from the realm of Boolean logic and elementary cellular automata.

cs.FL↗

Self-Organizing Software Models for the Internet of Things

The Internet of Things (IoT) envisions the integration of physical objects into software systems for automating crucial aspects of our lives, such as healthcare, security, agriculture, and city management. Although the vision is promising, with the rapid advancement of hardware and communication technologies, IoT systems are becoming increasingly dynamic, large, and complex to the extent that manual management becomes infeasible. Thus, it is of paramount importance to provide software engineering foundations for constructing autonomic IoT systems. In this paper, we introduce a novel paradigm referred to as self-organizing software models in which IoT software systems are not explicitly programmed, but emerge in a decentralized manner during system operation, with minimal or without human intervention. We particularly present an overview of these models by including their definition, motivation, research challenges, and potential directions.

cs.SE↗