16 research outputs found
On the Learnability of Programming Language Semantics
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
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
Étude sur le thymus / par le Dr Charles Ghika
Contient une table des matièresAvec mode text
Transparent linking of compiled software and synthesized hardware
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
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
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
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