Results 1  10
of
16
The Effects of
 Artificial Sources of Water on Rangeland Biodiversity. Environment Australia and CSIRO
, 1997
"... “Turing hoped that his abstractedpapertape model was so simple, so transparent and well defined, that it would not depend on any assumptions about physics that could conceivably be falsified, and therefore that it could become the basis of an abstract theory of computation that was independent of ..."
Abstract

Cited by 9 (5 self)
 Add to MetaCart
“Turing hoped that his abstractedpapertape model was so simple, so transparent and well defined, that it would not depend on any assumptions about physics that could conceivably be falsified, and therefore that it could become the basis of an abstract theory of computation that was independent of the underlying physics. ‘He thought, ’ as Feynman once put it, ‘that he understood paper. ’ But he was mistaken. Real, quantummechanical paper is wildly different from the abstract stuff that the Turing machine uses. The Turing machine is entirely classical...”
Function interface models for hardware compilation: Types, signatures, protocols
 CoRR
, 2009
"... The problem of synthesis of gatelevel descriptions of digital circuits from behavioural specifications written in higherlevel programming languages (hardware compilation) has been studied for a long time yet a definitive solution has not been forthcoming. The argument of this essay is mainly method ..."
Abstract

Cited by 7 (6 self)
 Add to MetaCart
