Results 11  20
of
25
TTClosed Relations and Admissibility
"... This paper reformulates and studies Pitts's operational concept of ..."
Abstract

Cited by 20 (0 self)
 Add to MetaCart
This paper reformulates and studies Pitts's operational concept of
A Hybrid Approach to Online and Offline Partial Evaluation
 HigherOrder and Symbolic Computation
, 2002
"... This article presents a hybrid method of partial evaluation (PE), which is exactly as precise as naive online PE and nearly as efficient as stateoftheart offline PE, for a statically typed callbyvalue functional language. ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
This article presents a hybrid method of partial evaluation (PE), which is exactly as precise as naive online PE and nearly as efficient as stateoftheart offline PE, for a statically typed callbyvalue functional language.
Eager normal form bisimulation
 In Proc. 20th Annual IEEE Symposium on Logic in Computer Science
, 2005
"... Abstract. Normal form bisimulation is a powerful theory of program equivalence, originally developed to characterize LévyLongo tree equivalence and Boehm tree equivalence. It has been adapted to a range of untyped, higherorder calculi, but types have presented a difficulty. In this paper, we prese ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
Abstract. Normal form bisimulation is a powerful theory of program equivalence, originally developed to characterize LévyLongo tree equivalence and Boehm tree equivalence. It has been adapted to a range of untyped, higherorder calculi, but types have presented a difficulty. In this paper, we present an account of normal form bisimulation for types, including recursive types. We develop our theory for a continuationpassing style calculus, JumpWithArgument (JWA), where normal form bisimilarity takes a very simple form. We give a novel congruence proof, based on insights from game semantics. A notable feature is the seamless treatment of etaexpansion. We demonstrate the normal form bisimulation proof principle by using it to establish a syntactic minimal invariance result and the uniqueness of the fixed point operator at each type.
Typed Closure Conversion for RecursivelyDefined Functions (Extended Abstract)
 Stanford University
, 1998
"... Closure conversion is a critical program transformation for higherorder languages that eliminates lexically nested, firstclass functions or procedures. In particular, closure conversion translates each function definition f into a closure  a data structure consisting of a pointer to closed code ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
Closure conversion is a critical program transformation for higherorder languages that eliminates lexically nested, firstclass functions or procedures. In particular, closure conversion translates each function definition f into a closure  a data structure consisting of a pointer to closed code and another data structure which represents the environment or context of the function. The code abstracts the arguments of f as well as the free variables of f, and the environment provides the values for the free variables of f. Function application is translated to a sequence which invokes the code of the function's closure on the environment of the closure and the arguments. Since the code is closed and separated from the data which it manipulates, it may be defined...
Free theorems and runtime type representations
 Electron. Notes Theor. Comput. Sci
