Results 21  30
of
221
An Extensible Type System for ComponentBased Design
, 2002
"... Abstract. We present the design and implementation of the type system for Ptolemy II, which is a tool for componentbased heterogeneous modeling and design. This type system combines static typing with runtime type checking. It supports polymorphic typing of components, and allows automatic lossles ..."
Abstract

Cited by 41 (10 self)
 Add to MetaCart
(Show Context)
Abstract. We present the design and implementation of the type system for Ptolemy II, which is a tool for componentbased heterogeneous modeling and design. This type system combines static typing with runtime type checking. It supports polymorphic typing of components, and allows automatic lossless type conversion at runtime. To achieve this, we use a lattice to model the lossless type conversion relation among types, and use inequalities defined over the type lattice to specify type constraints in components and across components. The system of inequalities can be solved efficiently, with existence and uniqueness of a solution guaranteed by fixedpoint theorems. This type system increases the safety and flexibility of the design environment, promotes component reuse, and helps simplify component development and optimization. The infrastructure we have built is generic in that it is not bound to one particular type lattice. The type system can be extended in two ways: by adding more types to the lattice, or by using different lattices to model different system properties. Higherorder function types and extended types can be accommodated in this way. 1
A Semantic analysis of control
, 1998
"... This thesis examines the use of denotational semantics to reason about control flow in sequential, basically functional languages. It extends recent work in game semantics, in which programs are interpreted as strategies for computation by interaction with an environment. Abramsky has suggested that ..."
Abstract

Cited by 38 (6 self)
 Add to MetaCart
(Show Context)
This thesis examines the use of denotational semantics to reason about control flow in sequential, basically functional languages. It extends recent work in game semantics, in which programs are interpreted as strategies for computation by interaction with an environment. Abramsky has suggested that an intensional hierarchy of computational features such as state, and their fully abstract models, can be captured as violations of the constraints on strategies in the basic functional model. Nonlocal control flow is shown to fit into this framework as the violation of strong and weak ‘bracketing ’ conditions, related to linear behaviour. The language µPCF (Parigot’s λµ with constants and recursion) is adopted as a simple basis for highertype, sequential computation with access to the flow of control. A simple operational semantics for both callbyname and callbyvalue evaluation is described. It is shown that dropping the bracketing condition on games models of PCF yields fully abstract models of µPCF.
Relational Reasoning about Functions and Nondeterminism
, 1998
"... Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Dissertation Series publications. Copies may be obtained by contacting: BRICS ..."
Abstract

Cited by 37 (4 self)
 Add to MetaCart
(Show Context)
Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Dissertation Series publications. Copies may be obtained by contacting: BRICS
Constructions, Inductive Types and Strong Normalization
, 1993
"... This thesis contains an investigation of Coquand's Calculus of Constructions, a basic impredicative Type Theory. We review syntactic properties of the calculus, in particular decidability of equality and typechecking, based on the equalityasjudgement presentation. We present a settheoretic ..."
Abstract

Cited by 35 (3 self)
 Add to MetaCart
This thesis contains an investigation of Coquand's Calculus of Constructions, a basic impredicative Type Theory. We review syntactic properties of the calculus, in particular decidability of equality and typechecking, based on the equalityasjudgement presentation. We present a settheoretic notion of model, CCstructures, and use this to give a new strong normalization proof based on a modification of the realizability interpretation. An extension of the core calculus by inductive types is investigated and we show, using the example of infinite trees, how the realizability semantics and the strong normalization argument can be extended to nonalgebraic inductive types. We emphasize that our interpretation is sound for large eliminations, e.g. allows the definition of sets by recursion. Finally we apply the extended calculus to a nontrivial problem: the formalization of the strong normalization argument for Girard's System F. This formal proof has been developed and checked using the...
Nominal rewriting
 Information and Computation
"... Nominal rewriting is based on the observation that if we add support for alphaequivalence to firstorder syntax using the nominalset approach, then systems with binding, including higherorder reduction schemes such as lambdacalculus betareduction, can be smoothly represented. Nominal rewriting ma ..."
Abstract

Cited by 32 (13 self)
 Add to MetaCart
(Show Context)
Nominal rewriting is based on the observation that if we add support for alphaequivalence to firstorder syntax using the nominalset approach, then systems with binding, including higherorder reduction schemes such as lambdacalculus betareduction, can be smoothly represented. Nominal rewriting maintains a strict distinction between variables of the objectlanguage (atoms) and of the metalanguage (variables or unknowns). Atoms may be bound by a special abstraction operation, but variables cannot be bound, giving the framework a pronounced firstorder character, since substitution of terms for variables is not captureavoiding. We show how good properties of firstorder rewriting survive the extension, by giving an efficient rewriting algorithm, a critical pair lemma, and a confluence theorem
Shrinking Lambda Expressions in Linear Time
 Journal of Functional Programming
