28 research outputs found

    Automatic autoprojection of recursive equations with global variables and abstract data types

    Get PDF
    AbstractSelf-applicable partial evaluation has been implemented for half a decade now, but many problems remain open. This paper addresses and solves the problems of automating call unfolding, having an open-ended set of operators, and processing global variables updated by side effects. The problems of computation duplication and termination of residual programs are addressed and solved: residual programs never duplicate computations of the source program; residual programs do not terminate more often than source programs.This paper describes the automatic autoprojector (self-applicable partial evaluator) Similix; it handles programs with user-defined primitive abstract data type operators which may process global variables. Abstract data types make it possible to hide actual representations of data and prevent specializing operators over these representations. The formally sound treatment of global variables makes Similix fit well in an applicative order programming environment.We present a new method for automatic call unfolding which is simpler, faster, and sometimes more effective than existing methods: it requires neither recursion analysis of the source program, nor call graph analysis of the residual program.To avoid duplicating computations and preserve termination properties, we introduce an abstract interpretation of the source program, abstract occurence counting analysis, which is performed during preprocessing. We express it formally and simplify it

    The Association Between the Bared-Teeth Display and Social Dominance in Captive Chimpanzees (Pan troglodytes)

    Get PDF
    Humans use smiles — widely observed emotional expressions — in a variety of social situations, of which the meaning varies depending on social relationship and the context in which it is displayed. The homologue of the human smile in non-human primates — both due to morphological and functional similarities — is the bared-teeth display (BT). According to the power asymmetry hypothesis (PAH), species with strict linear dominance hierarchies are predicted to produce distinct communicative signals to avoid escalations of social conflicts. Hence, while the BT in a despotic species is predicted to be expressed from low- to high-ranking individuals, signaling submission, the BT in a tolerant species is predicted to be expressed in multiple contexts, regardless of rank. We tested this hypothesis in a group of 8 captive chimpanzees (Pan troglodytes), a species commonly characterized as rather despotic. An investigation of 11,774 dyadic social interactions revealed this chimpanzee group to have a linear dominance hierarchy, with moderate steepness. A Bayesian GLMM — used to test the effects of social contexts and rank relationships of dyads on the use of the BT display — indicated multi-contextual use of the BT which is contingent on the rank relationship. We also found that slight morphological and/or acoustic variants (i.e., silent bared-teeth and vocalized bared-teeth) of the BT display may have different communicative meanings. Our findings are in line with the prediction derived from the PAH for a moderately despotic species, and the view that the human smile originated from the primate BT display

    Aspects of functional programming

    Get PDF
    This thesis explores the application of functional programming in new areas and its implementation using new technologies. We show how functional languages can be used to implement solutions to problems in fuzzy logic using a number of languages: Haskell, Ginger and Aladin. A compiler for the weakly-typed, lazy language Ginger is developed using Java byte-code as its target code. This is used as the inspiration for an implementation of Aladin, a simple functional language which has two novel features: its primitives are designed to be written in any language, and evaluation is controlled by declaring the strictness of all functions. Efficient denotational and operational semantics are given for this machine and an implementation is devel- oped using these semantics. We then show that by using the advantages of Aladin (simplicity and strictness control) we can employ partial evaluation to achieve con- siderable speed-ups in the running times of Aladin programs

    Obteniendo eficiencia y legibilidad en programas generados automáticamente

    Get PDF
    En primer término se presenta un algoritmo de Arity Raising que presenta la característica de manipular, tanto en el código origen como en el destino, código polimórfico. En segundo lugar, el algoritmo presentado hace uso completo del concepto de alto orden. Además, en esta presentación no hay ningún tipo de restricción para las anotaciones (estáticas o dinámicas) de entrada, pudiendo estar estas independientemente en cualquier tupla del código; vale aclarar esto pues en otros trabajos las anotaciones deben seguir reglas particulares como por ejemplo no poder anotar una tupla como dinámica si se encuentra dentro de una tupla estática. Finalmente se provee una demostración de que el sistema propuesto es correcto. La corrección demostrada está basada en una noción de simulación para lo cual fue necesario dar semántica a los lenguajes utilizados.Facultad de Informátic

    Obteniendo eficiencia y legibilidad en programas generados automáticamente

    Get PDF
    En primer término se presenta un algoritmo de Arity Raising que presenta la característica de manipular, tanto en el código origen como en el destino, código polimórfico. En segundo lugar, el algoritmo presentado hace uso completo del concepto de alto orden. Además, en esta presentación no hay ningún tipo de restricción para las anotaciones (estáticas o dinámicas) de entrada, pudiendo estar estas independientemente en cualquier tupla del código; vale aclarar esto pues en otros trabajos las anotaciones deben seguir reglas particulares como por ejemplo no poder anotar una tupla como dinámica si se encuentra dentro de una tupla estática. Finalmente se provee una demostración de que el sistema propuesto es correcto. La corrección demostrada está basada en una noción de simulación para lo cual fue necesario dar semántica a los lenguajes utilizados.Facultad de Informátic

    Courier Gazette : March 27, 1930

    Get PDF
    corecore