Results 1 - 10
of
36
Understanding Code Mobility
- IEEE COMPUTER SCIENCE PRESS
, 1998
"... The technologies, architectures, and methodologies traditionally used to develop distributed applications exhibit a variety of limitations and drawbacks when applied to large scale distributed settings (e.g., the Internet). In particular, they fail in providing the desired degree of configurability, ..."
Abstract
-
Cited by 429 (33 self)
- Add to MetaCart
The technologies, architectures, and methodologies traditionally used to develop distributed applications exhibit a variety of limitations and drawbacks when applied to large scale distributed settings (e.g., the Internet). In particular, they fail in providing the desired degree of configurability, scalability, and customizability. To address these issues, researchers are investigating a variety of innovative approaches. The most promising and intriguing ones are those based on the ability of moving code across the nodes of a network, exploiting the notion of mobile code. As an emerging research field, code mobility is generating a growing body of scientific literature and industrial developments. Nevertheless, the field is still characterized by the lack of a sound and comprehensive body of concepts and terms. As a consequence, it is rather difficult to understand, assess, and compare the existing approaches. In turn, this limits our ability to fully exploit them in practice, and to further promote the research work on mobile code. Indeed, a significant symptom of this situation is the lack of a commonly accepted and sound definition of the term "mobile code" itself. This paper presents a conceptual framework for understanding code mobility. The framework is centered around a classification that introduces three dimensions: technologies, design paradigms, and applications. The contribution of the paper is twofold. First, it provides a set of terms and concepts to understand and compare the approaches based on the notion of mobile code. Second, it introduces criteria and guidelines that support the developer in the identification of the classes of applications that can leverage off of mobile code, in the design of these applications, and, finally, in the selection of the most appropriate implementation technologies. The presentation of the classification is intertwined with a review of the state of the art in the field. Finally, the use of the classification is exemplified in a case study.
Orca: A language for parallel programming of distributed systems
- IEEE Transactions on Software Engineering
, 1992
"... Orca is a language for implementing parallel applications on loosely coupled distributed systems. Unlike most languages for distributed programming, it allows processes on different machines to share data. Such data are encapsulated in data-objects, which are instances of user-defined abstract data ..."
Abstract
-
Cited by 307 (43 self)
- Add to MetaCart
Orca is a language for implementing parallel applications on loosely coupled distributed systems. Unlike most languages for distributed programming, it allows processes on different machines to share data. Such data are encapsulated in data-objects, which are instances of user-defined abstract data types. The implementation of Orca takes care of the physical distribution of objects among the local memories of the processors. In particular, an implementation may replicate and/or migrate objects in order to decrease access times to objects and increase parallelism. This paper gives a detailed description of the Orca language design and motivates the design choices. Orca is intended for applications programmers rather than systems programmers. This is reflected in its design goals to provide a simple, easy to use language that is type-secure and provides clean semantics. The paper discusses three example parallel applications in Orca, one of which is described in detail. It also describes one of the existing implementations, which is based on reliable broadcasting. Performance measurements of this system are given for three parallel applications. The measurements show that significant speedups can be obtained for all three applications. Finally, the paper compares Orca with several related languages and systems. 1.
Analyzing Mobile Code Languages
, 1997
"... The growing importance of telecommunication networks has stimulated research on a new generation of programming languages. Such languages view the network and its resources as a global environment in which computations take place. In particular, they support the notion of code mobility. To under ..."
Abstract
-
Cited by 54 (12 self)
- Add to MetaCart
The growing importance of telecommunication networks has stimulated research on a new generation of programming languages. Such languages view the network and its resources as a global environment in which computations take place. In particular, they support the notion of code mobility. To understand, discuss, evaluate, and compare such languages, it is necessary to develop a new set of programming language concepts and/or extend the concepts that are used to deal with conventional languages. The purpose of this paper is to provide such framework. This is done hand-in-hand with a survey of a number of existing new languages.
Software Components in a Data Structure Precompiler
, 1993
"... : PREDATOR is a data structure precompiler that generates efficient code for maintaining and querying complex data structures. It embodies a novel component reuse technology that transcends traditional generic data types. In this paper, we explain the concepts of our work and our prototype system. W ..."
Abstract
-
Cited by 19 (9 self)
- Add to MetaCart
: PREDATOR is a data structure precompiler that generates efficient code for maintaining and querying complex data structures. It embodies a novel component reuse technology that transcends traditional generic data types. In this paper, we explain the concepts of our work and our prototype system. We show how complex data structures can be specified as compositions of software building blocks, and present performance results that compare PREDATOR output to hand-optimized programs. Keywords: components, software reuse, compiler, data structures. 1.0 Introduction Designing, writing, and debugging programs is a time-intensive task. Of the different aspects of writing programs of moderate to large complexity, implementing data structures often consumes a disproportionally large fraction of a programmer's time. A data structure compiler is a suite of tools that reduces the burden of programming data structures. There have been several attempts to produce such compilers. Two such compilers...
Geographical Information Systems and Dynamic Models
, 1995
"... Please refer to this publication as: ..."
Implementing a Domain Model for Data Structures
, 1992
"... We present a model of the data structure domain that is expressed in terms of the GenVoca domain modeling concepts [Bat91]. We show how familiar data structures can be encapsulated as realms of plug-compatible, symmetric, and reusable components, and we show how complex data structures can be for ..."
Abstract
-
Cited by 10 (6 self)
- Add to MetaCart
We present a model of the data structure domain that is expressed in terms of the GenVoca domain modeling concepts [Bat91]. We show how familiar data structures can be encapsulated as realms of plug-compatible, symmetric, and reusable components, and we show how complex data structures can be formed from their composition. The target application of our research is a precompiler for specifying and generating customized data structures.
Aesthetic Programming
, 2000
"... By marrying traditional methods for computer programming with an artistic temperament, we give birth to a new phenomenon: the aesthetic program. Our work builds on visual approaches in programming as well as modeling for software, where I envision a gradual evolution from program to model. The ne ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
By marrying traditional methods for computer programming with an artistic temperament, we give birth to a new phenomenon: the aesthetic program. Our work builds on visual approaches in programming as well as modeling for software, where I envision a gradual evolution from program to model. The need for the aesthetic model is strengthened with the importance of personalized, individually-tailored, models. I, and my students, have formulated the rube Project methodology around the use of 3D web-based virtual world construction of models. Initial results suggest that these models are artistic, while containing sufficient symbolism and concise metaphoric mapping as to be executable on a computer.
A Taxonomy for Simulation Modeling Based on Programming Language Principles
, 1996
"... We present a new modeling taxonomy for computer simulation. The importance of this work centers on a cohesive approach to modeling that attempts to unify heretofore disparate modeling techniques. For example, while there exists a taxonomy for discrete event simulation, this taxonomy does not incorpo ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
We present a new modeling taxonomy for computer simulation. The importance of this work centers on a cohesive approach to modeling that attempts to unify heretofore disparate modeling techniques. For example, while there exists a taxonomy for discrete event simulation, this taxonomy does not incorporate models whose execution is via continuous time increment. The modeling taxonomy has a similar structure to computer language categories: declarative, functional and constraint. The multimodeling model type permits the creation of a multi-level heterogeneous model that can integrate different model types, rather than displacing them in favor of a singular modeling method. Instead of advocating the removal of existing modeling techniques, our focus has been on organizing modeling techniques from different disciplines to yield unification. A TAXONOMY FOR SIMULATION MODELING BASED ON PROGRAMMING LANGUAGE PRINCIPLES PAUL A. FISHWICK Dept. of Computer & Information Science and Engineering U...
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...

