Results 11  20
of
50
Reference Counting as a Computational Interpretation of Linear Logic
 Journal of Functional Programming
, 1996
"... We develop formal methods for reasoning about memory usage at a level of abstraction suitable for establishing or refuting claims about the potential applications of linear logic for static analysis. In particular, we demonstrate a precise relationship between type correctness for a language based o ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
We develop formal methods for reasoning about memory usage at a level of abstraction suitable for establishing or refuting claims about the potential applications of linear logic for static analysis. In particular, we demonstrate a precise relationship between type correctness for a language based on linear logic and the correctness of a referencecounting interpretation of the primitives that the language draws from the rules for the `of course' operation. Our semantics is `lowlevel' enough to express sharing and copying while still being `highlevel ' enough to abstract away from details of memory layout. This enables the formulation and proof of a result describing the possible runtime reference counts of values of linear type. Contents 1 Introduction 1 2 Operational Semantics with Memory 4 3 A Programming Language Based on Linear Logic 9 4 Semantics 14 5 Properties of the Semantics 24 6 Linear Logic and Memory 27 7 Discussion 32 A Proofs of the Main Theorems 36 Acknowledgements...
Games and full abstraction for nondeterministic languages
, 1999
"... Abstract Nondeterminism is a pervasive phenomenon in computation. Often it arises as an emergent property of a complex system, typically as the result of contention for access to shared resources. In such circumstances, we cannot always know, in advance, exactly what will happen. In other circumstan ..."
Abstract

Cited by 29 (3 self)
 Add to MetaCart
Abstract Nondeterminism is a pervasive phenomenon in computation. Often it arises as an emergent property of a complex system, typically as the result of contention for access to shared resources. In such circumstances, we cannot always know, in advance, exactly what will happen. In other circumstances, nondeterminism is explicitly introduced as a means of abstracting away from implementation details such as precise command scheduling and control flow. However, the kind of behaviours exhibited by nondeterministic computations can be extremely subtle in comparison to those of their deterministic counterparts and reasoning about such programs is notoriously tricky as a result. It is therefore important to develop semantic tools to improve our understanding of, and aid our reasoning about, such nondeterministic programs. In this thesis, we extend the framework of game semantics to encompass nondeterministic computation. Game semantics is a relatively recent development in denotational semantics; its main novelty is that it views a computation not as a static entity, but rather as a dynamic process of interaction. This perspective makes the theory wellsuited to modelling many aspects of computational processes: the original use of game semantics in modelling the simple functional language PCF has subsequently been extended to handle more complex control structures such as references and continuations.
A rational deconstruction of Landin’s SECD machine
 Implementation and Application of Functional Languages, 16th International Workshop, IFL’04, number 3474 in Lecture Notes in Computer Science
, 2004
"... Abstract. Landin’s SECD machine was the first abstract machine for applicative expressions, i.e., functional programs. Landin’s J operator was the first control operator for functional languages, and was specified by an extension of the SECD machine. We present a family of evaluation functions corre ..."
Abstract

Cited by 27 (19 self)
 Add to MetaCart
Abstract. Landin’s SECD machine was the first abstract machine for applicative expressions, i.e., functional programs. Landin’s J operator was the first control operator for functional languages, and was specified by an extension of the SECD machine. We present a family of evaluation functions corresponding to this extension of the SECD machine, using a series of elementary transformations (transformation into continuationpassing style (CPS) and defunctionalization, chiefly) and their left inverses (transformation into direct style and refunctionalization). To this end, we modernize the SECD machine into a bisimilar one that operates in lockstep with the original one but that (1) does not use a data stack and (2) uses the callersave rather than the calleesave convention for environments. We also identify that the dump component of the SECD machine is managed in a calleesave way. The callersave counterpart of the modernized SECD machine precisely corresponds to Thielecke’s doublebarrelled continuations and to Felleisen’s encoding of J in terms of call/cc. We then variously characterize the J operator in terms of CPS and in terms of delimitedcontrol operators in the CPS hierarchy. As a byproduct, we also present several reduction semantics for applicative expressions
What Is an Algorithm?
, 2000
"... Machines and Recursive Definitions 2.1 Abstract Machines The bestknown model of mechanical computation is (still) the first, introduced by Turing [18], and after half a century of study, few doubt the truth of the fundamental ChurchTuring Thesis : A function f : N # N on the natural numbers (o ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
Machines and Recursive Definitions 2.1 Abstract Machines The bestknown model of mechanical computation is (still) the first, introduced by Turing [18], and after half a century of study, few doubt the truth of the fundamental ChurchTuring Thesis : A function f : N # N on the natural numbers (or, more generally, on strings from a finite alphabet) is computable in principle exactly when it can be computed by a Turing Machine. The ChurchTuring Thesis grounds proofs of undecidability and it is essential for the most important applications of logic. On the other hand, it cannot be argued seriously that Turing machines model faithfully all algorithms on the natural numbers. If, for example, we code the input n in binary (rather than unary) notation, then the time needed for the computation of f(n) can sometimes be considerably shortened; and if we let the machine use two tapes rather than one, then (in some cases) we may gain a quadratic speedup of the computation, see [8]. This mea...
A Formal Semantics for the C Programming Language
, 1998
"... educational and research purposes, provided that the source is acknowledged and the present ..."
Abstract

