16 research outputs found

    On the Learnability of Programming Language Semantics

    Get PDF
    This is the final version of the article. Available from ICE via the DOI in this record.Game semantics is a powerful method of semantic analysis for programming languages. It gives mathematically accurate models ("fully abstract") for a wide variety of programming languages. Game semantic models are combinatorial characterisations of all possible interactions between a term and its syntactic context. Because such interactions can be concretely represented as sets of sequences, it is possible to ask whether they can be learned from examples. Concretely, we are using long short-term memory neural nets (LSTM), a technique which proved effective in learning natural languages for automatic translation and text synthesis, to learn game-semantic models of sequential and concurrent versions of Idealised Algol (IA), which are algorithmically complex yet can be concisely described. We will measure how accurate the learned models are as a function of the degree of the term and the number of free variables involved. Finally, we will show how to use the learned model to perform latent semantic analysis between concurrent and sequential Idealised Algol

    System-level linking of synthesised hardware and compiled software using a higher-order type system

    Get PDF
    Devices with tightly coupled CPUs and FPGA logic allow for the implementation of heterogeneous applications which combine multiple components written in hardware and software languages, including first-party source code and third-party IP. Flexibility in component relationships is important, so that the system designer can move components between software and hardware as the application design evolves. This paper presents a system-level type system and linker, which allows functions in software and hardware components to be directly linked at link time, without requiring any modification or recompilation of the components. The type system is designed to be language agnostic, and exhibits higher-order features, to enables design patterns such as notifications and callbacks to software from within hardware functions. We demonstrate the system through a number of case studies which link compiled software against synthesised hardware in the Xilinx Zynq platform

    Foreword.

    No full text

    Foreword.

    No full text

    Étude sur le thymus / par le Dr Charles Ghika

    No full text
    Contient une table des matièresAvec mode text

    Transparent linking of compiled software and synthesized hardware

    No full text
    Modern heterogeneous devices contain tightly coupled CPU and FPGA logic, allowing low latency access to accelerators. However, designers of the system need to treat accelerated functions specially, with device specific code for instantiating, configuring, and executing accelerators. We present a system level linker, which allows functions in hardware and software to be linked together to create heterogeneous systems. The linker works with post-compilation and post-synthesis components, allowing the designer to transparently move functions between devices simply by linking in either hardware or software object files. The linker places no special emphasis on the software, allowing computation to be initiated from within hardware, with function calls to software to provide services such as file access. A strong type-system ensures that individual code artifacts can be written using the conventions of that domain (C, HLS, VHDL), while allowing direct and transparent linking

    Functorial String Diagrams for Reverse-Mode Automatic Differentiation

    No full text
    We enhance the calculus of string diagrams for monoidal categories with hierarchical features in order to capture closed monoidal (and cartesian closed) structure. Using this new syntax we formulate an automatic differentiation algorithm for (applied) simply typed lambda calculus in the style of [Pearlmutter and Siskind 2008] and we prove for the first time its soundness. To give an efficient yet principled implementation of the AD algorithm we define a sound and complete representation of hierarchical string diagrams as a class of hierarchical hypergraphs we call hypernets

    Resource-Tracking Concurrent Games

    No full text
    International audienceWe present a framework for game semantics based on concurrentgames, that keeps track of resources as data modified throughoutexecution but not affecting its control flow. Our leading exampleis time, yet the construction is in fact parametrized by aresource bimonoid R, an algebraic structure expressing resourcesand the effect of their consumption either sequentially or inparallel. Relying on our construction, we give a soundresource-sensitive denotation to R-IPA, an affine higher-orderconcurrent programming language with shared state and a primitivefor resource consumption in R. Compared with general operationalsemantics parametrized by R, our resource analysis turns out tobe finer, leading to non-adequacy. Yet, our model is notdegenerate as adequacy holds for an operational semanticsspecialized to time.In regard to earlier semantic frameworks for tracking resources,the main novelty of our work is that it is based on anon-interleaving semantics, and as such accounts for parallel useof resources accurately

    Non-angelic concurrent game semantics

    No full text
    The hiding operation, crucial in the compositional aspect of game semantics, removes computation paths not leading to observable results. Accordingly, games models are usually biased towards angelic non-determinism: diverging branches are forgotten. We present here new categories of games, not suffering from this bias. In our first category, we achieve this by avoiding hiding altogether; instead morphisms are uncovered strategies (with neutral events) up to weak bisimulation. Then, we show that by hiding only certain events dubbed inessential we can consider strategies up to isomorphism, and still get a category – this partial hiding remains sound up to weak bisimulation, so we get a concrete representations of programs (as in standard concurrent games) while avoiding the angelic bias. These techniques are illustrated with an interpretation of affine nondeterministic PCF which is adequate for weak bisimulation; and may, must and fair convergences
    corecore