Results 1  10
of
35
Dynamic Rebinding for Marshalling and Update, with DestructTime λ
 IN PROC. ICFP
, 2003
"... Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises, for example when a marshalled value is received from the network, containing identifiers that must be rebound to ..."
Abstract

Cited by 36 (15 self)
 Add to MetaCart
Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises, for example when a marshalled value is received from the network, containing identifiers that must be rebound to local resources. Typically it is provided only by adhoc mechanisms that lack clean semantics. In this
A Formal Language for Composition
, 2000
"... A composition language based on a formal semantic foundation will facilitate precise specification of glue abstractions and compositions, and will support reasoning about their behaviour. The semantic foundation, however, must address a set of requirements like encapsulation, objects as processes, c ..."
Abstract

Cited by 24 (9 self)
 Add to MetaCart
A composition language based on a formal semantic foundation will facilitate precise specification of glue abstractions and compositions, and will support reasoning about their behaviour. The semantic foundation, however, must address a set of requirements like encapsulation, objects as processes, components as abstractions, plug compatibility, a formal object model, and scalability. In this work, we propose the #Lcalculus, an extension of the #calculus, as a formal foundation for software composition, define a language in terms of it, and illustrate how this language can be used to plug components together. 1.1 Introduction One of the key challenges for programming language designers today is to provide the tools that will allow software engineers to develop robust, flexible, distributed applications from plugcompatible software components [NM95]. Current objectoriented programming languages typically provide an ad hoc collection of mechanisms for constructing and composing obje...
A Simply Typed Context Calculus with FirstClass Environments
, 2002
"... . We introduce a simply typed calculus " which has both contexts and environments as firstclass values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechani ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
(Show Context)
. We introduce a simply typed calculus " which has both contexts and environments as firstclass values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechanism which takes care of packing and unpacking of the term which is used to fill in the holes of the context. " is a conservative extension of the simply typed ficalculus, enjoys subject reduction property, is confluent and strongly normalizing. The traditional method of defining substitution does not work for our calculus. So, we also introduce a new method of defining substitution. Although we introduce the new definition of substitution out of necessity, the new definition turns out to be conceptually simpler than the traditional definition of substitution. 1 Introduction Informally speaking, a context (in calculus) is a term with some holes in it. For example, writing [ ] for a hole, y: [ ] is a...
A Typed Context Calculus
, 2001
"... This paper develops a typed calculus for contexts i.e., lambda terms with "holes". In addition to ordinary lambda terms, the calculus contains labeled holes, hole abstraction and context application for manipulating firstclass contexts. The primary operation for contexts is holefilling, ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
This paper develops a typed calculus for contexts i.e., lambda terms with "holes". In addition to ordinary lambda terms, the calculus contains labeled holes, hole abstraction and context application for manipulating firstclass contexts. The primary operation for contexts is holefilling, which captures free variables. This operation conicts with substitution of the lambda calculus, and a straightforward mixture of the two results in an inconsistent system. We solve this problem by defining a type system that precisely specifies the variablecapturing nature of contexts and that keeps track of bound variable renaming. These mechanisms enable us to define a reduction system that properly integrates betareduction and holefilling. The resulting calculus is ChurchRosser and the type system has the subject reduction property. We believe that the context calculus will serve as a basis for developing a programming language with advanced features that call for manipulation of open terms.
Contractual Types
"... Real software systems are open and evolving. It is a constant challenge in such environments to ensure that software components are safely composed in the face of changing dependencies and incomplete knowledge. To address this problem, we propose a new kind of type system which allows us to infe ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
Real software systems are open and evolving. It is a constant challenge in such environments to ensure that software components are safely composed in the face of changing dependencies and incomplete knowledge. To address this problem, we propose a new kind of type system which allows us to infer not only the type provided by a software component in an open system, but also the type it requires of its environment, subject to certain constraints. The contractual type we infer for components can then be statically checked when components are composed. To illustrate our approach, we introduce the form calculus, a calculus of explicit environments, and we present a type system that infers types for form expressions.
From dynamic binding to state via modal possibility
 In PPDP ’03: Proceedings of the 5th ACM SIGPLAN International Conference on Principles and Practice of Declaritive Programming
