Visual programming languages employ visual representation to make programming easier and make programs more reliable and more accessible. Visual program testing becomes increasingly important as more and more visual programming languages and visual programming environments come into real use. In this work, we focus on one important class of visual...
Biologists need tools to see the structural relationships encoded in biological sequences (strings). The Walking Tree heuristics calculate some of these relationships. I have designed and implemented graphic presentations which allow the biologist (user) to see these relations. This thesis contains background information on the biological sequences and some background...
We developed a scientific information management system to facilitate remote access and analysis of earth and space science data, using the Component Model of software development provided by the Java language. The data sets are part of the Earth Observing. System project, being carried out at the College of Oceanic...
Guidelines for using style to improve computer program comprehension
have often been proposed without empirical testing. This thesis reports on the
results of three controlled experiments that investigated ways program style may be
used to aid comprehension of source code listings.
Experiments 1 and 2 were conducted using advanced computer...
Forms are an easy-to-use interface to access a database, including a remote database on the Internet. An entity-relationship (ER} diagram, which is a pictorial representation of a database schema, is widely used in designing a database. A class diagram, which shows set of classes, relationships among them, and associations, are...
Error-correcting output coding (ECOC) is a method for converting a k-classsupervised learning problem into a large number L of two-class supervised learningproblems and then combining the results of these L evaluations. Previous researchhas shown that ECOC can dramatically improve the classi cation accuracy of supervisedlearning algorithms that learn to classify...
Until now, most hypertext systems have been implemented on large scale computers. With improvements in microprocessors and development of graphical user interfaces, personal computers can run systems that previously needed the power of a mainframe. The low costs and widespread use of PCs will enable many people to use hypertext...
In this report., we address the issues of translating MATLAB scripts into SPMD-style C programs. The resulting programs, when linked with our run-time library are suitable for execution on parallel computers. We describe the design of the compiler and improvements made to it in the current version. We also describe...
There is a software gap in parallel processing. The short lifespan and small installation base of parallel architectures have made it economically infeasible to develop platform-specific parallel programming environments that deliver performance and programmability. One obvious solution is to build architecture-independent programming environments. But the architecture independence usually comes at...
There are lots of mailing systems available for Apple Macintosh computers. But when this research was started, there were no Voice Mail System for the Macintosh. However, a similar system was available for the NeXT machine. So the main goal of this research was to develop a Voice Mail System...
The Server System/1 (SS/1) Design Editor is a graphical programming tool that provides a simple interface for object oriented parallel programming. Two difficult problems with parallel programming, partitioning, end visualization are addressed by the SS/1 Design Editor. An SS/1 program is structured using object oriented design concepts. This leads to...
To ease the process of building GUI applications, we constructed an object-oriented application framework called Objex which defines much of an application's standard user interface and operating behavior. By incorporating the MVC (Model-ViewController) interaction model in the framework, design as well as code is reused by all applications derived from...
System dependence graphs, an interprocedural extension to program dependence graphs, are an important tool in the analysis of program source code, especially for performing program slicing upon that code. Given the complexity of most programs, and the difficulty of creating program slices, it is vital to create system dependence graphs...
Exception handling is a programming language feature that can help increase the reliability of programs. However, not much work has been done on exception handling in visual programming languages. We present an approach for improving the exception handling mechanism in Forms/3, a declarative visual programming language based on the spreadsheet...
The Distributed Testing Coordinator (DTC) is a system for control and coordination of the software testing processes at Rogue Wave. Some important features in this product include automatic resource configuration, centralized job scheduling, concurrent and distributed testing, failure recovery, and automatic event logging and test reporting.
DTC consists of a...
The Dataset Revision Control System (DRCS) is a data management tool for managing the changes made to scientific datasets. Using a new model of revisions, it stores the changes or revisions as reverse deltas. The DRCS model of revisions includes two kinds of update operations besides insert and delete operations....
Objex is an object-oriented framework for producing C++ applications through specialization of a class library and interaction model. The problem addressed in this report is that of automatically producing C++ source code from Petri Network design descriptions of applications constructed from Objex components.
The approach is to add a code...
Prioritization techniques are used to schedule test cases to execute in a specific order to maximize some objective function. There are a variety of possible objective functions, such as a function that measures how quickly faults can be detected within the testing process, or a function that measures how fast...
CHARM is a parallel programming language that was originally implemented for a network of workstations each of which has only one processor. In this project, we ported CHARM for a network of workstations each of which has more than one processor (multi-computer) using multithreading to exploit the multiple processors.
Network...
Two prevalent models of parallel programming are data parallelism and task parallelism. Data parallelism is the simultaneous application of a single operation to a data set. This model fits best with regular computations. Task parallelism is the simultaneous application of possibly different operations to possibly different data sets. This fits...
Task Grapher is a tool for the study of optimal parallel program task scheduling on arbitrary interconnected parallel processors. Given a task graph, this tool can be used to produce several kinds of displays to help users to determine optimal scheduling heuristics and optimal machine topology.
Previous versions of Task...
Software applications that successfully employ a grap ica user interface to display and manipulate their data are recognized as easy to use and difficult to implement. While the complexity of such applications has increased dramatically, the tools available to application designers have not advanced at the same pace. Current tools...
In this paper, we present two systolic designs of a chip that can be used to perform Modular Multiplication. The time taken by these two designs is 5n and 3n respectively, where n is the number of digits. These designs are based on Montgomery's redc algorithm. We also present an...
We have developed SearchPak, a machine independent parallel searching tool on shared and distributed memory machines. It can be used for combinatorial optimization problems and OR-parallel computations as well. Both depth-first and best-first search of the state space can be performed using the SearchPak. With SearchPak, a user just provides...
A structural active-object systems (SAOS) is a, transition-based object-oriented system consisting of a collection of interacting structural active objects (SAOs), which can be structurally and hierarchically composed from their component SAOs. The behaviors of SAOs are determined by the transition statements provided in their class definitions. Various concurrent systems such...
Dataparallel C is a SIMD style data-parallel programming language for MIMD computers. Dataparallel Chas been implemented on both shared memory (Sequent) and distributed memory (Intel and nCUBE) computers. Here we analyze the strengths and weaknesses of Dataparallel C by comparing the performance of compiled Dataparallel C programs with the performance...
I introduce a compositional approach to application software development. In this approach, an extended entity-relationship diagram (EERD), which represents the component types and the relationship types within an application domain, is used as a template of executable programs in that application domain. As we use structural active objects as the...
In this paper, we describe a software mechanism, a software channel, that allows a group of distributed objects to communicate with each other automatically once they are connected to it. Software channels and predesigned distributed objects that are connected to them encapsulate the communication protocol and the network topology to...
The purpose of this project is to study the benefit at large parking lots having shuttle busses by providing a system that dynamically routes a shuttle. The shuttle route will be set by the placement of the travelers returning from the terminal. A parking space is assigned to the incoming...
Data structures are essential for any programming task. Most of modem programming languages have a library of reusable data structures. In this project, Smalltalk-like collection classes have been implemented as a Java package. This package, collections, contains several useful data structures such as binary tree, B-Tree, bag, list, hash table...
Data, buffering is an important mechanism to enhance performance of a database system. In this project, we studied the data buffering mechanism of the Oracle database system and created an Oracle data buffering simulation program in Java. The data obtained from the simulation program w re compared with the performance...
Serializability is unnecessarily strict for real-time systems because most transactions in such systems occur periodically and changes among data values over a few consecutive periods are often insignificant. Hence, data values produced within a short interval can be treated as if they are "similar" and interchangeable. This notion of similarity...
Declarative visual programming languages (VPLs), including spreadsheets, make up a large portion of both research and commercial VPLs. Spreadsheets in particular enjoy a wide audience, including end users. Unfortunately, spreadsheets and most other declarative VPLs still suffer from some of the problems that have been solved in other languages, such...
We present a model for a distributed virtual market place that can be constructed on the Internet to support selling and buying requests, such as those found as classified advertisements. One requirement for a transaction to take place in the virtual market place is that a sell request and a...
Parallel loops are one of the main sources of parallelism in scientific applications, and many parallel loops do not have a uniform iteration execution time. To achieve good performance for such applications on a parallel computer, iterations of a parallel loop have to be assigned to processors in such a...
The SAOS Road Network Simulator (SARNS) is a graphical simulation program for transportation planning, implemented using the structural active-object system (SAOS) approach. A SAOS is an object-oriented concurrent system that consists of a collection of interacting structural active objects (SAOs), whose behaviors are determined by transition statements provided in their...
Many parallel machines, both commercial and experimental, have been/are being designed with toroidal interconnection networks. For a given number of nodes, the torus has a relatively larger diameter, but better cost/performance tradeoffs, such as higher channel bandwidth, and lower node degree, when compared to the hypercube. Thus, the torus is...
Bayesian networks are used for building intelligent agents that act under uncertainty. They are a compact representation of agents' probabilistic knowledge. A Bayesian network can be viewed as representing a factorization of a full joint probability distribution into the multiplication of a set of conditional probability distributions. Independence of causal...
Remote Event Listener(REL) is designed to glue remote events and remote listeners dynamically, and dispatch remote events efficiently and transparently
for distributed object-oriented systems. Components can be independently developed and remotely interconnected with REL, and software reusability can
be improved. Remote Event Listener along with Remote Method Invocation
makes distributed...
Protocol Analysis is a technique that is commonly applied to study human problem solving. The measurement of reaction time ( or timing analysis) is another technique commonly used to study human cognitive behavior, including human problem solving. This paper examines the process of applying both of these techniques to the...
This thesis compares two methods for studying the problem-solving processes of
mechanical design engineers. The first method, verbal protocol analysis, was applied
by L. Stauffer to construct a problem-solving model of mechanical design. The
second method, timing analysis, measures the time intervals separating drawing or
speaking actions during the design...
Like other scientific fields, computer science is in great need of experimentation to support, improve, disprove and even establish theories. One area in which experimental results are highly desired involves regression testing, which is performed on modified software to provide confidence that the software behaves correctly and that modifications have...
Software maintenance is an expensive part of the software lifecycle: estimates put its cost at up to two-thirds of the entire cost of software. Regression testing, which tests software after it has been modified to help assess and increase its reliability, is responsible for a large part of this cost....
A good code generator must effectively utilize the registers provided by the target architecture. Although a number of register allocation techniques exist, few address the issues involved in multiple register banks and no known techniques exist for effectively using register banks of the same type that are associated with multiple...
In this project we have designed a new construction method for t error correcting constant weight codes. This method is an improvement over the existing codes in terms of information rate. The construction method is recursive as it is based on the observation that 2t error correcting code can be...
This study describes the software metrics analysis of IO releases of an embedded real-time telephone switching system developed by a German telecommunications firm. The micro-controlled application was written in a C-like macro assembly language. We developed a metrics program that computes the standard complexity metrics plus a number of information...
The potential of the Internet-especially, the World Wide Web- as a medium for instruction has been realized. Numerous web-based courses have been developed in the recent past. However, most of these courses are nothing but glorified texts. The reasons being (a) lack of understanding of the pedagogic challenges of web-based...
The k-ary n-cube structure is presented in this paper for interconnecting a network of microcomputers in parallel and distributed environments. Machines based on the k-ary n-cube topology have been advocated as ideal parallel architectures for their powerful interconnecting features.
In this paper, we examine the k-ary n-cube from the graph...
Proxy Pipe is designed to be a bus in the transport layer of the communication between the two different processes. Its major function is to transfer bytes. When the client process tries to send a command to the server process, it will talk to a proxy as if it were...
A problem with a number of available parallel programming tools proposed and implemented by researchers is that there has been little consideration of the impact of the user interface on users outside the field of computer science.
In this paper we propose and implement Banger, an extension to the Parallel...
Dataparallel C has been designed for various kinds of architectures and was developed jointly at University of New Hampshire and Oregon State University.
This project dealt with porting the libraries to the nCUBE 2 system and helping a user compile his programs on nCUBE 2 directly from a Sun workstation...
High level data-parallel languages are easy to use and shield the programmer from machine specific details. A simple and efficient way of providing an interface to such languages is to develop a machine-independent compiler and a routing library, which isolates the low-level machine dependent communication functions, The compiler translates the...
The Oregon Speedcode Universe v3.0 (OSU v3.0) has a class hierarchy designed and implemented to be portable to other platforms because there are few operating system dependent routines used in it. What needed to be ported were the 46 Application Framework Classes (Application Framework) and the 15 Shape Classes (Shape...
Visualizing and navigating through a plan is difficult without graphics. Two X applications, PlanView and HViews, are graphical user interfaces to an AI planner, OPIE, developed at the University of Oregon. In addition to a plan generator, OPIE includes a facility to generate operator abstractions which in turn are used...
Understanding of techniques that can be used to develop software for various parallel machines has not fully matched the dramatic progress in hardware in recent years. Most parallel programming techniques have been closely tied to specific hardware. Different machines have different primitives and architectures. Programming and porting an application with...
In this research, we have captured, in pattern form, key elements of programming and design in four programming paradigms (imperative, object-oriented, functional and logical) as well as multiparadigm programming. These pattern sets have formed a foundation upon which we were able to build a deeper understanding of multiparadigm programming and...
The Symbolic Probabilistic Inference (SPI) algorithm was developed by Bruce D' Ambrosio for efficient calculation of prior probabilities in belief nets [2]. Although the complexity of the SPI algorithm compares favorably with other approaches to probabilistic inference [5], its actual running time is still prohibitively long even for moderately sized...
Many performance tuning tools for parallel software use visual representations of trace data to guide a developer towards code improvements. Most widely used visualization schemes, however, either omit useful information about time dependence of processor use, or include that information but do not scale well to long run times or...
Graphical user interface (GUI) applications based on object-oriented design are difficult to build without a supportive tool to graphically visualize the structure of the entire application. As an application becomes larger and more complex, it becomes harder to visualize its class hierarchy. Several systems, such as Smalltalk, MacApp, THINK C...
Many different types of distributed batch scheduling systems have been developed in the last decade to take advantage of the decentralization of computers and the enormous investments that many companies and educational institutions have in desktop workstations. Based on the premise that the majority of desktop workstations are significantly underutilized,...
Probabilistic inference using Bayesian networks is now a well-established approach for reasoning under uncertainty. Among many e ciency-driven tech- niques which have been developed, the Optimal Factoring Problem (OFP) is distinguished for presenting a combinatorial optimization point of view on the problem. The contribution of this thesis is to extend...
Parallel computers are classified into: Multiprocessors, and multicomputers. A multiprocessor system usually has a shared memory through which its processors can communicate. On the other hand, the processors of a multicomputer system communicate by message passing through an interconnection network. A widely used class of interconnection networks is the toroidal...
Existing graphics systems are too large for students to study in an introductory computer graphics course. We have implemented a lightweight, object-oriented graphics system called OGS for instruction. OGS is written in Java. It demonstrates how a graphics system is implemented from scratch and is intended to help students understand...
In this project we have implemented an Object-Oriented simulation model of a Digital Switching System. We analyzed various software components of a Digital Switching System. The call processing module is the principal component and the most complex of all. The features of Object-Oriented principles were investigated and found to fit...
Since its introduction in 1995 by Sun Microsystems, the Java programming language has been widely accepted by the software development community. Besides being a natural fit for Internet and World Wide Web (WWW) based applications, Java is also being used in other diverse application areas due to its simplicity, reduced...
Probabilistic inference in belief networks provides an effective way of reasoning under uncertainty. Efficiency is critical in applying this technique and many algorithms have been developed by many researchers. This is to report the object oriented design and implementation in C++ of such a probabilistic inference system using efficient algorithms.
The goal of this project is to develop and implement an application which will facilitate the management and testing of computer communication networks. Such an application is commonly known as a network monitor or a network packet sniffer. In addition to the main goal of developing an application, there are...
The conventional way of debugging is to examine the program's state at various points during execution. With the addition of message passing as a means of communication and synchronization in message passing programs, the state of pending message operations also needs to be examined. Current parallel debuggers or analysis tools...
When changes are made to programs - to enhance their functionality, to improve performance, to migrate from one language or machine to another, or to convert a serial program to parallel form - there is no easy way to verify that the changes maintain program correctness. Checking the final result...
Many important application problems in engineering can be formalized as nonlinear
optimization tasks. However, numerical methods for solving such problems
are brittle and do not scale well. For example, these methods depend critically
on choosing a good starting point from which to perform the optimization search.
In high-dimensional spaces, numerical...
Scheduling problem has both theoretical and practical interest. A great deal of research has been done in this field. In this paper we will use a local optimal search method to do job shop scheduling. This method will be compared with a constraint satisfaction method called Micro-boss. Other issues such...
Little Smalltalk is a small, reasonably fast, easy-to-understand, easy-to-modify Smalltalk system. The system was originally developed in 1984 as a part of an implementation project to develop a minimal Smalltalk system, closely resembling Smalltalk-80. The system was developed in C. The current project is an experiment to port the Little...
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...
In this paper we outline an implementation of Linda on a network of Unix workstations. A literature survey was done to gain a better perspective on state of the art and to learn from the experiences of other implementations. The tuple space which is central to the Linda system is...
One of the main problems in debugging parallel programs is in determining how far a parallel program has executed when it crashes or stops. Even if the program dumps core files for all the parallel processes, the information is at such a low level that it is difficult to interpret...
Artificial Intelligence (AI) planning techniques have been central to automating a gamut of tasks from the mundane route planning and beer production to the ethereal image processing of space-ship images. Of all the planning techniques, hierarchical- decomposition planning has been the technique most employed in industrial-strength planners. Hierarchical-decomposition planning is...
Learning easily understandable decision rules from examples is one of the classic problems in machine learning. Most learning algorithms for this problem employ some variation of a greedy separate-and-conquer algorithm. In this paper, we describe a system called LERILS that learns highly accurate and comprehensible rules from examples using a...
Multiparadigm programming languages are a recent development in the realm of programming languages. A multiparadigm programming language allows the use of multiple, differing programming paradigms without departing from a single, unified linguistic framework. Multiparadigm programming languages are claimed to have benefits to both pedagogy and complex application creation. The beneficial...
Knowledge-Based Model Construction (KBMC) has generated a lot of attention
due to its importance as a technique for generating probabilistic or decision-theoretic
models whose range of applicability in AI has been vastly increased. However, no
one has tried to analyze the essential issues in KBMC, to determine if there exists...
This research explores the hypothesis that methods from decision theory and machine learning can be combined to provide practical solutions to current manufacturing control problems. This hypothesis is explored by developing an integrated approach to solving one manufacturing problem - the optimization of die-level functional test.
An integrated circuit (IC)...
The Java programming language is a recent entry in the family of object-oriented languages and like all new languages has yet to achieve widespread standardization of coding styles for the unique aspects it possesses. This paper and project address this issue by presenting a complete and rationalized style guide for...
In real-time control systems, the value of a control decision depends not
only on the correctness of the decision but also on the time when that decision
is available. Recent work in real-time decision making has used machine learning
techniques to automatically construct reactive controllers, that is, controllers
with little...
Multicomputers and multiprocessors, first introduced in the mid 1980s, employ large numbers of microprocessors working in parallel to achieve high performance at low cost. These parallel machines represent an exciting new generation in supercomputing, but their usefulness is currently limited by inadequate programming languages and environments. This problem is being...
As the World Wide Web continues to grow, people clearly want to do much more
with it than just publish static pages of text and graphics. While such increased interactivity
has traditionally been accomplished through the use of server-side CGI scripts,
much recent research on Web browsers has been on...
Applications supporting a graphical user interface (GUI) are difficult to write. While existing tools can accelerate software development, they suffer from a number of problems that limit their helpfulness. They offer too little functionality, and support only a small part of the GUI software development task. They lack architectural models...
The problem addressed in this paper is that of the extension of multimedia mechanism into Objex, an object oriented framework.
Several multimedia productions have been developed recently, such as QuickTime™, HyperCard, MacSpeaker, Multi-Ad Creator 3.0, etc. [Heid 91]. The common problems with them, however, are that they are all implemented...
Two types of parallel computers commonly used or solving large scientific problems are clusters of workstations and distributed-memory multicomputers. Each system has strengths and weaknesses for this task. Workstation clusters have a high performance to cost ratio and the advantage of the latest processors. Workstations are commonly under-utilized and can...
Distance learning enables students to study effectively from remote locations. With
televised lectures now commonplace, many disciplines can provide effective distance
learning. While the lecture format serves many disciplines, it does not serve those that
require laboratory work. Currently, there is little distance learning support for laboratory
work.
Second Best...
The goal of this project was to investigate the addition of parameterized types to the Java programming language. Two different parametric polymorphism mechanisms were developed and compared. The first was a preprocessor and the second was a compiler.
Parameterized types allow a programmer to create generic programs. Much as a...
Programming parallel machines has been a difficult and unrewarding task. The short lifespan of parallel machines and their incompatibility have made it difficult to utilize them. Our goal here is to create an environment for parallel computing which allows users to take advantage of parallel computers without writing parallel programs....
The processor allocation in an n-dimensional hypercube multiprocessor using buddy strategy, gray code strategy, and a new strategy is implemented on Macintosh. Our implementations show that when processor relinquishment is not considered (i.e. static allocation), all these strategies are optimal in the sense that each incoming request sequence is always...
A multiparadigm language is one which combines features of different language paradigms. Leda is a strongly typed, compiled, multi.paradigm language with facilities for imperative, functional, object oriented and relational programming. This report describes the type checker of the Leda compiler and the implementation of first class functions required for functional...