131,108 research outputs found

    Overview of the Mathemagix type system

    No full text
    The goal of the Mathemagix project is to develop a new and free software for computer algebra and computer analysis, based on a strongly typed and compiled language. In this paper, we focus on the underlying type system of this language, which allows for heavy overloading, including parameterized overloading with parameters in so called "categories". The exposition is informal and aims at giving the reader an overview of the main concepts, ideas and differences with existing languages. In a forthcoming paper, we intend to describe the formal semantics of the type system in more details

    A Graph Model for Imperative Computation

    Get PDF
    Scott's graph model is a lambda-algebra based on the observation that continuous endofunctions on the lattice of sets of natural numbers can be represented via their graphs. A graph is a relation mapping finite sets of input values to output values. We consider a similar model based on relations whose input values are finite sequences rather than sets. This alteration means that we are taking into account the order in which observations are made. This new notion of graph gives rise to a model of affine lambda-calculus that admits an interpretation of imperative constructs including variable assignment, dereferencing and allocation. Extending this untyped model, we construct a category that provides a model of typed higher-order imperative computation with an affine type system. An appropriate language of this kind is Reynolds's Syntactic Control of Interference. Our model turns out to be fully abstract for this language. At a concrete level, it is the same as Reddy's object spaces model, which was the first "state-free" model of a higher-order imperative programming language and an important precursor of games models. The graph model can therefore be seen as a universal domain for Reddy's model

    A type system for counting instances of software components

    Get PDF
    We identify an abstract language for component software based on process algebra. Besides the usual operators for sequential, alternative and parallel composition, it has primitives for instantiating components and for deleting instances of components. We define an operational semantics for our language and give a type system in which types express quantitative information on the components involved in the execution of the expressions of the language. Included in this information is for each component the maximum number of instances that are simultaneously active during the execution of the expression. The type system is compositional by the novel use of ‘deficit types’. The type inference algorithm runs in time quadratic in the size of the input. We consider extensions of the language with loops and tail recursion, and with a scope mechanism. We illustrate the approach with some examples, one on UML diagram refinement and one on counting objects on the free store in C++

    Typed linear algebra for weighted (probabilistic) automata

    Get PDF
    There is a need for a language able to reconcile the recent upsurge of interest in quantitative methods in the software sciences with logic and set theory that have been used for so many years in capturing the qualitative aspects of the same body of knowledge. Such a lingua franca should be typed, polymorphic, diagrammatic, calculational and easy to blend with traditional notation. This paper puts forward typed linear algebra (LA) as a candidate notation for such a role. Typed LA emerges from regarding matrices as morphisms of suitable categories whereby traditional linear algebra is equipped with a type system. In this paper we show typed LA at work in describing weighted (prob- abilistic) automata. Some attention is paid to the interface between the index-free language of matrix combinators and the corresponding index- wise notation, so as to blend with traditional set theoretic notation.Fundação para a Ciência e a Tecnologia (FCT

    Eilenberg Theorems for Many-sorted Formations

    Get PDF
    A theorem of Eilenberg establishes that there exists a bijectionbetween the set of all varieties of regular languages and the set of all vari-eties of finite monoids. In this article after defining, for a fixed set of sortsSand a fixedS-sorted signature Σ, the concepts of formation of congruenceswith respect to Σ and of formation of Σ-algebras, we prove that the alge-braic lattices of all Σ-congruence formations and of all Σ-algebra formationsare isomorphic, which is an Eilenberg's type theorem. Moreover, under asuitable condition on the free Σ-algebras and after defining the concepts offormation of congruences of finite index with respect to Σ, of formation offinite Σ-algebras, and of formation of regular languages with respect to Σ, weprove that the algebraic lattices of all Σ-finite index congruence formations,of all Σ-finite algebra formations, and of all Σ-regular language formationsare isomorphic, which is also an Eilenberg's type theorem
    • …
    corecore