Yashar is a rule based meta-tool for rapidly producing tools to increase programming speed through automating restructuring of existing source code modules so they can be reused, generating of syntax-directed tools, language-to-language translation, automated document generation , and various debugging tools. The main significance of Yashar is that it can...
The term object-oriented is defined. This definition is then related to message-passing, inheritance, polymorphism, data abstraction, generics, and overloading.
A software system to study network algorithms was implemented on UNIX. Each part of a network algorithm can be written as a single C program which becomes a virtual node in the network. During a simulation all virtualized nodes run as separate processes on a single PDP 11/44. Inter-node communication...
This report describes "VIGRAM" (Visual Programming) which is a program understanding and complexity metric analysis tool for Pascal programs. VIGRAM is implemented on the Macintosh as one part of the "O.S.U." (Qregon Speedcode Universe) project. With VIGRAM, the source code of a Pascal procedure can be displayed as a visual...
In this dissertation we consider the problem of
automating the design of access structures for relational
database systems. The main considerations are effective
and rigorous utilization of the users' usage patterns,
global treatment of the whole design and utilizing most of
the commonly known access structures.
We represent the usage...
In recent papers on machine learning, the term 'operationalization' has been used to describe the purpose of the learning process. In particular, explanation-based learning systems are said to 'operationalize' the given target concept. Unfortunately, the exact meaning of this term has varied from one paper to another, and frequently the...
Summary of results. After implementing the plain ID3 algorithm, I experimented with
various modifi cations. Two improvements of the process of finding a legal phoneme/stress
could be made by using statistical information about the letter to phoneme/stress-mapping
in the training set.
Adding the CHI-SQUARE test to the ID3 algorithm was...
An extensive theory of symmetric error control coding has been developed in the last few decades. The recently developed VLSI circuits, ROM, and RAM memories have given an impetus to the extension of error control coding to include asymmetric and unidirectional types of error control. The maximal numbers of unidirectional...
There is disagreement about the role and importance of typographic style (source code formatting and commenting) in program comprehension. Results from experiments and opinions in programming style books are mixed.
This paper presents principles of typographic style consistent and compatible with the results of program comprehension studies. It introduces the...
Three different approaches to type checking have been taken in object-oriented programming languages. Smalltalk-80 uses run-time type checking. C++ uses subtypes. A third alternative is to use parameterized types. We examine the difficulties of programming in an object-oriented fashion with compile-time type checking and argue that parameterized types are better...
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 .
This technical report reprints two articles that appeared in Proceedings of the Third International Machine Learning Workshop at Skytop, Pennsylvania, June 24-26, 1985. The first paper, The EG Project: Recent Progress, summarizes work on the EG project, which is investigating the role of active experimentation in aiding machine learning programs....
A concurrency and resiliency control scheme for a distributed database system with replicated data is discussed. The scheme, true-copy token scheme, uses true-copy tokens in order to designate the physical data copies (true copies) that can be identified with the current logical data that are globally unique, and then it...
Topological Sorting is a standard computation performed on finite partial order relations, for which efficient algorithms are well known.
This work is a study of using a depth-first search of a directed graph to implement topological sorting algorithms. A new algorithm is presented, along with a discussion of how it...
Test incorporations are program transformations that improve the performance of generate-and-test procedures by moving information out of the "test" and into the "generator." The test information is said to be "incorporated" into the generator so that items produced by the generator are guaranteed to satisfy the incorporated test. This article...
This paper reports the findings of two studies conducted at Oregon State University. The first set of studies compares use of header comments versus mnemonic procedure and function names by programmers performing tasks relating to modification tasks. The second study compares the use of header comments versus in-line comments when...
A decision support system (DSS) incorporating domain
expertise guides, tutors, and consults a decision maker in
opportunity, problem, and crisis identification activities. The
objective for the system is to promote improved decision making.
Using an "Independent Groups" design, an experimental study was
conducted to investigate the effects of DSS use...
Display, which is the function for displaying the
schema of the network at the conceptual level, is implemented
to enhance the network database system ALLEGRO.
To display the schema is one step towards modifiable
schemas in the network model. The problem of updating a
schema is examined at all three...
The design of an experimental object-based programming language is discussed. The language is intended for investigating techniques for organization of programs.
Object oriented programming languages are noted for their ability to allow users to quickly construct large software systems. They achieve this ability by allowing the programmer to concentrate on what it is they want to do, ignoring details of how that functionality is achieved. Such characteristics should make the object...
This research solves the problem of connecting a Macintosh to a Unix machine and presenting the Macintosh Desktop to Unix. Unix Files can be viewed. copied. renamed and opened in the same manner as Macintosh files. Unix programs and shell commands can be defined and attached to Macintosh menus and...
An automated library system should be capable of providing at least all of the information and capabilities of existing manual catalogs. In addition, an automated system must provide the capability of manipulating that information to produce varying types of reports and statistics. This paper briefly:
- describes historical representations of...
Parallel programming is the major stumbling block preventing the parallel processing industry from quickly satisfying the demand for parallel computer software. This research is aimed at solving some of the problems of software development for parallel computers. ELGDF is a graphical language for designing parallel programs. The goal of ELGDF...
This report presents a graphical tool for implementation of the scheduling heuristics provided by Kruatrachue. The input of scheduling is a task graph and the output is a schedule in the form of a Gantt chart. The implemented scheduling heuristics are: 1) Hu's HLF (highest level first) algorithm. 2) Yu's...
Stella Bridge is a program for converting mathematical models designed with STELLA For Business into object-based source programs written in Pascal. The input to Stella Bridge is a series of tables1 functions, and initial conditions generated by STELLA For Business. The output from Stella Bridge is a collection of Pascal...
In von Neumann Languages, side effects occur if one or more non local variables change value(s) during the execution of a procedure or a function. Side effects can occur only if the programming language provides a notion of memory (or state) where the effect will be stored. Side effects complicate...
This research work investigates the use of production
systems as a model of parallel processing. The purpose of
the model is to provide a suitable medium within which parallel
processing systems can be systematically specified,
analyzed, and designed. Furthermore, the model provides a
suitable means for deriving implementations of synchronization...
The need for graphical presentation arises in many disciplines. This thesis describes a prototype software system, the graph creation system, which gives unspecialized users the ability to create and display a variety of graphical figures. Templates for types of graphical figures, and the user interactions for creating instances of a...
ELGDF (Extended Large Grain Data Flow) is a design language that allows representation of a wide variety of parallel programs. The syntax is graphical and hierarchical to allow construction and viewing of realistically sized programs. ELGDF language facilitates describing parallel programs in a natural way for both shared memory model...
In most technical fields, a certain amount of practical application is necessary to master the important concepts and acquire basic problem solving skills. Computer science is no different, and this is reflected in the frequent programming assignments given in programming and data structures courses. The basic skills and concepts gained...
Using Smalltalk-80, programmers can produce prototypes much faster than with C or Pascal. What techniques do Smalltalk-80 programmers use to produce these prototypes? What is special about Smalltalk-80 that enables them to uses these techniques? Can these techniques be used with conventional languages such as C? In an attempt to...
This is an attempt to deal with interface problems of interacting modules in a large simulation system.
In simulation, scientists require routine substitution of modules for comparison of alternative models. These changes have propagating side affects and from a programmer's point of view are essentially system redesigns.
This paper presents...
This paper presents a model for deterministic parsing which was designed to simplify the task or writing and understanding a deterministic grammar. While retaining structures and operations similar to those or Marcus's PARSIFAL parser [Marcus 80] the grammar language incorporates the following changes. (1) The use or productions operating in...
A new class of information intensive applications is emerging [Fuch82;
Ohsu82] for which neither Artificial Intelligence (AI) nor Database technologies
alone are well suited. Database systems do not provide the general inferential
capabilities required for problem solving, while AI techniques have not been
adapted to handle massive amounts of structured...
Tbc expanding complexity of database application worlds, and the accelerating pace of change of these worlds mandate data models which support some of the tasks of data interpretation which formerly were borne by the applications programs. Chief among these are the support for virtual data, definition of transactions, and enforcement...
In process control systems where an entire process
is being controlled by a computer, the component tasks of
the system have to be monitored. An efficient message
oriented environment could be an important factor in the
optimization of such systems. In this paper we discuss
the design of a real...
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...
Seed-Lab, is a software system for managing seed laboratory information. It was developed at the Oregon State University Seed Testing Laboratory. Seed-Lab was built around a database development package Revelation, which provides its own programming language.
Seed-Lab shields the user from the complexities of database management by supporting menu driven...
The SEAS Directory and File Manager is a multiple window interactive tool to assist users in modifying and maintaining UNIX files and directories. This tool includes a show directory utility, a show file utility, a type file utility and provides access to the UNIX shell.
This paper describes Schemer, a hierarchical software architecture for Real Time problem solving. Real time applications must be able to react to critical events quickly, and be able to explore simultaneous solutions in response to, or, in anticipation of such events.
Schemer, which is a Blackboard-like architecture, addresses the aforementioned...
The Sacagawea testbed has been designed to support testing and development of decision making models, and associated uncertainty management techniques, that are appropriate under real-time problem solving constraints. Conceptually, it provides a simulated temporal and spatial environment, the latter consisting of a terrain grid of elevation and tree cover data,...