Results 1 -
9 of
9
Dynamically Scoped Functions as the Essence of AOP
- ACM SIGPLAN Notices
, 2003
"... The aspect-oriented programming community devotes lots of energy into the provision of complex static language constructs to reason about eventual dynamic properties of a program. ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
The aspect-oriented programming community devotes lots of energy into the provision of complex static language constructs to reason about eventual dynamic properties of a program.
The Zinc Experiment: An Economical Implementation Of The Ml Language
, 1990
"... This report details the design and implementation of the ZINC system. This is an implementation of the ML language, intended to serve as a test field for various extensions of the language, and for new implementation techniques as well. This system is strongly oriented toward separate compilation an ..."
Abstract
- Add to MetaCart
This report details the design and implementation of the ZINC system. This is an implementation of the ML language, intended to serve as a test field for various extensions of the language, and for new implementation techniques as well. This system is strongly oriented toward separate compilation and the production of small, standalone programs
Lambda-Calculus and Functional Programming
"... This paper deals with the problem of a program that is essentially the same over any of several types but which, in the older imperative languages must be rewritten for each separate type. For example, a sort routine may be written with essentially the same code except for the types for integers, bo ..."
Abstract
- Add to MetaCart
This paper deals with the problem of a program that is essentially the same over any of several types but which, in the older imperative languages must be rewritten for each separate type. For example, a sort routine may be written with essentially the same code except for the types for integers, booleans, and strings. It is clearly desirable to have a method of writing a piece of code that can accept the specific type as an argument. Milner developed his ideas in terms of type assignment to lambda-terms. It is based on a result due originally to Curry (Curry 1969) and Hindley (Hindley 1969) known as the principal type-scheme theorem, which says that (assuming that the typing assumptions are sufficiently wellbehaved) every term has a principal type-scheme, which is a type-scheme such that every other type-scheme which can be proved for the given term is obtained by a substitution of types for type variables. This use of type schemes allows a kind of generality over all types, which is known as polymorphism.
Data Abstraction
"... ion In Section 2-2 weintroduced the idea of data abstraction---that the logical appearance of a program's data can be made independent of its physical implementation. Most abstraction mechanisms are designed for manipulating general data structures such as stacks, queues, and trees. Within each abs ..."
Abstract
- Add to MetaCart
ion In Section 2-2 weintroduced the idea of data abstraction---that the logical appearance of a program's data can be made independent of its physical implementation. Most abstraction mechanisms are designed for manipulating general data structures such as stacks, queues, and trees. Within each abstract object, conventional programming techniques are used to describe its behavior. The Actor metaphor extends the idea of abstraction to assert that all programming constructs are objects #actors#, be they as simple as #the number 5," as functional as #factorial," or as complex as #this intelligent program." 145 146 models Actor Theory There are three kinds of actors: primitive actors, unserialized actors, and serialized actors. Primitive actors correspond to the data and procedure primitives of the computer system. For example, integer 5 and function + are primitive actors. Nonprimitive actors combine state and procedure. Serialized actors di#er from unserialized actors in that seriali...
Indeterminate Applicative Systems
"... #???4?67?9101112?14 15 16 ::: A stream, some of whose elements are unde#ned. Figure 12-1 Typical streams. In#nite Objects Several inventions led to the developmentofLisp-based distributable systems. Clearly, one of the most importantwas Lisp itself #McCarthy 65#. Another, less well known contr ..."
Abstract
- Add to MetaCart
#???4?67?9101112?14 15 16 ::: A stream, some of whose elements are unde#ned. Figure 12-1 Typical streams. In#nite Objects Several inventions led to the developmentofLisp-based distributable systems. Clearly, one of the most importantwas Lisp itself #McCarthy 65#. Another, less well known contribution was Peter Landin's description of streams #Landin 65#. Streams are possibly in#nite sequences of values. Sequences are a familiar idea in computer science---for example, linked lists are an implementation of sequences. Conceptually, a stream is a sequence with no last element. Streams are typically arguments to functions; those functions act on each element of the stream, producing another stream as output. In a Lisp-like system, the constituentvalues of a stream can be atomic symbols, #nite lists, or themselves streams. One value that might occur in a stream is bottom #?#, the unde#ned v
THEORY & PRACTICE
"... Mutant languages from the LISP lab APL is like a diamond. It has a beau tiful crystal structure; all of its parts are related in a uniform and elegant way. But if you try to extend this struc ture in any way—even by adding an other diamond—you get an ugly kludge. LISP, on the other hand, is like a b ..."
Abstract
- Add to MetaCart
Mutant languages from the LISP lab APL is like a diamond. It has a beau tiful crystal structure; all of its parts are related in a uniform and elegant way. But if you try to extend this struc ture in any way—even by adding an other diamond—you get an ugly kludge. LISP, on the other hand, is like a ball of mud. You can add any amount of mud to it and it still looks like a ball of mud. —Joel Moses, as paraphrased by Guy Lewis Steele Jr.
Using Message Passing Instead of the GOTO Construct
, 1978
"... This paper advocates a programming methodology using message passing. Efficient programs are derived for fast exponentiation, merging ordered sequences, and path existence determination in a directed graph. The problems have been proposed by John Reynolds as interesting ones to investigate because t ..."
Abstract
- Add to MetaCart
This paper advocates a programming methodology using message passing. Efficient programs are derived for fast exponentiation, merging ordered sequences, and path existence determination in a directed graph. The problems have been proposed by John Reynolds as interesting ones to investigate because they. illustrate significant issues in programming. The methodology advocated here is directed toward the production of programs that are intended to execute efficiently in a computing environment with many processors. The absence of the COTO construct does not seem to be constricting in any respect in the development of efficient programs using the programming methodology advocated here. The programming problems arising from use of the GOTO construct have become well known over the last decade. However, removal of the construct from traditional programming languages has been found by many to be constricting and to result in inefficient programs. A number of proposals have been advanced to allow the construct in a restricted way e.g. Knuth: 1974 and Reynolds: 19771.

