Results 1 -
3 of
3
Dynamic Modules in Higher-Order Languages
- IN PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTER LANGUAGES
, 1994
"... Providing programmers the ability to construct meaningful abstractions to help manage complexity is a serious language design issue. Many languages define a module system that can be used to specify distinct namespaces, and build user-defined data abstractions; however, few languages support dynamic ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Providing programmers the ability to construct meaningful abstractions to help manage complexity is a serious language design issue. Many languages define a module system that can be used to specify distinct namespaces, and build user-defined data abstractions; however, few languages support dynamic modules, i.e., modules which are true first-class objects. In this paper, we define a module semantics for a dialect of Scheme called Rascal. Modules are defined in terms of reified environments, and are first-class objects which may be dynamically created, freely assigned, used as arguments to procedures, etc.. If defined naively, however, implementing modules using environments can entail the capture of unwanted bindings, leading to potentially severe violations of lexical abstraction and locality. We address these concerns by giving users great flexibility to manipulate environments, and to constrain the extent and scope of the environment reification process. We argue that the techniqu...
Virtual Topologies: A New Concurrency Abstraction for High-Level Parallel Languages
- DIMACS Workshop on Interconnection Networks and Mapping and Scheduling Parallel Computations
, 1994
"... ion for High-Level Parallel Languages (Preliminary Report) James Philbin 1 , Suresh Jagannathan 1 , Rajiv Mirani 2 1 Computer Science Division, NEC Research Institute, 4 Independence Way, fphilbin|sureshg@research.nj.nec.com 2 Department of Computer Science, Yale University, New Haven, ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
ion for High-Level Parallel Languages (Preliminary Report) James Philbin 1 , Suresh Jagannathan 1 , Rajiv Mirani 2 1 Computer Science Division, NEC Research Institute, 4 Independence Way, fphilbin|sureshg@research.nj.nec.com 2 Department of Computer Science, Yale University, New Haven, CT mirani@cs.yale.edu Abstract. We present a new concurrency abstraction and implementation technique for high-level (symbolic) parallel languages that allows significant programmer control over load-balancing and mapping of fine-grained lightweight threads. Central to our proposal is the notion of a virtual topology. A virtual topology defines a relation over a collection of virtual processors, and a mapping of those processors to a set of physical processors; processor topologies configured as trees, graphs, butterflies, and meshes are some well-known examples. A virtual topology need not have any correlation with a physical one; it is intended to capture the interconnection stru...
Transforming Sequences using Threaded Morphisms
"... Sequences are very useful structures in programming languages. Functional programming languages allow the convenient definition of transformations between sequence algebras and other types of data algebra. Sequence homomorphisms are an important class of such transformations. However, not all de ..."
Abstract
- Add to MetaCart
Sequences are very useful structures in programming languages. Functional programming languages allow the convenient definition of transformations between sequence algebras and other types of data algebra. Sequence homomorphisms are an important class of such transformations. However, not all desired transformations can be expressed as homomorphisms. This paper describes a class of transformation which is a generalisation of homomorphisms: sequence morphisms with threads. This class is shown to contain a number of interesting sub-classes of transformation. The morphisms are described using a simple functional programming language and are applied to the design and implementation of a simple object-oriented programming language feature. 1 Introduction This paper describes a class of sequence transformations or morphisms. The class is a generalisation of sequence homomorphisms and is shown to contain various interesting sub-classes. In order to describe this class of morphisms...

