Artimis is part of an environment for software reuse consisting of two logically independent portions, 1) the indexing and retrieval facility called, GrabBag, for storage and subsequent retrieval of reusable modules, and 2) a set of tools called Browsers, which aid reading and understanding of source programs. GrabBag creates a...
The focus of this paper is on the underlying knowledge base for an intelligent tutorial system for high school algebra problems. We present a model of problem solving flexible enough to account for a variety of problem solving behaviors and general enough to allow new problem domains to be defined...
We describe a. new approach to implementing functions as first class values. Using this technique, there is no additional overhead imposed for the most common case, that of non-nested functions bound at compile time. Invoking function values assigned to variables requires two additional instructions. It is only when functions are...
In this project we have attempted to exploit the parallel programming features of a Sequent Balance multiprocessor to improve the performance of a Smalltalk interpreter. The block construct and the fork message together make Smalltalk a 'natural' parallel programming language. We describe how processes can be created from within the...
The counseling field is infused with multiculturalism and social justice competencies from the Council for Accreditation of Counseling and Related Educational Programs accreditation standards of the academic institutions to the American Counseling Association Code of Ethics. Counselors are tasked with understanding multiculturalism from self-awareness to clients’ worldviews to larger implications...
Program understanding is an integral part of the testing and maintenance phases of the software life cycle. There have been numerous investigations of the influence of various aspects of a program and the program- ming process on program comprehension. However, the many different measures of understanding used in these studies...
An active-object user interface system (AOUIS) is a user interface system implemented as an active object system (AOS). An AOS is a transition-based object-oriented system suitable for the design of various concurrent systems. In an AOUIS, user interface objects, which are sometimes called "widgets", are represented as active user interface...
An active object system is a transition-based object-oriented system suitable for the design of various concurrent systems. An AOS consists of a collection of interacting objects, where the behavior of each object is determined by the transition statements provided for the class of that object. A transition statement is a...
Control abstraction is the process by which programmers define new control constructs by specifying an ordering of statement execution. Using control abstraction, we can create new control constructs for parallel programming, separate the specification of parallelism and synchronization from the rest of the application code, and vary the parallelism exploited...
This paper presents a study of the distribution of assembly language instructions in two avionics software applications and the development of an information theoretic software complexity metric based on the study. The instructions were grouped into classes , e.g. load and store, arithmetic, jump, compare, etc. As expected the distribution...
Cichelli has presented a simple method for constructing minimal perfect hash tables of identifiers for small static word sets. The hash function value for a word is computed as the sum of the length of the word and the values associated with the first and last letters of the word....
A new technique of implementing the object-oriented language Little Smalltalk is developed using tuple space communication of Linda. In this implementation, the language's abstract constructs such as object, class, and method are naturally mapped into tuple space. Since Linda's tuple space is designed to facilitate parallel processing, this implementation technique...
Biological and physical limitations require that DNA be sequenced in fragments. There are several approaches to obtain the appropriate sized fragments of DNA to sequence. The method of sequencing that we are interested in is loosely referred to as shotgun sequencing. Many copies of the genomic DNA to be sequenced...
In this short paper, I plan to review the work I have done on neural nets over the course of the last 20 years. As one might reasonably expect the questions being asked and the approaches to solving them have evolved, but there are still fundamental questions which remain unanswered...
Ambiguity is a typical element of treaty documents. Its success in accommodating divergent interests, creating boundary conditions leading to dispute prevention and facilitating the conclusion of agreements has been widely recognized, yet less is known whether or not intentional ambiguity or unintentional ambiguity, or perhaps both, lead to challenges or...
At a time when environmental conditions are rapidly changing, understanding how thermal extremes impact wildlife is imperative to fully understanding the consequences of climate change in natural ecosystems. While many organisms are currently impacted by rapidly warming and more erratic environmental conditions, identifying and investigating model species whose life histories...
It is suggested that the best way to learn about a Macintosh application is to play around with it. We agree with this philosophy and believe that most of the features in the Parallel Programming Support Environment (or PPSE) are easy enough to learn without referring to this manual. Most...
Multiclass learning problems involve finding a definition for an unknown function f(x) whose range is a discrete set containing k > 2 values (i.e., k "classes") . The definition is acquired by studying large collections of training examples of the form (xi, f(xi)) . Existing approaches to this problem include...
Many important application problems can be formalized as constrained non-linear optimization tasks. However, numerical methods for solving such problems are brittle and do not scale well. Furthermore, they do not provide much insight into the structure of the problem space. This paper describes a method for discovering efficient rules that...
A Belief Net is a factored representation for a joint probability distribution over a set of variables. This factoring is made possible by the conditional independence relationships among variables made evident in the sparseness of the graphical level of the net. There is, however, another source of factoring available which...
The performance of the error backpropagation (BP) and ID3 learning algorithms was compared on the task of mapping English text to phonemes and stresses. Under the distributed output code developed by Sejnowski and Rosenberg, it is shown that BP consistently out-performs 1D3 on this task by several percentage points. Three...
Exploratory research contributes to the continued vitality of every discipline. The aim of exploratory research is to identify new tasks-tasks that cannot be solved by existing methods. Once a new task has been found, exploratory research seeks to develop a precise definition of the task and to understand the factors...
The performance of the error backpropagation (BP) and 1D3 learning algorithms was com- pared on the task of mapping English text to phonemes and stresses. Under the distributed output code developed by Sejnowski and Rosenberg, it is shown that BP consistently out- performs ID3 on this task by several percentage...
Asmodeus is a distributed database system which simplifies the tasks of the Unix systems administrator. Using simple commands to the Asmodeus command interface, the systems administrator can perform many tedious operations over a large network of machines. The system uses a reliable datagram socket connection for all of its communication....
In this paper we study the problem of scheduling parallel program tasks that are enclosed in a set of nested loops on parallel computers. We first introduce a representation of the tasks and their relations in a loop. The representation allows us to express loop-carried data dependences among tasks as...
We provide a new solution to the problem of scheduling parallel program tasks that are enclosed in a set of nested loops on distributed-memory parallel computers. The new solution is extended to a new scheduling heuristic for scheduling unrolled loops onto arbitrary target machines. Our technique allows several iterations of...
The task of inductive learning from examples places constraints on the representation of training instances and concepts. These constraints are different from, and often incompatible with, the constraints placed on the representation by the performance task. This incompatibility explains why previous researchers have found it so difficult to construct good...
Beacons are defined as sets of key features that typically indicate the presence of a particular data structure or operation. It has been claimed that programmers use them to help comprehend an unfamiliar program. However, despite their importance, beacons are not well-defined and very few have been identified. The present...
This paper develops a new model of software maintenance based upon an objective decision rule which determines whether a given software module can be effectively modified, or if it should instead be rewritten. Completely rewriting a module can be expensive, but it can be even more expensive if the module's...
Signaling refers to the addition of non-content information to a text in order to emphasize certain ideas and/or clarify the organization. There is increased interest in using typographic signaling, such as boldface type, different font sizes and ruled lines, to format computer program source code listings. However, little evidence exists...
The continuous-time mathematics of a binary-decision making neuromime are presented. The model, generally describable as a simplification of the Hodgkin-Huxley model, seeks to mimic many properties of biological neurons including spatial and temporal summation of excitatory and inhibitory inputs, action potential evolution controlled by countervailing charge movements, and postinhibitory rebound...
There is some debate over the effect of using deeply nested control structures upon programmer comprehension. In order to test the effect of deeply nested IF-THEN-ELSE statements, we split 148 computer science students of varing backgrounds into two groups. One group received a listing of a program that made excessive...
Smalltalk-80 obtains some of its expressive power from arranging classes in a hierarchy. Inheritance is an important aspect of this hierarchy. An alternative organization of classes is proposed that emphasizes description instead of inheritance. This alternative can be used with compile-time type checking and retains the important characteristics of Smalltalk's...
A method for implementing parameterized types is given. Two simplifying restrictions are assumed: types are only parameterized with other types, and assignment is like that of SNOBOL, CLU, and Smalltalk. An algorithm for type checking that handles parameterized types and overloading is presented .
Expert advisory systems for agricultural pest management control offer the means to capitalize on the wealth of information that is currently tied up in research laboratories and human experts' minds. The ideal system would blend knowledge from three sources - human experts, dynamic simulation models, and historical databases - to...
The design of an experimental object-based programming language is discussed. The language is intended for investigating techniques for organization of programs.
The ALGEBRA READER models how an expert might read an algebra word problem. When experts read such problems they are believed to use pattern-indexed schemata and heuristics for known problem categories. These schemata are represented by pattern-action pairs that interact concurrently with the augmented transition network used to parse the...
We investigate the use of automata theory to model strategies for nonzero-sum two-person games such as the Prisoner's Dilemma. We are particularly interested in infinite tournaments of such games. In the case of finite-state strategies (such as ALL D or TIT FOR TAT) we use graph traversal techniques to show...
Our thesis is that data parallel programs can be translated into programs that execute efficiently on a variety of architectures. Currently we are focusing on the data parallel programming language C*, developed by Thinking Machines Corporation for the Connection Machine processor array. Previous papers have described our design of a...
Leda is a strongly typed, compiled, multiparadigm programming language. This paper describes various implementation concerns which arose from the experience of writing a Leda compiler as part of the Leda research team. These include aspects of run-time representation, symbol-table information, and code generation. The paper concentrates on objects and classes....
As UNIX operating system's popularity increases, so arises the greater need for performance data gathering and resources management of the systems. Contrary to the expectation of UNIX users, however, there is only a limited set of tools available, and these tools are difficult to correlate data from different sources and...
Leda is a newly evolving, strongly typed, compiled multi-paradigm programming language. This paper describes the integration of one of its supported paradigms, the logical (or relational) paradigm, into the language and the current implementation. It also describes implementational aspects of enumerated types and gives a variety of example programs that...
This paper describes an analysis tool that extracts complexity metrics from Program Design Language (PDL) as contained in design specification documents. The tool analyzes pseudocode and computes token-count metrics of PDL complexity on a module by module basis. We used the tool to measure consistency within and across modules and...
A modern computerized manufacturing control system must manage production data, coordinate control actions, and provide user-friendly interfaces. An actionbase management system (ABMS) is a general software system that facilitates implementations of actionbase systems that provide these capabilities for different applications. Besides an ordinary data management facility, our ABMS includes action...
Oregon Speedcode Universe (OSU) is a software development system employing on-screen editing of standard graphical user interface objects, prototyping, program generation, and automatic analysis tools which are typically used to accelerate the production of running applications. A programmer uses OSU to design and implement all user interface objects such as...