Cited by 23 (7 self)
 Add to MetaCart
educational and research purposes, provided that the source is acknowledged and the present
Correspondence between Operational and Denotational Semantics
 Handbook of Logic in Computer Science
, 1995
"... This course introduces the operational and denotational semantics of PCF and examines the relationship between the two. Topics: Syntax and operational semantics of PCF, Activity Lemma, undefinability of parallel or; Context Lemma (first principles proof) and proof by logical relations Denotational ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
This course introduces the operational and denotational semantics of PCF and examines the relationship between the two. Topics: Syntax and operational semantics of PCF, Activity Lemma, undefinability of parallel or; Context Lemma (first principles proof) and proof by logical relations Denotational semantics of PCF induced by an interpretation; (standard) Scott model, adequacy, weak adequacy and its proof (by a computability predicate) Domain Theory up to SFP and Scott domains; non full abstraction of the standard model, definability of compact elements and full abstraction for PCFP (PCF + parallel or), properties of orderextensional (continuous) models of PCF, Milner's model and Mulmuley's construction (excluding proofs) Additional topics (time permitting): results on pure simplytyped lambda calculus, Friedman 's Completeness Theorem, minimal model, logical relations and definability, undecidability of lambda definability (excluding proof), dIdomains and stable functions Homepa...
BöhmLike Trees for Rewriting
"... The work in this thesis has been carried out under the auspices of the research school IPA (Institute for Programming research and Algorithmics).vrije universiteit BöhmLike Trees for Rewriting academisch proefschrift ter verkrijging van de graad Doctor aan de Vrije Universiteit Amsterdam, op gezag ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
The work in this thesis has been carried out under the auspices of the research school IPA (Institute for Programming research and Algorithmics).vrije universiteit BöhmLike Trees for Rewriting academisch proefschrift ter verkrijging van de graad Doctor aan de Vrije Universiteit Amsterdam, op gezag van de rector magnificus prof.dr. T. Sminia, in het openbaar te verdedigen ten overstaan van de promotiecommissie van de faculteit der Exacte Wetenschappen op maandag 20 maart 2006 om 15.45 uur in de aula van de universiteit, De Boelelaan 1105 door
On Static and Dynamic ControlFlow Information in Program Analysis and Transformation
, 2001
"... interpretation and fixedpoint computation . . . 71 5.1.2 The timestamping technique . . . . . . . . . . . . . . . . 72 5.2 The timestampsbased approximation algorithm . . . . . . . . . 73 5.2.1 A class of recursive equations . . . . . . . . . . . . . . . . 73 5.2.2 The intuition behind time stam ..."
Abstract

Cited by 13 (6 self)
 Add to MetaCart
interpretation and fixedpoint computation . . . 71 5.1.2 The timestamping technique . . . . . . . . . . . . . . . . 72 5.2 The timestampsbased approximation algorithm . . . . . . . . . 73 5.2.1 A class of recursive equations . . . . . . . . . . . . . . . . 73 5.2.2 The intuition behind time stamps . . . . . . . . . . . . . 74 5.3 A formalization of the timestampsbased algorithm . . . . . . . 75 5.3.1 Statepassing recursive equations . . . . . . . . . . . . . . 75 5.3.2 Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.3.3 Complexity estimates . . . . . . . . . . . . . . . . . . . . 78 5.4 An extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Appendix 5.A Operational specification . . . . . . . . . . . . . . . . . 81 6 Static Transition Compression 85 6.2 Source and target languages . . . . . . . . . . . . . . . . . . . . . 86 6.2.1 An unstructured target language . . . . . . . . . . . . . . 86 6.2.2 A structured source language . . . . . . . . . . . . . . . . 86 6.3 A contextinsensitive translation . . . . . . . . . . . . . . . . . . 87 6.3.4 Chains of jumps . . . . . . . . . . . . . . . . . . . . . . . 91 6.4 Context awareness . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.4.1 Continuations and duplication . . . . . . . . . . . . . . . 92 6.4.2 Towards the right thing . . . . . . . . . . . . . . . . . . . 92 6.5 A contextsensitive translation . . . . . . . . . . . . . . . . . . . 93 6.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
An Extensional Characterization of LambdaLifting and LambdaDropping
 In Aart Middeldorp and Taisuke Sato, editors, 4th Fuji International Symposium on Functional and Logic Programming (FLOPS’99
, 1999
"... Lambdalifting and lambdadropping respectively transform a blockstructured functional program into recursive equations and vice versa. ..."
Abstract

Cited by 13 (4 self)
 Add to MetaCart
Lambdalifting and lambdadropping respectively transform a blockstructured functional program into recursive equations and vice versa.