Forms/3 is a declarative visual programming language that aims to provide general purpose programming language capabilities in a simple, form-based approach. This report provides an example-driven introduction to programming in Forms/3.
In an earlier paper we developed an intermediate representation for languages based on composition, and showed how the representation could facilitate generating code for functional languages, such as FP. In this paper we follow the same philosophical approach, using instead the applicative language APL. Further, we show how this intermediate...
The lambda calculus has frequently been used as an intermediate representation for programming languages, particularly for functional programming language systems. We introduce two simple extensions to the lambda calculus that describe potentially parallel computations. These extensions permit us to use the lambda calculus as an intermediate form for languages that...
"This report describes the revised definition of the multiparadigm programming language Leda. The first section provides an introduction to Leda and a history of its development. Section 2 covers Leda preliminaries, section 3 details the overall structure of Leda programs. Declarations are discussed in section 4, expressions are the topic...
The project (partially) described in this paper was the result of an attempt by the Navy to use software complexity metrics to assess the complexity of Naval avionics software. In particular, the project consisted of computing a variety of software complexity metrics for CMS-2M and AYK-14 assembler source code and...
We define simple population models and give seven examples from the literature. We investigate visualization techniques for simple population models and demonstrate these techniques on the seven population models. The visualization techniques are basic curves, spiral plots, time plots, bifurcation maps, time-plus-2 curves, and B&W and color complex convergence plots....
This paper surveys sequential and parallel implementation techniques for functional programming languages, as well as optimizations that can improve their performance. Sequential implementations have evolved from simple interpreters to sophisticated super-combinator-based compilers, while most parallel implementations have explored a broad range of techniques. We analyze the purpose and function of...
Data structures are more easily understood when they are presented visually rather than textually. We have developed a system, Calypso, to allow the visual definition of data structures programs using pictorial pattern/action pairs in an imperative setting. We present several examples including rebalancing an AVL tree and sorting an array...
How might capabilities for algorithm animation be seamlessly integrated into a programming language that is both visual and declarative? Until now, visual programming language researchers have not attempted to answer that question, making the fruits of algorithm animation available only to users of textual progranming languages. Users of visual programming...
Code instrumenters play a vital role in the functionality of the Aristotle program analysis system, This project aims to replace Aristotle's existing code instrumenters, which process target programs at the, source level, with instrumenters that process target programs at the intermediate language level. This change absolves the instrumenters of responsibility...
"The specifi c problem addressed in this proposal is the development of
good approximation algorithms for solving problems that have partial observability. The model we propose associates costs with obtaining information about the current state. We want to predict when and how much it is necessary to observe. We want...
Data structures are more easily understood when
they are presented visually rather than textually. We have
developed a system, Calypso, to allow the visual
definition of data structures programs using pictorial
pattern/action pairs in an imperative setting. We present
several examples including rebalancing an AVL tree and
sorting an array...
CLEDA is a new programming language descended from the multiparadigm, strongly typed, compiled programming language LEDA. In addition to the four paradigms supported by LEDA, which are imperative, functional, object-oriented, and relational, CLEDA supports the constraint logic programming paradigm. CLEDA is intended to be used to write applications that involve...
Functional programming languages, such as Backus' FP, and high level expression oriented languages, such as APL, are examples of programming languages in which the primary method of program construction is the process of composition. In this paper we describe an approach to generating code for languages based on compositions. The...
To achieve the maximum benefits of a flexible manufacturing system (FMS), its effective monitoring is crucial. The user's ability to interpret the actions of an FMS is significantly enhanced by effective monitoring provided by a well-designed graphical user interface (GUI). The Active-Object User-Interface Management System (AOUIMS) is a graphical user...
We describe a software mechanism that simplifies the implementation of real-time distributed object-oriented applications. The distributed observable/observer mechanism extends the Observable/Observer concept of Java to a distributed environment, encapsulating the communication protocol used by networking. The mechanism supports the distributed model/view-controller (M/VC) paradigm, allowing view-controllers to be attached to remote...
Parallel languages rarely specify parallel I/O constructs, and existing commercial systems provide the programmer with a low-level I/O interface. We present design principles for integrating I/O into languages and show how these principles are applied to a virtual-processor-oriented language. We show how machine-independent modes are used to support both high...
Equations for predicting individual-tree height growth per 5-year period are presented for Douglas-fir, white fir, grand fir, ponderosa pine, sugar pine, and incense-cedar growing in the mixed-conifer zone of southwest Oregon. The data used to develop the equations came from 3,648 trees sampled from 391 stands in the study area....
In order for autonomous underwater vehicles to be successful, they must be able to maintain accurate information about their state variables and the state of their critical components. The software developed by Bruce D'Ambrosia and Wade Brittain, (Real-time Tracking and Probabilistic Assessment of Physical Systems) proposes a methodology to provide...
We consider learning tree patterns from queries extending
our preceding work [Amoth, Cull, & Tadepalli,
1998]. The instances in this paper are unordered
trees with nodes labeled by constant identifiers.
The concepts are tree patterns and unions
of tree patterns (unordered forests) with leaves labeled
with constants or variables. A...
Multiparadigm programming languages have been envisioned as a vehicle for constructing large and complex heterogeneous systems, such as a stock market exchange or a telecommunications network. General-purpose multiparadigm languages, as opposed to hybrid multiparadigm languages, embody several prevalent programming paradigms without being motivated by a single problem. One such language...
A generalized arithmetic package allows a programmer to think of numbers as abstract quantities, without regard to whether they are represented as integers, floating point values, fractions, complex numbers, or even polynomials. In this paper we describe two implementation techniques that can be used to produce a generalized arithmetic package...
This book provides an illustrated guide to the identification and management of fungi, insects, and abiotic conditions that cause problems in Northwest bareroot conifer nurseries. A key to nursery pests offers initial guidance in identification. Separate chapters address individual pests with details on recognition, damage cycle, and management practices to...
In this paper, we introduce a model-based reinforcement learning method called H-learning, which optimizes undiscounted average reward. We compare it with three other reinforcement learning methods in the domain of scheduling Automatic Guided Vehicles, transportation robots used in modern manufacturing plants and facilities. The four methods differ along two dimensions....
The primary objective of the study was to develop the methodology to identify broad silvicultural treatment opportunities for nonindustrial private (NIP) timberland in western Montana using Forest Survey data. The study assumes a management goal of maximum volume production at the stand level. The purpose of the stand treatments is...
Approximate string matching is commonly used to align genetic sequences (DNA or RNA) to determine their shared
characteristics. Most genetic string matching methods are based on the edit-distance model, which does not provide
alignments for inversions and translocations. Recently, a heuristic called the Walking Tree Method [2, 3] has been...
The N-Queens problem is commonly used to teach the programming technique of backtrack search. The N-Queens problem may also be used to illustrate the important concept of isomorphism. Here we show how the N-Queens problem can be used as a vehicle to teach the concepts of isomorphism, transformation groups or...
Many machine learning applications require classifiers that minimize an asymmetric loss function rather than the raw misclassification rate. We study methods for modifying C4.5 to incorporate
arbitrary loss matrices. One way to incorporate loss information
into C4.5 is to manipulate the weights assigned to the examples
from different classes. For...
This paper describes features of a new strongly typed, compiled programming language, called LEDA. LEDA attempts to combine aspects of both imperative (value-oriented) and logical (relation-oriented) styles of programming. Logical behavior is introduced by means of a new programming structure, called a relation. Relations have similarities to functions and procedures,...
MIDAS is an application framework for remote data acquisition and visualization that allows dynamic reconfiguration of its constituent components. There are three types of reconfiguration, namely, component replacement, component interposition and component deletion. A two-phase protocol to maintain the consistency of the system during reconfiguration is described. MIDAS has a...
Multiparadigm programming is a term used to describe a style of software development that makes use of facilities originally designed in support of a number of different programming language paradigms. In this paper we illustrate our conception of multiparadigm programming, by describing how various data structures can be implemented in...
Augmented term rewriting (ATR) is a simple, uniform, and extensible computational model for constraint programming. Unfortunately, ATR cannot solve combinatorial constraint satisfaction problems (CCSPs). To enable solution of CCSPs, we introduce (don't know) nondeterminism into ATR via the choice expression, which identifies a set of possible values that may satisfy...
"Fifty years after the pioneering work of McCulloch and Pitts, the study of neural nets is alive and active. In this paper, I have discussed some of the work that is of current interest to me and my co-workers. I would, perhaps, be remiss if I failed to mention some...
This note briefly discusses some of the classical results of McCulloch and Pitts. It then deals with some current research in neural nets. Several questions about neural nets are shown to be computationally difficult by showing that they are NP-Complete or worse. The size of neural nets necessary to compute...
Urban soils syndrome, the deterioration of soil at developed sites, acts as a primary disease
agent, causing root system necrosis by physical damage to root tissue. This condition predisposes
Douglas-fir trees to attack by fungal pathogens, including Armillaria ostoyae, brown rotters like
Phaeolus schweinitzii, and a variety of minor pathogens....
Brief descriptions of the I/O requirements for four production oceanography programs running at Oregon State University are presented. The applications all rely exclusively on array-oriented, sequential file operations. Persistent files are used for checkpointing and movie making, while temporary files are used to store out-of-core data.
The problem of broadcasting in faulty hypercubes is considered, based upon a strategy of partitioning the faulty hypercube into subcubes in which currently known algorithms can be implemented. Three similar partitioning and broadcasting algorithms for an n-dimensional hypercube in the presence of up to (n² + 2n - c) /...
The set of codewords for a standard error-correcting code can be viewed
as subset of the vertices of a hypercube. Two vertices are adjacent in a hypercube exactly when their Hamming distance is 1. A code is a perfect-error-correcting code if no two codewords are adjacent and every non-codeword is...
Suffix trees are a well known data structure for facilitating a variety of queries on strings. Construction of the trees requires a considerable number of choices concerning the implementation. Several of those choices are examined in this paper. Performance studies are presented that reveal the consequences of these choices. The...
In order for long-range autonomous robots to be successful they must be able to maintain accurate information about their location, available resources, and the state of critical components. We propose here a methodology which incorporates traditional, sensor-based tracking methods with discrete probabilistic representations of system state. Further, we extend the...
High mountains pasture had a marginally higher degradability compared to forest steppe and steppe in Mongolia. Based on results of analysis of pastures taken all-year-round, we subjectively group the time into 4 periods, i.e. before April, May-June, July-September, After September. The time periods also corresponds to vegetative stage of pasture...
An important issue in engineering education is the availability of laboratory resources for student use. Using a computer network to link geographically distant students with laboratory teaching resources makes expensive and innovative equipment available to more students. At Oregon State University, we provide a working environment where remotely-located students can...
Structural active-object systems (SAOSs) are transition-based object-oriented systems suitable as frameworks of various concurrent systems. AOSs are constructed from their component active objects by structural and hierarchical object composition (SHOC) like hardware systems. 1n this report, we demonstrate that the SAOS approach is effective in implementing a graphical editor. The...
Structural active-object systems (SAOSs) are transition-based object-oriented systems suitable for various concurrent applications. A SAOS consists of a collection of interacting active objects that can be structurally and hierarchically composed. The SAOS framework enables $AO$ application programs to be developed rapidly. However, nondeterministic behaviors of active object sometimes make debugging...
Although spreadsheets can be argued to be the most widely-used end-user programming languages today, they are very limited compared to other programming languages, supporting only a few built-in types and offering only primitive support for code reuse. The inheritance mechanisms of object-oriented programming might seem to offer help for the...
Although spreadsheets can be argued to be the most widely-used visual programming languages (VPLs) today, most are very limited compared to other VPLs, supporting only p few built-in types and offering only primitive support for code reuse. The inheritance mechanisms of object-oriented programming might seem to offer help for the...
One dimensional nonlinear difference equations have been used to model population growth. The standard biological models have the interesting characteristic that
they display global stability if they display local stability. Various researchers have sought
a simple explanation for this agreement of local and global stability. Here, we show that
enveloping...
Despite years of research into human computer interaction (HCI), the environments programmers must use for problem-solving today—with separate modes and tools for writing, compiling, testing, visualizing, and debugging— derive their basic structure from historical accident, and take little advantage of HCI research into the cognitive issues of programming. Neglecting these...
A structural active-object system (SAOS) is a transition-based object-oriented system suitable for the design of various concurrent systems. A SAOS consists of a collection of interacting structural active objects (SAOs) whose behaviors are determined by the transition statements provided in their class definitions. Furthermore, SAOs can be structurally and hierarchically...