Results 11  20
of
26
The Type System of Aldor
 COMPUTING LABORATORY, UNIVERSITY OF KENT AT CANTERBURY, KENT
, 1999
"... This paper gives a formal description of  at least a part of  the type system of Aldor, the extension language of the computer algebra system AXIOM. In the process of doing this a critique of the design of the system emerges. ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
This paper gives a formal description of  at least a part of  the type system of Aldor, the extension language of the computer algebra system AXIOM. In the process of doing this a critique of the design of the system emerges.
The Open Calculus of Constructions: An Equational Type Theory with Dependent Types for Programming, Specification, and Interactive Theorem Proving
"... The open calculus of constructions integrates key features of MartinLöf's type theory, the calculus of constructions, Membership Equational Logic, and Rewriting Logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equatio ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
The open calculus of constructions integrates key features of MartinLöf's type theory, the calculus of constructions, Membership Equational Logic, and Rewriting Logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equational theories. We explore the open calculus of constructions as a uniform framework for programming, specification and interactive verification in an equational higherorder style. By having equational logic and rewriting logic as executable sublogics we preserve the advantages of a firstorder semantic and logical framework and especially target applications involving symbolic computation and symbolic execution of nondeterministic and concurrent systems.
Manifest fields and module mechanisms in intensional type theory
 In TYPES 08
, 2009
"... Abstract. Manifest fields in a type of modules are shown to be expressible in intensional type theory without strong extensional equality rules. These intensional manifest fields are made available with the help of coercive subtyping. It is shown that, for both Σtypes and dependent record types, th ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
Abstract. Manifest fields in a type of modules are shown to be expressible in intensional type theory without strong extensional equality rules. These intensional manifest fields are made available with the help of coercive subtyping. It is shown that, for both Σtypes and dependent record types, the withclause for expressing manifest fields can be introduced by means of the intensional manifest fields. This provides not only a higherorder module mechanism with MLstyle sharing, but a powerful modelling mechanism in formalisation and verification of OOstyle program modules. 1
A Calculus of Refinements: its class of models
, 1992
"... The Calculus of Refinements (COR) presented here takes this idea of types as specifications and subtyping as refinement and pushes it to an extreme. Types and values are no longer distinguished; in COR we consider a unique hierarchy of objects. A good way to deal with the hierarchy of objects is to ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
The Calculus of Refinements (COR) presented here takes this idea of types as specifications and subtyping as refinement and pushes it to an extreme. Types and values are no longer distinguished; in COR we consider a unique hierarchy of objects. A good way to deal with the hierarchy of objects is to structure it as a complete lattice. And if functions are to be considered as first class citizens in the hierarchy then the lattice must be reflexive: it must have the space of functions (some of them) as a sublattice. To represent reflexive lattices, the most simple language is an extension of the calculus with lattice operators: this is the language of COR. The aim of this communication is to show that the results about the soundness and the completeness of calculus can be extended without problems to COR. 1 Introduction Data and its classification into types are kept separated and used distinctively in most programming languages. Types are mainly used as a discipline that contributes ...
Amalgams: Names and Name Capture in a Declarative Framework
, 1998
"... this paper, we address the problem of names and name capture on its own by designing, through the use of three operators, a complete and consistent mechanism of name capture for a declarative framework. We perceive expressions with free names as incomplete expressions which will be dynamically compl ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
this paper, we address the problem of names and name capture on its own by designing, through the use of three operators, a complete and consistent mechanism of name capture for a declarative framework. We perceive expressions with free names as incomplete expressions which will be dynamically completed by a name capture mechanism. The formalism allows the denition of rstclass environments (which can be the result of a computation). We apply this mechanism to model distributed incremental program construction and to dene an object oriented programming style in a declarative language
Evaluating Module Systems for Crosscutting Concerns
"... Although objectoriented programming techniques support modular decomposition of data types well, there are a number of programming concerns that cannot be cleanly modularized using conventional language mechanisms. This paper classifies these concerns into several categories, and describes examples ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Although objectoriented programming techniques support modular decomposition of data types well, there are a number of programming concerns that cannot be cleanly modularized using conventional language mechanisms. This paper classifies these concerns into several categories, and describes examples and a prototypical challenge problem from each category. It then describes several recent techniques designed to improve program modularity in the face of these concerns. The strengths and weaknesses of each technique are evaluated with respect to the challenge problems. The paper concludes with a discussion of future research directions.
Reflective Building Blocks for Modular Systems
 the IMSA '92 International Workshop on Reflection and MetaLevel Architecture
"... The formal definition of any namespace device found in a programming language can be given in terms of transformations on a semantic environment. It is therefore worthwhile to consider the implications of incorporating environments as bona fide data objects in a programming system. Because of their ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The formal definition of any namespace device found in a programming language can be given in terms of transformations on a semantic environment. It is therefore worthwhile to consider the implications of incorporating environments as bona fide data objects in a programming system. Because of their expressive power, environments can be easily abused. Reifying an environment can entail the capture of unwanted bindings, leading to potentially severe violations of lexical abstraction and locality. Reflecting a data structure into an environment may cause useful program transformations which rely on static scoping (e.g., ff conversion) to be no longer applicable. Proposals that have heretofore been suggested for manipulating environments as data objects, however, provide no mechanism to constrain the effect (or extent) of the reification or reflection process. In this paper, we propose a treatment of environments and the mechanism by which they are reified and manipulated that addresses ...
An Ideal Model for an Extended LambdaCalculus with Refinement
, 1991
"... In Computer Science, Lambda Calculus has been mainly used as the skeleton of functional programming languages. It has also been used as a higher order parameterization mechanism in some specification languages. In this paper we view calculus as both the applicative structure of a programming formal ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In Computer Science, Lambda Calculus has been mainly used as the skeleton of functional programming languages. It has also been used as a higher order parameterization mechanism in some specification languages. In this paper we view calculus as both the applicative structure of a programming formalism and a lowlevel specification formalism. Considered as a programming formalism, its operational semantics is the usual one, mainly based on fireduction. Considered as a specification formalism calculus admits a precise notion of refinement between expressions. This refinement relation will stand for the correctness of a step in the incremental development of a program from a specification. The main goal of this paper is to show that calculus, extended with some set operators, can be interpreted as a specification formalism in a domain whose elements are a particular class of posets (partial ordered sets), the closed ideals. The main reason of such interpretation is that it allows to...
Functions, Frames, and Interactions  completing a λcalculusbased purely functional language with respect to programminginthelarge and interactions with runtime environments
, 1998
"... The original aim of the work that led to this dissertation was to extend an existing, purely functional language with facilities for input/output and modular programming. The language is based on an untyped calculus, i.e., program execution is defined as program transformation according to a fixed ..."
Abstract
 Add to MetaCart
The original aim of the work that led to this dissertation was to extend an existing, purely functional language with facilities for input/output and modular programming. The language is based on an untyped calculus, i.e., program execution is defined as program transformation according to a fixed set of reduction rules including fireduction. Consistently, the implementation comprises an interactive reduction system which is integrated with a syntaxoriented editor: any subexpression or program result can be submitted for (stepwise) reduction. There is no distinguished main program, no `global' environment and no explicit static part of the language  in particular, there is no static type system. It is therefore not clear how to add one of the known solutions for input/output or modular programming to such a programming environment. Furthermore, simply adding features to the language would lead to a complex language design with weakly integrated parts, thus losing much of the appe...