The problem of synthesis of gatelevel descriptions of digital circuits from behavioural specifications written in higherlevel programming languages (hardware compilation) has been studied for a long time yet a definitive solution has not been forthcoming. The argument of this essay is mainly methodological, bringing a perspective that is informed by recent developments in programminglanguage theory. We argue that one of the major obstacles in the way of hardware compilation becoming a useful and mature technology is the lack of a well defined function interface model, i.e. a canonical way in which functions communicate with arguments. We discuss the consequences of this problem and propose a solution based on new developments in programming language theory. We conclude by presenting a prototype implementation and some examples illustrating our principles. 1.
Syntactic Control of Interference for Separation Logic
"... Separation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program reasoning. However, the way Separation Logic deals with ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
Separation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program reasoning. However, the way Separation Logic deals with program variables continues to be based on traditional Hoare Logic without taking any benefit of the separation principle. This has led to unwieldy proof rules suffering from lack of clarity as well as questions surrounding their soundness. In this paper, we extend the separation idea to the treatment of variables in Separation Logic, especially Concurrent Separation Logic, using the system of Syntactic Control of Interference proposed by Reynolds in 1978. We extend the original system with permission algebras, making it more powerful and able to deal with the issues of concurrent programs. The result is a streamined presentation of Concurrent Separation Logic, whose rules are memorable and soundness obvious. We also include a discussion of how the new rules impact the semantics and devise static analysis techniques to infer the required permissions automatically. Categories and Subject Descriptors D.3.1 [Programming Languages]:
The Structure of FirstOrder Causality
"... Game semantics describe the interactive behavior of proofs by interpreting formulas as games on which proofs induce strategies. Such a semantics is introduced here for capturing dependencies induced by quantifications in firstorder propositional logic. One of the main difficulties that has to be fac ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
Game semantics describe the interactive behavior of proofs by interpreting formulas as games on which proofs induce strategies. Such a semantics is introduced here for capturing dependencies induced by quantifications in firstorder propositional logic. One of the main difficulties that has to be faced during the elaboration of this kind of semantics is to characterize definable strategies, that is strategies which actually behave like a proof. This is usually done by restricting the model to strategies satisfying subtle combinatorial conditions, whose preservation under composition is often difficult to show. Here, we present an original methodology to achieve this task, which requires to combine advanced tools from game semantics, rewriting theory and categorical algebra. We introduce a diagrammatic presentation of the monoidal category of definable strategies of our model, by the means of generators and relations: those strategies can be generated from a finite set of atomic strategies and the equality between strategies admits a finite axiomatization, this equational structure corresponding to a polarized variation of the notion of bialgebra. This work thus bridges algebra and denotational semantics in order to reveal the structure of dependencies induced by firstorder quantifiers, and lays the foundations for a mechanized analysis of causality in programming languages. Denotational semantics were introduced to provide useful abstract invariants of proofs and programs modulo cutelimination or reduction. In particular, game semantics, introduced in the nineties, have been very successful in capturing precisely the interactive behaviour of programs. In these semantics, every type is interpreted as a game (that is as a set of moves that can be played during the game) together with the rules of the game (formalized by a partial order on the moves of the game indicating the dependencies between them). Every move is to be played by one of the two players, called Proponent and Opponent, who should be thought respectively as the program and its environment. A program is characterized by the sequences of moves that it can exchange with its environment during an
Applications of Game Semantics: From Program Analysis to Hardware Synthesis
"... After informally reviewing the main concepts from game semantics and placing the development of the field in a historical context we examine its main applications. We focus in particular on finite state model checking, higher order model checking and more recent developments in hardware design. 1. C ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
After informally reviewing the main concepts from game semantics and placing the development of the field in a historical context we examine its main applications. We focus in particular on finite state model checking, higher order model checking and more recent developments in hardware design. 1. Chronology, methodology, ideology Game Semantics is a denotational semantics in the conventional sense: for any term, it assigns a certain mathematical object as its meaning, which is constructed compositionally from the meanings of its subterms in a way that is independent of the operational semantics of the object language. What makes Game Semantics particular, peculiar maybe, is that the mathematical objects it operates with
Geometry of Synthesis IV Compiling Affine Recursion into Static Hardware
"... Abramsky’s Geometry of Interaction interpretation (GoI) is a logicaldirected way to reconcile the process and functional views of computation, and can lead to a dataflowstyle semantics of programming languages that is both operational (i.e. effective) and denotational (i.e. inductive on the langua ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abramsky’s Geometry of Interaction interpretation (GoI) is a logicaldirected way to reconcile the process and functional views of computation, and can lead to a dataflowstyle semantics of programming languages that is both operational (i.e. effective) and denotational (i.e. inductive on the language syntax). The key idea of Ghica’s Geometry of Synthesis (GoS) approach is that for certain programming languages (namely Reynolds’s affine Syntactic Control of Interference–SCI) the GoI processeslike interpretation of the language can be given a finitary representation, for both internal state and tokens. A physical realisation of this representation becomes a semanticsdirected compiler for SCI into hardware. In this paper we examine the issue of compiling affine recursive programs into hardware using the GoS method. We give syntax and compilation techniques for unfolding recursive computation in space or in time and we illustrate it with simple benchmarkstyle examples. We examine the performance of the benchmarks against conventional CPUbased execution models.
Functional Netlists
, 2008
"... In efforts to overcome the complexity of the syntax and the lack of formal semantics of conventional hardware description languages, a number of functional hardware description languages have been developed. Like conventional hardware description languages, however, functional hardware description l ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In efforts to overcome the complexity of the syntax and the lack of formal semantics of conventional hardware description languages, a number of functional hardware description languages have been developed. Like conventional hardware description languages, however, functional hardware description languages eventually convert all source programs into netlists, which describe wire connections in hardware circuits at the lowest level and conceal all highlevel descriptions written into source programs. We develop a variant of the lambda calculus, called lλ (linear lambda), which may serve as a highlevel substitute for netlists. In order to support higherorder functions, lλ uses a linear type system which enforces the linear use of variables of function type. The translation of lλ into structural descriptions of hardware circuits is sound and complete in the sense that it maps expressions only to realizable hardware circuits and that every realizable hardware circuit has a corresponding expression in lλ. To illustrate the use of lλ as a highlevel substitute for netlists, we design a simple hardware description language that extends lλ with polymorphism, and use it to implement a Fast Fourier Transform circuit.
Synchronous Game Semantics via Round Abstraction
"... Abstract. A synchronous game semantics—one in which several moves may occur simultaneously—is derived from a conventional (sequential) game semantics using a round abstraction algorithm. We choose the programming language Syntactic Control of Interference and McCusker’s fully abstract relational mod ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. A synchronous game semantics—one in which several moves may occur simultaneously—is derived from a conventional (sequential) game semantics using a round abstraction algorithm. We choose the programming language Syntactic Control of Interference and McCusker’s fully abstract relational model as a convenient starting point and derive a synchronous game model first by refining the relational semantics into a trace semantics, then applying a round abstraction to it. We show that the resulting model is sound but not fully abstract. This work is practically motivated by applications to hardware synthesis via game semantics. 1
Seamless distributed computing from the Geometry of Interaction
"... Abstract. In this paper we present a seamless approach to writing and compiling distributed code. By “seamless ” we mean that the syntax and semantics of the distributed program remain the same as if it was executed on one node only, except for label annotations indicating on what node subterms of ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. In this paper we present a seamless approach to writing and compiling distributed code. By “seamless ” we mean that the syntax and semantics of the distributed program remain the same as if it was executed on one node only, except for label annotations indicating on what node subterms of the program are to be executed. There are no restrictions on how node labels are to be assigned to subterms. We show how the paradigmatic (higherorder functional recursive) programming language PCF, extended with node annotations, can be used for this purpose. The compilation technique is directly inspired by game semantics and the Geometry of Interaction. 1