, 2007
"... Abstract. Reynolds ’ abstraction theorem [21], often referred to as the parametricity theorem, can be used to derive properties about functional programs solely from their types. Unfortunately, in the presence of runtime type analysis, the abstraction properties of polymorphic programs are no longer ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
Abstract. Reynolds ’ abstraction theorem [21], often referred to as the parametricity theorem, can be used to derive properties about functional programs solely from their types. Unfortunately, in the presence of runtime type analysis, the abstraction properties of polymorphic programs are no longer valid. However, runtime type analysis can be implemented with termlevel representations of types, as in the λR language of Crary et al. [10], where case analysis on these runtime representations introduces type refinement. In this paper, we show that representationbased analysis is consistent with type abstraction by extending the abstraction theorem to such a language. We also discuss the “free theorems” that result. This work provides a foundation for the more general problem of extending the abstraction theorem to languages with generalized algebraic datatypes (gadts). 1
Semantic foundations for typed assembly languages
 Prog. Languages and Systems (TOPLAS
, 2008
"... Typed Assembly Languages (TALs) are used to validate the safety of machinelanguage programs. The Foundational ProofCarrying Code project seeks to verify the soundness of TALs using the smallest possible set of axioms—the axioms of a suitably expressive logic plus a specification of machine semanti ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Typed Assembly Languages (TALs) are used to validate the safety of machinelanguage programs. The Foundational ProofCarrying Code project seeks to verify the soundness of TALs using the smallest possible set of axioms—the axioms of a suitably expressive logic plus a specification of machine semantics. This paper proposes general semantic foundations that permit modular proofs of the soundness of TALs. These semantic foundations include Typed Machine Language (TML), a type theory for specifying properties of lowlevel data with powerful and orthogonal type constructors, and Lc, a compositional logic for specifying properties of machine instructions with simplified reasoning about unstructured control flow. Both of these components, whose semantics we specify using higherorder logic, are useful for proving the soundness of TALs. We demonstrate this by using TML and Lc to verify the soundness of a lowlevel, typed assembly language, LTAL, which is the target of our coreMLtosparc compiler. To prove the soundness of the TML type system we have successfully applied a new approach, that of stepindexed logical relations. This approach provides the first semantic model for a type system with updatable references to values of impredicative quantified types. Both impredicative polymorphism and mutable references are essential when representing function closures in compilers with typed closure conversion, or when compiling objects to simpler typed primitives.
Typedirected specialization of polymorphism
 in Proc. International Conference on Theoretical Aspects of Computer Software, Springer LNCS 1281
, 1999
"... Flexibility of programming and efficiency of program execution are two important features of a programming language. Unfortunately, however, these two features conflict each other in design and implementation of a modern statically typed programming language. Flexibility is model of computation, whi ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Flexibility of programming and efficiency of program execution are two important features of a programming language. Unfortunately, however, these two features conflict each other in design and implementation of a modern statically typed programming language. Flexibility is model of computation, while efficiency requires optimal use of lowlevel primitives specialized to individual data structures. The motivation of this work is to reconcile these two features by developing a mechanism for specializing polymorphic primitives based on static type information. We analyze the existing methods for compiling a record calculus and an unboxed calculus, extract their common structure, and develop a framework for typedirected specialization of polymorphism. 1
Programming Language Semantics in Foundational Type Theory
 In Proc. the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods (PROCOMET’98
, 1996
"... There are compelling benefits to using foundational type theory as a framework for programming language semantics. I give a semantics of an expressive programming calculus in the foundational type theory of Nuprl. Previous typetheoretic semantics have used less expressive type theories, or have sacr ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
There are compelling benefits to using foundational type theory as a framework for programming language semantics. I give a semantics of an expressive programming calculus in the foundational type theory of Nuprl. Previous typetheoretic semantics have used less expressive type theories, or have sacrificed important programming constructs such as recursion and modules. The primary mechanisms of this semantics are partial types, for typing recursion, set types, for encoding power and singleton kinds, which are used for subtyping and module programming, and very dependent function types, for encoding signatures. Keywords Semantics, program verification, type theory, functional programming 1 INTRODUCTION Type theory has become a popular framework for formal reasoning in computer science and has formed the basis for a number of automated deduction systems, including Automath, Nuprl, HOL and Coq, among others. In addition to formalizing mathematics, these systems are widely used for the a...
StepIndexed Relational Reasoning for Countable Nondeterminism
"... Programming languages with countable nondeterministic choice are computationally interesting since countable nondeterminism arises when modeling fairness for concurrent systems. Because countable choice introduces noncontinuous behaviour, it is wellknown that developing semantic models for program ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Programming languages with countable nondeterministic choice are computationally interesting since countable nondeterminism arises when modeling fairness for concurrent systems. Because countable choice introduces noncontinuous behaviour, it is wellknown that developing semantic models for programming languages with countable nondeterminism is challenging. We present a stepindexed logical relations model of a higherorder functional programming language with countable nondeterminism and demonstrate how it can be used to reason about contextually defined may and mustequivalence. In earlier stepindexed models, the indices have been drawn from ω. Here the stepindexed relations for mustequivalence are indexed over an ordinal greater than ω.
Fair Cooperative Multithreading or Typing Termination in a HigherOrder Concurrent Imperative Language
 Proceedings, 18th International Conference on Concurrency Theory
, 2007
"... We propose a new operational model for shared variable concurrency, in the context of a concurrent, higherorder imperative language Ã la ML. In our model the scheduling of threads is cooperative, and a nonterminating process suspends itself on each recursive call. A property to ensure in such a m ..."
Abstract
 Add to MetaCart
We propose a new operational model for shared variable concurrency, in the context of a concurrent, higherorder imperative language Ã la ML. In our model the scheduling of threads is cooperative, and a nonterminating process suspends itself on each recursive call. A property to ensure in such a model is fairness, that is, any thread should yield the scheduler after some finite computation. To this end, we follow and adapt the classical method for proving termination in typed formalisms, namely the realizability technique. There is a specific difficulty with higherorder state, which is that one cannot define a realizability interpretation simply by induction on types, because applying a function may have sideeffects at types not smaller than the type of the function. Moreover, such higherorder sideeffects may give rise to computations that diverge without resorting to explicit recursion. We overcome these difficulties by introducing a type and effect system for our language that enforces a stratification of the memory. The stratification prevents the circularities in the memory that may cause divergence, and allows us to define a realizability interpretation of the types and effects, which we then use to prove the intended termination property. Our realizability interpretation also copes with dynamic thread creation.