315 research outputs found

    Un Lambda-Calcul Atomique

    Get PDF
    International audienceNous introduisons un lambda-calcul avec partage explicite, le lambda-calcul atomique, dans lequel la duplication des sous-termes est faite pas à pas en fonction des constructeurs. Nous donnons une fonction de dénotation du lambda-calcul atomique dans le lambda-calcul et montrons que le lambda-calcul atomique simule la -réduction et préserve la normalisation forte. Nous donnons aussi un système de type pour le lambda-calcul atomique et montrons que la réduction préserve le type

    Computational isomorphisms in classical logic

    Get PDF
    All standard ‘linear’ boolean equations are shown to be computationally realized within a suitable classical sequent calculus LKη p. Specifically, LKη p can be equipped with a cut-elimination compatible equivalence on derivations based upon reversibility properties of logical rules. So that any pair of derivations, without structural rules, of F ⇒ G and G ⇒ F, where F, G are first-order formulas ‘without any qualities’, defines a computational isomorphism

    How to Deforest in Accumulative Parameters?

    Get PDF
    Projet OSCARSoftware engineering has to reconcile modularity with efficiency. One way to grapple with this dilemma is to automatically transform a modular-speci- fied program into an efficient-implementable one. This is the aim of deforesta- tion transformations which get rid of intermediate data structures constructio- ns that appear when two functions are composed. Nevertheless, existing functional methods cannot deforest non-trivial intermediate constructions that are processed by symbolic composition. This new deforestation technique is based on the descriptional composition dedicated to attribute grammars. In this paper, we present the symbolic composition, we outline its counterpart in terms of classical deforestation methods and we sketch a way to embed it in a functional framework

    Data-Dependency Formalism for Developing Peer-to-Peer Applications

    Get PDF
    Developing peer-to-peer (P2P) applications became increasingly important in software development. Nowadays, a large number of organizations from many different sectors and sizes depend more and more on collaboration between actors to perform their tasks. These P2P applications usually have a recursive behavior that many modeling approaches cannot describe and analyze (e.g. finite-state approaches). In this paper, we present an approach that combines component-based development with well-understood methods and techniques from the field of Attribute Grammars and Data-Flow Analysis in order to construct an abstract representation (i.e. Data-Dependency Graph) for P2P applications, and then perform data-flow analyzes on it. This approach embodies a formalism called DDF (Data-Dependency Formalism) to capture the behavior of P2P applications and construct their Data-Dependency Graphs. Various properties can be inferred and computed at the proposed level of data abstraction, including some properties that model checking cannot compute if the system presents a recursive behavior. As examples, we present two algorithms: one to resolve the deadlock problem and another for dominance analysis

    Structure-directed Genericity in Functional Programming and Attribute Grammars

    Get PDF
    Projet OSCARGeneric control operators, such as \emph{fold}, have been introduced in functional programming to increase the power and applicability of data-structure-based transformations. This is achieved by making the structure of the data more explicit in program specifications. We argue that this very important property is one of the original concepts of attribute grammars. In this paper, we present the similarities between the \emph{fold} formalism and attribute grammars. In particular, we show the equivalence of their respective deforestation methods. Given these results and the fundamental role of deforestation in the concept of \emph{structure-directed genericity}, first devised for attribute grammars with descriptional composition, we show how the \emph{fold} operator with its fusion method allow us to transport this concept in the area of functional programming

    Attribute Grammars and Folds : Generic Control Operators

    Get PDF
    Projet OSCARGeneric control operators, such as \emph{fold}, have been introduced in functional programming to increase the power and applicability of data-structure-based transformations. This is achieved by making the structure of the data more explicit in program specifications. We argue that this very important property is one of the original concepts of attribute grammars. In this paper, we informally show the similarities between the fold formalism and attribute grammar specifications. We also compare their respective method to eliminate the intermediate data structures introduced by function composition (notion of deforestation or fusion): the normalization algorithm for programs expressed with folds and the descriptional composition of attribute grammars. Rather than identify the best way to achieve deforestation, the main goal of this paper is merely to intuitively present two programming paradigms to each other's supporting community and provide an unbiased account of their similarities and differences, in the hope that this leads to fruitful cross-fertilization

    Symbolic Composition

    Get PDF
    Projet OSCARThe deforestation of a functional program is a transformation which gets rid ofintermediate data structures constructions that appear when two functions are composed. The descriptional composition, initially introduced by Ganzinger and Giegerich, is a deforestation method dedicated to the composition of two attribute grammars. This article presents a new functional deforestation technique, called symbolic composition, based on the descriptional composition mechanism, but extending it. An automatic translation from a functional program into an equivalent attribute grammar allows symbolic composition to be applied, and then the result can be translated back into a functional program. This yields a sourceto source functional program transformation. The resulting deforestation method provides a better deforestation than other existing functional techniques. Symbolic composition, that uses the declarative and descriptional features of attribute grammars is intrinsically more powerful than categorical-flavored transformations, whose recursion schemes are set by functors. These results tend to show that attribute grammars are a simple intermediate representation, particularly well-suited for program transformations

    Dynamic Attribute Grammars

    Get PDF
    Projet OSCARAlthough Attribuate Grammars were introduced thirty years ago, their lack of expressiveness has resulted in limited use outside the domain of static language processing. With the new notion of a Dynamic Attribute Grammar defined on a Grammar Couple, informally presented in a previous paper, we show that it is possible to extend this expressiveness and to describe computations on structures that are not just trees, but also on abstractions allowing for infinite structures. The result is a language that is comparable in power to most first-order functional languages, with a distinctive declarative character. In this paper, we give a formal definition of Dynamic Attribute Grammars and show how to construct efficient visit-sequence-based evaluators for them, using traditional, well-established AG techniques (in our case, using the FNC2 system The major contribution of this approach is to restore the intrinsic power of Attribute Grammar and re-emphasize the effectiveness of analysis and implement- ation techniques developed for them

    Attribute Grammars: a Declarative Functional Language

    Get PDF
    Projet CHARMEAlthough Attribute Grammars were introduced thirty years ago, their lack of expressiveness has resulted in limited use outside the domain of static language processing. In this paper we show that it is possible to extend this expressiveness. We claim that Attribute Grammars can be used to describe computations on structures that are not just trees, but also on abstractions allowing for infinite structures. To gain this expressiveness, we introduce two new notions: {\em scheme productions\/} and {\em conditional productions}. The result is a language that is comparable in power to most first-order functional languages, with a distinctive declarative character. Our extensions deal with a different part of the Attribute Grammars formalism than what is used in most works on Attribute Grammars including global analysis and evaluator generation. Hence, most existing results are directly applicable to our extended Attribute Grammars including efficient implementation (in our case, using the FNC-2 system http://www-rocq.inria.fr/charme/FNC-2/). The major contribution of this approach is to restore and re-emphasize the intrinsic power of Attribute Grammars. Furthermore, our extensions call for new studies on applying to functional programming the analysis and implementation techniques developed for Attribute Grammars
    corecore