Results 1 
6 of
6
Programming Metalogics with a Fixpoint Type
, 1992
"... A programming metalogic is a formal system into which programming languages can be translated and given meaning. The translation should both reflect the structure of the language and make it easy to prove properties of programs. This thesis develops certain metalogics using techniques of category th ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
A programming metalogic is a formal system into which programming languages can be translated and given meaning. The translation should both reflect the structure of the language and make it easy to prove properties of programs. This thesis develops certain metalogics using techniques of category theory and treats recursion in a new way. The notion of a category with fixpoint object is defined. Corresponding to this categorical structure there are type theoretic equational rules which will be present in all of the metalogics considered. These rules define the fixpoint type which will allow the interpretation of recursive declarations. With these core notions FIX categories are defined. These are the categorical equivalent of an equational logic which can be viewed as a very basic programming metalogic. Recursion is treated both syntactically and categorically. The expressive power of the equational logic is increased by embedding it in an intuitionistic predicate calculus, giving rise to the FIX logic. This contains propositions about the evaluation of computations to values and an induction principle which is derived from the definition of a fixpoint object as an initial algebra. The categorical structure which accompanies the FIX logic is defined, called a FIX hyperdoctrine, and certain existence and disjunction properties of FIX are stated. A particular FIX hyperdoctrine is constructed and used in the proof of the same properties. PCFstyle languages are translated into the FIX logic and computational adequacy reaulta are proved. Two languages are studied: Both are similar to PCF except one has call by value recursive function declararations and the other higher order conditionals. ...
An investigation into Functions as Processes
 In Proc. Ninth International Conference on the Mathematical Foundations of Programming Semantics (MFPS'93
, 1993
"... . In [Mil90] Milner examines the encoding of the calculus into the ßcalculus [MPW92]. The former is the universally accepted basis for computations with functions, the latter aims at being its counterpart for computations with processes. The primary goal of this paper is to continue the study of M ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
. In [Mil90] Milner examines the encoding of the calculus into the ßcalculus [MPW92]. The former is the universally accepted basis for computations with functions, the latter aims at being its counterpart for computations with processes. The primary goal of this paper is to continue the study of Milner's encodings. We focus mainly on the lazy calculus [Abr87]. We show that its encoding gives rise to a model, in which a weak form of extensionality holds. However the model is not fully abstract: To obtain full abstraction, we examine both the restrictive approach, in which the semantic domain of processes is cut down, and the expansive approach, in which calculus is enriched with constants to obtain a direct characterisation of the equivalence on terms induced, via the encoding, by the behavioural equivalence adopted on the processes. Our results are derived exploiting an intermediate representation of Milner's encodings into the HigherOrder ßcalculus, an !order extension of ...
Interpreting functions as πcalculus processes: a tutorial
, 1999
"... This paper is concerned with the relationship betweencalculus and ��calculus. Thecalculus talks about functions and their applicative behaviour. This contrasts with the ��calculus, that talks about processes and their interactive behaviour. Application is a special form of interaction, and there ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper is concerned with the relationship betweencalculus and ��calculus. Thecalculus talks about functions and their applicative behaviour. This contrasts with the ��calculus, that talks about processes and their interactive behaviour. Application is a special form of interaction, and therefore functions can be seen as a special form of processes. We study how the functions of thecalculus (the computable functions) can be represented as ��calculus processes. The ��calculus semantics of a language induces a notion of equality on the terms of that language. We therefore also analyse the equality among functions that is induced by their representation as ��calculus processes. This paper is intended as a tutorial. It however contains some original contributions. The main ones are: the use of wellknown Continuation Passing Style transforms to derive the encodings into ��calculus and prove their correctness; the encoding of typedcalculi.
Dealing with Explicit Exceptions in Prolog
"... Existing logic languages provide some simple "extralogical" constructs for control manipulation, such as the cut of standard Prolog and the exception handling constructs of other versions of Prolog (e.g. SICStus Prolog). Aspects specifically concerning the flow of control in a language can be qu ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Existing logic languages provide some simple "extralogical" constructs for control manipulation, such as the cut of standard Prolog and the exception handling constructs of other versions of Prolog (e.g. SICStus Prolog). Aspects specifically concerning the flow of control in a language can be quite naturally modelled by means of the Denotational Semantics, and in particular the Denotational Semantics with Continuations. In this paper we define a Denotational Semantics with Continuations to model the flow of control of a small fragment of a logic language with an explicit exception handling mechanism. Finally we show how the cut operator can be simulated by an appropriate use of the characterized exception handling constructs. Keywords: Continuations, denotational semantics, exception handling, cut. 1
Implementing Operational Semantics (Preliminary Report)
, 1997
"... This paper describes a high level operational semantics for a simple programming language, called K O R E L , together with a parser, interpreter and pretty printer which are implemented in the (pure) functional programming language Haskell. The syntax of K O R E L is presented via BNF grammars, and ..."
Abstract
 Add to MetaCart
This paper describes a high level operational semantics for a simple programming language, called K O R E L , together with a parser, interpreter and pretty printer which are implemented in the (pure) functional programming language Haskell. The syntax of K O R E L is presented via BNF grammars, and the operational semantics is specied via structured, inductive rules. The paper outlines the broad ideas behind the Haskell implementation, with a more detailed explication of the key techniques. A code listing can be found in [Cro97]. 1 Introduction This paper presents a high level operational semantics for a simple programming language, together with a parser, interpreter and pretty printer which are implemented in the (pure) functional programming language Haskell. Our programming language is called K O R E L , so called because it can be considered to represent the core programming features of a language combining imperative and functional constructs, and has both an eager and a laz...
Computational Adequacy of the FIXLogic
, 1995
"... This paper presents computational adequacy results for the FIX logical system introduced by Crole and Pitts in LICS '90. More precisely, we take two simple PCF style languages (whose dynamic semantics follow a callbyvalue and callbyname regime) give translations of the languages into suitable ju ..."
Abstract
 Add to MetaCart
This paper presents computational adequacy results for the FIX logical system introduced by Crole and Pitts in LICS '90. More precisely, we take two simple PCF style languages (whose dynamic semantics follow a callbyvalue and callbyname regime) give translations of the languages into suitable judgements in the FIXlogic and prove that the translations are adequate for the static and dynamic semantics. This shows that the FIXlogic can be regarded as a programming metalogic which will uniformly interpret both callbyvalue and callbyname languages. The proofs of dynamic adequacy make use of a logical relations technique which is based on the methods of Plotkin and Tait. We also show that there is some choice in the translation of recursion; certain translations make use of an existence property of the FIXlogic to prove computational adequacy.