Prettyprinters are software tools that format program source code so that it conforms to certain standards of consistency and hence improves readability. Traditionally, these standards were fixed for a particular prettyprinter as indicated by a literature survey, with very little or no supporting evidence that the formatting style improves readability....
This thesis documents a new language which facilitates
the construction of Turing machines. The language translator
is written in Compass and has been debugged and is
available for use on the CDC 3300.
Specifications for a simulation language capable of modeling
fuzzy systems are presented. Actions occurring in the running
model are to be displayed on a graphics terminal in the .form of
modified E-nets. The concept of partial execution of predicates
is introduced in connection with the underlying continuously valued
logic. Fuzzy...
A new system called sequential/parallel matrix grammars
for two-dimensional pattern processing is introduced and studied.
Miscellaneous language operations such as union, catenation (row
and column), Kleene's closure (row and column) and substitutions
are investigated. The equivalence of sequential/parallel matrix
languages and finite-turn repetitive checking automata is established.
Hierarchies for both...
The purpose of this research is to design a high level language
(HLL) suitable for microprogramming. A top down design technique has
been adopted which makes the language design process simple and
accurate.
The primitive operations of a high level language for producing
emulators is shown to include special purpose...
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...
OSIRIS is an integrated information architecture which was developed at Oregon State University. SIDUR is the data model upon which the semantic level is based. The semantic level is the mediating level between user's information needs and the stored data. The advantages of providing a semantic database environment include flexibility...
There are a number of well known techniques for extracting parallelism from a given program. They range from hardware implementations, building restructuring compilers or reorganizing of programs so as to specify all the available parallelism. The success rate of any of the known techniques is rather poor over all types...
This paper corrects an apparent deficiency in the published
information concerning Hardware Description Languages (HDLs) by
introducing and discussing an approach for selecting an HDL for
use in a design project. Although three classes of HDLs are discussed
in this paper, High-Level Languages (HLLs), General Purpose
Simulation Languages (GPSLs) and...
Spreadsheet language programs, which include commercial spreadsheets, are among the most common form of software in use today. Unlike more "traditional" forms of software however, spreadsheet language programs are created and maintained by end-users with little or no programming experience. As a result, a high percentage of these programs contain...
Partial programming is a field of study where users specify an outline or skeleton of a program, but leave various parts undefined. The undefined parts are then completed by an external mechanism to form a complete program. Adaptation-Based Programming (ABP) is a method of partial programming that utilizes techniques from...
This research develops an object-oriented approach of modeling microprocessor architecture. A generic modeling library, bBlocks, is proposed as a framework for constructing microprocessor simulation. bBlocks is a collection of predefined abstract components (blocks) implemented in Java, the object-oriented programming language. Blocks are defined and used as the basic components in...
Test case generation in software testing is a process of developing a set of test data that satisfies a particular test adequacy criterion. It is desirable to automate this process since doing it manually is not only technically difficult but also tedious and time-consuming. Although there has been considerable research...
Functional programming is concerned with referential transparency, that is, given a certain function and its parameter, that the result will always be the same. However, it seems that this is violated in applications involving uncertainty, such as rolling a dice. This thesis defines the background of probabilistic programming and domain-specific...
An interdisciplinary study into the theory of design decisions has yielded a model for tracking design changes in hardware/software systems, but it still needs to be applied to a larger system to test its efficiency at tracking important data. This thesis creates an implementation of PLEXIL, a language in development...
Until now, attempts to extend the one-way constraint evaluation model of the spreadsheet paradigm to support complex objects, such as colored circles or user-defined types, have led to approaches featuring either a direct way of creating objects graphically or strong compatibility with the spreadsheet paradigm, but not both. This inability...
Researchers in the Forms/3 group have previously developed the WYSIWYT methodology, exploring a way of systematically testing spreadsheet languages. The previous work presented the WYSIWYT methodology for individual spreadsheet cells, and later partially extended it to large grids in which some cells share the same formula. The Forms/3 spreadsheet language...
How can rigorous forms of testing be supported in a way that is both compatible with the visual aspect of visual programming languages, and usable by the audiences using those languages - even when the audience has no background in software engineering? Visual programs are likely to contain at least...
Spreadsheet languages are the most commonly used end-user programming paradigm, yet spreadsheets commonly contain errors. Research shows that a significant number of spreadsheets (20%-40%) created by end users contain errors. In an attempt to reduce this error rate, this work presents an assertion propagation system for an end-user spreadsheet programming...
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...
We introduce a visual specification language for spreadsheets that allows the definition of spreadsheet templates. These templates are used by a spreadsheet generator to create Excel spreadsheets that are probably free from a large class of errors, such as reference, omission, and type errors. We demonstrate how spreadsheets can be...