, 2003
"... In this paper we propose a typed, purely functional calculus for state (with secondclass locations) in which types reflect the dichotomy between reading from and writing into the global store. This is in contrast to the usual formulation of state via monads, where the primitives for reading and wri ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
(Show Context)
In this paper we propose a typed, purely functional calculus for state (with secondclass locations) in which types reflect the dichotomy between reading from and writing into the global store. This is in contrast to the usual formulation of state via monads, where the primitives for reading and writing introduce the same monadic type constructor. We hope to argue that making this distinction is useful, simple, and has strong logical foundations. Our type system is based on the proofterm calculus for constructive modal logic S4, which has two modal type operators: for necessity and 3 for possibility. We extend this calculus with the notion of names (which stand for locations) and generalize to indexed families of modal operators (indexed by sets of names). Then, the modal type CA classifies computations of type A which read from store locations listed in the set C. The dual type 3CA classifies computations which first write into the locations from C and than use the changed store to obtain a value of type A. There are several benefits to this development. First, the necessitation fragment of the language is interesting in its own: it formulates a calculus of dynamic binding. Second, the possibility operator 3 is a monad, thus forcing the singlethreading of memory writes, but not of memory reads (as these are associated with ). Finally, the different status of reads and writes gives rise to a natural way of expressing the allocation of uninitialized memory while also providing guarantees that only initialized locations are dereferenced.
Labelled Reductions, Runtime Errors, and Operational Subsumption
 of Lecture Notes in Computer Science
, 1997
"... Introduction Consider the "nameswitching" function F def = x:fl 1 = x:l 2 ; l 2 = x:l 1 g in a  calculus with records. Most type systems would reject program (Ffl 1 = 3g):l 2 because the type of F is fl 1 : X; l 2 : Y g ! fl 2 : Y; l 1 : Xg and fl 1 : X; l 2 : Y g cannot be unified ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Introduction Consider the "nameswitching" function F def = x:fl 1 = x:l 2 ; l 2 = x:l 1 g in a  calculus with records. Most type systems would reject program (Ffl 1 = 3g):l 2 because the type of F is fl 1 : X; l 2 : Y g ! fl 2 : Y; l 1 : Xg and fl 1 : X; l 2 : Y g cannot be unified with fl 1 : Intg, the type of the record argument. However this program reduces to 3 without error. This shows that the common notion of "erroneous" terms, as implemented in most typed languages, is sometimes
A Study on Mobile Language Systems
, 1999
"... The mobile form of distributed computation, called mobile computation, is investigated from the viewpoints of computational model, programming language and implementation. The emphasis of this thesis compared with the related work is on analyzing existing mobile language systems from a rather implem ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
The mobile form of distributed computation, called mobile computation, is investigated from the viewpoints of computational model, programming language and implementation. The emphasis of this thesis compared with the related work is on analyzing existing mobile language systems from a rather implementational point of view. The contribution of this thesis is threefold. (1) We present a computational model in which dynamic transference of code, data and execution state can be represented. Several mobility mechanisms in existing mobile language systems are analyzed in the model. (2) Based on the analysis, a programming language for mobile computation is designed. The distinctive feature of the language is the facility to control the transparency of migration. (3) An implementation of the mobile programming language is presented. The language is implemented as an extension of the Java language. The implementation is so portable that the program runs on any standard Java inte...
Dynamic rebinding for marshalling and update, via redextime and destructtime reduction
, 2008
"... ..."
Contextual Model Type Theory
, 2005
"... this paper we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its typetheoretic analogue. Contextual modal type theory provides an elegant, uniform foundation for understanding metavariables and explicit substitutio ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
this paper we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its typetheoretic analogue. Contextual modal type theory provides an elegant, uniform foundation for understanding metavariables and explicit substitutions. We sketch some applications in functional programming and logical frameworks