Results 1 -
7 of
7
Equal Rights for Functional Objects or, The More Things Change, The More They Are the Same
, 1993
"... DATA TYPES A. Comparing Type Objects There has been as much confusion over type identity as there has been over object identity, although the type identity problem is usually referred to as the type equivalence problem [Aho86,s.6.3] [Wegbreit74] [Welsh77]. The type identity problem is to determine ..."
Abstract
-
Cited by 20 (7 self)
- Add to MetaCart
DATA TYPES A. Comparing Type Objects There has been as much confusion over type identity as there has been over object identity, although the type identity problem is usually referred to as the type equivalence problem [Aho86,s.6.3] [Wegbreit74] [Welsh77]. The type identity problem is to determine when two types are equal, so that type checking can be done in a programming language. 22 Algol-68 takes the point of view of "structural" equivalence, in which nonrecursive types that are built up from primitive types using the same type constructors in the same order should compare equal, while Ada takes the point of view of "name" equivalence, in which types are equivalent if and only if they have the same name. We will ignore the software engineering issues of which kind of type equivalence makes for better-engineered programs, and focus on the basic issue of type equivalence itself. We note that if a type system offers the type TYPE---i.e., it offers first-class representations of typ...
An Open Ended Data Representation Model for EuLisp
- In LFP '88 -- ACM Symposium on Lisp and Functional Programming
, 1988
"... The goal of this paper is to describe an open-ended type system for Lisp with explicit and full control of bit-level data representations. This description uses a reflective architecture based on a metatype facility. This low-level formalism solves the problem of an harmonious design of a class taxo ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
The goal of this paper is to describe an open-ended type system for Lisp with explicit and full control of bit-level data representations. This description uses a reflective architecture based on a metatype facility. This low-level formalism solves the problem of an harmonious design of a class taxonomy inside a type system. A prototype for this framework has been written in Le-Lisp and is used to build the integrated type and object systems of the EULISPproposal. Introduction Since the first circular definition of Lisp [8], self-descriptions have became more and more precise [11, 15] until sufficient to be now valuable implementation tools [2, 7, 14, 12]. But if control structures, variables scope or allocation extents are well studied aspects, data structures choice presents much difficulty. Accurate and powerful tools are still needed to (i) design bit-level representations for all Lisp primitive data types (conscells, arrays : : : ) or more hidden embedded data structures (stack-f...
Contextual Polymorphism
, 1994
"... Programming languages often provide for various sorts of static type checking as a way of detecting invalid programs. However, statically checked type systems often require unnecessarily specific type information, which leads to frustratingly inflexible languages. Polymorphic type systems restore fl ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Programming languages often provide for various sorts of static type checking as a way of detecting invalid programs. However, statically checked type systems often require unnecessarily specific type information, which leads to frustratingly inflexible languages. Polymorphic type systems restore flexibility by allowing entities to take on more than one type. This thesis discusses polymorphism in statically typed programming languages. It provides precise definitions of the term "polymorphism" and for its varieties, "ad-hoc polymorphism", "universal polymorphism", "inclusion polymorphism", and "parametric polymorphism", and surveys and compares many existing mechanisms for providing polymorphism in programming languages. Finally, it introduces a new polymorphism mechanism, contextual polymorphism. Contextual polymorphism is a variant of parametric polymorphism that is based on contexts, which are abstractions of collections of declarations, and assertions, which link polymorphic routin...
Tradeoffs in Metaprogramming ∗
"... Two traditions of generics • Safe (but restricted expressiveness) ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Two traditions of generics • Safe (but restricted expressiveness)
Simulated Overloading using Generic Functions in Scheme
, 1997
"... This thesis investigates extending the dynamically-typed, functional programming language Scheme, with simulated overloading in order to permit the binding of multiple, distributed definitions to function names. Overloading facilitates the use of an incremental style of programming in which function ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This thesis investigates extending the dynamically-typed, functional programming language Scheme, with simulated overloading in order to permit the binding of multiple, distributed definitions to function names. Overloading facilitates the use of an incremental style of programming in which functions can be defined with a base behaviour and then extended with additional behaviour as it becomes necessary to support new data types. A technique is demonstrated that allows existing functions to be extended, without modification, therefore improving code reuse.
Editor Early Experience with
"... The experiences of Mesa's first users- primarily its implementers-are discussed, and some implications for Mesa and similar programming languages are sug-gested. The specific topics addressed are: module struc-ture and its use in defining abstractions, data-structur-ing facilities in Mesa, an equiva ..."
Abstract
- Add to MetaCart
The experiences of Mesa's first users- primarily its implementers-are discussed, and some implications for Mesa and similar programming languages are sug-gested. The specific topics addressed are: module struc-ture and its use in defining abstractions, data-structur-ing facilities in Mesa, an equivalence algorithm for types and type coercions, the benefits of the type sys-tem and why it is breached occasionally, and the diffi-culty of making the treatment of variant records safe. Key Words and Phrases: programming languages, types, modules, data structures, systems programming
Network Working Group G. H. Mealy Request for Comments: 195 HARV NIC 7140 16 July, 1971 Categories: D.4, D.7
"... this paper is to discuss some of the problems involved and to suggest possible avenues of approach toward their resolution. Parenthetically, I believe that a non-unified approach leads to even worse problems ..."
Abstract
- Add to MetaCart
this paper is to discuss some of the problems involved and to suggest possible avenues of approach toward their resolution. Parenthetically, I believe that a non-unified approach leads to even worse problems