, 1997
"... Functionallanguage compilers often perform optimizations based on beta and delta reduction. To avoid speculative optimizations that can blow up the code size, we might wish to use only shrinking reduction rules guaranteed to make the program smaller: these include deadvariable elimination, constan ..."
Abstract

Cited by 32 (0 self)
 Add to MetaCart
Functionallanguage compilers often perform optimizations based on beta and delta reduction. To avoid speculative optimizations that can blow up the code size, we might wish to use only shrinking reduction rules guaranteed to make the program smaller: these include deadvariable elimination, constant folding, and a restricted beta rule that inlines only functions that are called just once. The restricted beta rule leads to a shrinking rewrite system that has not previously been studied. We show some e#cient normalization algorithms that are immediately useful in optimizing compilers; and we give a confluence proof for our system, showing that the choice of normalization algorithm does not a#ect final code quality. 1 Introduction The lambda calculus is a language of functions, so one of the most useful optimizations we can perform in a lambdacalculusbased language is function inlining. Inlining a function eliminates the expense of a procedure call, and instantiating the function argu...
A Calculus with Polymorphic and Polyvariant Flow Types
"... We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and ..."
Abstract

Cited by 31 (11 self)
 Add to MetaCart
We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and types. These flow types can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since # CIL enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations.
Topological Incompleteness and Order Incompleteness of the Lambda Calculus
 ACM TRANSACTIONS ON COMPUTATIONAL LOGIC
, 2001
"... A model of the untyped lambda calculus induces a lambda theory, i.e., a congruence relation on λterms closed under ff and ficonversion. A semantics (= class of models) of the lambda calculus is incomplete if there exists a lambda theory which is not induced by any model in the semantics. In th ..."
Abstract

Cited by 30 (19 self)
 Add to MetaCart
(Show Context)
A model of the untyped lambda calculus induces a lambda theory, i.e., a congruence relation on λterms closed under ff and ficonversion. A semantics (= class of models) of the lambda calculus is incomplete if there exists a lambda theory which is not induced by any model in the semantics. In this paper we introduce a new technique to prove the incompleteness of a wide range of lambda calculus semantics, including the strongly stable one, whose incompleteness had been conjectured by BastoneroGouy [6, 7] and by Berline [9]. The main results of the paper are a topological incompleteness theorem and an order incompleteness theorem. In the first one we show the incompleteness of the lambda calculus semantics given in terms of topological models whose topology satisfies a property of connectedness. In the second one we prove the incompleteness of the class of partially ordered models with finitely many connected components w.r.t. the Alexandroff topology. A further result of the paper is a proof of the completeness of the semantics of the lambda calculus given in terms of topological models whose topology is nontrivial and metrizable.
Database Query Languages Embedded in the Typed Lambda Calculus
, 1993
"... We investigate the expressive power of the typed calculus when expressing computations over finite structures, i.e., databases. We show that the simply typed calculus can express various database query languages such as the relational algebra, fixpoint logic, and the complex object algebra. In ..."
Abstract

Cited by 28 (6 self)
 Add to MetaCart
We investigate the expressive power of the typed calculus when expressing computations over finite structures, i.e., databases. We show that the simply typed calculus can express various database query languages such as the relational algebra, fixpoint logic, and the complex object algebra. In our embeddings, inputs and outputs are terms encoding databases, and a program expressing a query is a term which types when applied to an input and reduces to an output.
Rank 2 Type Systems and Recursive Definitions
, 1995
"... We demonstrate an equivalence between the rank 2 fragments of the polymorphic lambda calculus (System F) and the intersection type discipline: exactly the same terms are typable in each system. An immediate consequence is that typability in the rank 2 intersection system is DEXPTIMEcomplete. We int ..."
Abstract

Cited by 27 (1 self)
 Add to MetaCart
We demonstrate an equivalence between the rank 2 fragments of the polymorphic lambda calculus (System F) and the intersection type discipline: exactly the same terms are typable in each system. An immediate consequence is that typability in the rank 2 intersection system is DEXPTIMEcomplete. We introduce a rank 2 system combining intersections and polymorphism, and prove that it types exactly the same terms as the other rank 2 systems. The combined system suggests a new rule for typing recursive definitions. The result is a rank 2 type system with decidable type inference that can type some interesting examples of polymorphic recursion. Finally,we discuss some applications of the type system in data representation optimizations such as unboxing and overloading.