Semaphore Solutions for General Mutual Exclusion Problems (open access)

Semaphore Solutions for General Mutual Exclusion Problems

Automatic generation of starvation-free semaphore solutions to general mutual exclusion problems is discussed. A reduction approach is introduced for recognizing edge-solvable problems, together with an O(N^2) algorithm for graph reduction, where N is the number of nodes. An algorithm for the automatic generation of starvation-free edge-solvable solutions is presented. The solutions are proved to be very efficient. For general problems, there are two ways to generate efficient solutions. One associates a semaphore with every node, the other with every edge. They are both better than the standard monitor—like solutions. Besides strong semaphores, solutions using weak semaphores, weaker semaphores and generalized semaphores are also considered. Basic properties of semaphore solutions are also discussed. Tools describing the dynamic behavior of parallel systems, as well as performance criteria for evaluating semaphore solutions are elaborated.
Date: August 1988
Creator: Yue, Kwok B. (Kwok Bun)
System: The UNT Digital Library
A Timescale Estimating Model for Rule-Based Systems (open access)

A Timescale Estimating Model for Rule-Based Systems

The purpose of this study was to explore the subject of timescale estimating for rule-based systems. A model for estimating the timescale necessary to build rule-based systems was built and then tested in a controlled environment.
Date: December 1987
Creator: Moseley, Charles Warren
System: The UNT Digital Library
Independent Quadtrees (open access)

Independent Quadtrees

This dissertation deals with the problem of manipulating and storing an image using quadtrees. A quadtree is a tree in which each node has four ordered children or is a leaf. It can be used to represent an image via hierarchical decomposition. The image is broken into four regions. A region can be a solid color (homogeneous) or a mixture of colors (heterogeneous). If a region is heterogeneous it is broken into four subregions, and the process continues recursively until all subregions are homogeneous. The traditional quadtree suffers from dependence on the underlying grid. The grid coordinate system is implicit, and therefore fixed. The fixed coordinate system implies a rigid tree. A rigid tree cannot be translated, scaled, or rotated. Instead, a new tree must be built which is the result of one of these transformations. This dissertation introduces the independent quadtree. The independent quadtree is free of any underlying coordinate system. The tree is no longer rigid and can be easily translated, scaled, or rotated. Algorithms to perform these operations axe presented. The translation and rotation algorithms take constant time. The scaling algorithm has linear time in the number nodes in the tree. The disadvantage of independent quadtrees is …
Date: December 1986
Creator: Atwood, Larry D. (Larry Dale)
System: The UNT Digital Library
Inheritance Problems in Object-Oriented Database (open access)

Inheritance Problems in Object-Oriented Database

This research is concerned with inheritance as used in object-oriented database. More specifically, partial bi-directional inheritance among classes is examined. In partial inheritance, a class can inherit a proper subset of instance variables from another class. Two subclasses of the same superclass do not need to inherit the same proper subset of instance variables from their superclass. Bi-directional partial inheritance allows a class to inherit instance variables from its subclass. The prototype of an object-oriented database that supports both full and partial bi-directional inheritance among classes was developed on top of an existing relational database management system. The prototype was tested with two database applications. One database application needs full and partial inheritance. The second database application required bi-directional inheritance. The result of this testing suggests both advantages and disadvantages of partial bi-directional inheritance. Future areas of research are also suggested.
Date: May 1989
Creator: Auepanwiriyakul, Raweewan
System: The UNT Digital Library
A Graphical, Database-Querying Interface for Casual, Naive Computer Users (open access)

A Graphical, Database-Querying Interface for Casual, Naive Computer Users

This research is concerned with some aspects of the retrieval of information from database systems by casual, naive computer users. A "casual user" is defined as an individual who only wishes to execute queries perhaps once or twice a month, and a "naive user" is someone who has little or no expertise in operating a computer and, more specifically for the purposes of this study, is not practiced at querying a database. The research initially focuses on a specific group of casual, naive users, namely a group of clinicians, and analyzes their characteristics as they pertain to the retrieval of information from a computer database. The characteristics thus elicited are then used to create the requirements for a database interface that would, potentially, be acceptable to this group. An interface having the desired requirements is then proposed. This interface consists, from a user's perspective, of three basic components. A graphical model gives a picture of the database structure. Windows give the ability to view different areas of the database, physically group together items that come under one logical heading and provide the user with immediate access to the data item names used by the system. Finally, a natural language query …
Date: August 1985
Creator: Burgess, Clifford G. (Clifford Grenville)
System: The UNT Digital Library
Computer Realization of Human Music Cognition (open access)

Computer Realization of Human Music Cognition

This study models the human process of music cognition on the digital computer. The definition of music cognition is derived from the work in music cognition done by the researchers Carol Krumhansl and Edward Kessler, and by Mari Jones, as well as from the music theories of Heinrich Schenker. The computer implementation functions in three stages. First, it translates a musical "performance" in the form of MIDI (Musical Instrument Digital Interface) messages into LISP structures. Second, the various parameters of the performance are examined separately a la Jones's joint accent structure, quantified according to psychological findings, and adjusted to a common scale. The findings of Krumhansl and Kessler are used to evaluate the consonance of each note with respect to the key of the piece and with respect to the immediately sounding harmony. This process yields a multidimensional set of points, each of which is a cognitive evaluation of a single musical event within the context of the piece of music within which it occurred. This set of points forms a metric space in multi-dimensional Euclidean space. The third phase of the analysis maps the set of points into a topology-preserving data structure for a Schenkerian-like middleground structural analysis. This …
Date: August 1988
Creator: Albright, Larry E. (Larry Eugene)
System: The UNT Digital Library
A C Navigational System (open access)

A C Navigational System

The C Navigational System (CNS) is a proposed programming environment for the C programming language. The introduction covers the major influences of programming environments and the components of a programming environment. The system is designed to support the design, coding and maintenance phases of software development. CNS provides multiple views to both the source and documentation for a programming project. User-defined and system-defined links allow the source and documentation to be hierarchically searched. CNS also creates a history list and function interface for each function in a module. The final chapter compares CNS and several other programming environments (Microscope, Rn, Cedar, PECAN, and Marvel).
Date: May 1989
Creator: Hammerquist, James D. (James Daniel)
System: The UNT Digital Library
The Object-Oriented Database Editor (open access)

The Object-Oriented Database Editor

Because of an interest in object-oriented database systems, designers have created systems to store and manipulate specific sets of abstract data types that belong to the real world environment they represent. Unfortunately, the advantage of these systems is also a disadvantage since no single object-oriented database system can be used for all applications. This paper describes an object-oriented database management system called the Object-oriented Database Editor (ODE) which overcomes this disadvantage by allowing designers to create and execute an object-oriented database that represents any type of environment and then to store it and simulate that environment. As conditions within the environment change, the designer can use ODE to alter that environment without loss of data. ODE provides a flexible environment for the user; it is efficient; and it can run on a personal computer.
Date: December 1989
Creator: Coats, Sidney M. (Sidney Mark)
System: The UNT Digital Library
Linear Unification (open access)

Linear Unification

Efficient unification is considered within the context of logic programming. Unification is explained in terms of equivalence classes made up of terms, where there is a constraint that no equivalence class may contain more than one function term. It is demonstrated that several well-known "efficient" but nonlinear unification algorithms continually maintain the said constraint as a consequence of their choice of data structure for representing equivalence classes. The linearity of the Paterson-Wegman unification algorithm is shown largely to be a consequence of its use of unbounded lists of pointers for representing equivalences between terms, which allows it to avoid the nonlinearity of "union-find".
Date: December 1989
Creator: Wilbanks, John W. (John Winston)
System: The UNT Digital Library
Computer Graphics Primitives and the Scan-Line Algorithm (open access)

Computer Graphics Primitives and the Scan-Line Algorithm

This paper presents the scan-line algorithm which has been implemented on the Lisp Machine. The scan-line algorithm resides beneath a library of primitive software routines which draw more fundamental objects: lines, triangles and rectangles. This routine, implemented in microcode, applies the A(BC)*D approach to word boundary alignments in order to create an extremely fast, efficient, and general purpose drawing primitive. The scan-line algorithm improves on previous methodologies by limiting the number of CPU intensive instructions and by minimizing the number of words referenced. This paper will describe how to draw scan-lines and the constraints imposed upon the scan-line algorithm by the Lisp Machine's hardware and software.
Date: December 1988
Creator: Myjak, Michael D. (Michael David)
System: The UNT Digital Library
Machine Recognition of Hand-Send Morse Code Using the M6800 Microcomputer (open access)

Machine Recognition of Hand-Send Morse Code Using the M6800 Microcomputer

This research is the result of an effort to provide real-time machine recognition of hand-send Morse code through the use of the M6800 microcomputer. While the capability to recognize hand-send Morse code messages by machine has been demonstrated before on large scale special purpose computers, on minicomputers, and even on the M6800 microcomputer, the main contribution of this paper is to demonstrate it with relatively understandable hardware and software.
Date: May 1980
Creator: Firouzi, Hossein
System: The UNT Digital Library
The Principles of Relational Databases (open access)

The Principles of Relational Databases

Every business has to keep records. Sometimes these records have to be presented in a standardized form, or more often they can be arranged in any way that suits the user. Business records are of little use unless they can be referred to quickly, to provide information when it is required. In computer systems it is essential to be able to recognize any particular record in a data file which is a collection of similar records kept on secondary computer storage devices.
Date: August 1986
Creator: Hsu, Chaur-Chun
System: The UNT Digital Library
Text Processing for Thai Characters (open access)

Text Processing for Thai Characters

The purpose of this project is 1) to create a Thai character set for text processing, 2) to write a text processing program for the character set, and 3) to allow users to create and save the text.
Date: August 1983
Creator: Tarapoom, Nirut
System: The UNT Digital Library
A Comparison of Meansort and Quicksort (open access)

A Comparison of Meansort and Quicksort

The main purpose of this project is to compare a new sorting method- Meansort with its preceding sorting method- Quicksort. Meansort uses the mean value for each key to determine the partition of the file, but Quicksort selects at random. Experiments proved that in some ways Meansort is superior to Quicksort but is still not perfect since it always needs a mean value for each key. This project implements these two methods and determines the situations under which each of these methods outperforms the other.
Date: November 1985
Creator: Tsang, Pey Betty
System: The UNT Digital Library
The Data Structure of a KSAM Key Directory (open access)

The Data Structure of a KSAM Key Directory

The purpose of this project is to explore the alternate data structures for a disk file which is currently a preorder binary tree. specifically, the file is the key directory for an implementation of Keyed Sequential Access Method (KSAM) in a mini-computer operating system. A new data structure will be chosen, with the reasons for that choice given, and it will be incorporated into the existing system.
Date: November 1980
Creator: Kirchoff, Deanna T.
System: The UNT Digital Library
Mini-ADA Compiler Project (open access)

Mini-ADA Compiler Project

The Ada language is one of the most controversial topics in computer science today. Ada was originally designed as a solution to the software maintenance problems encountered by the United States Department of Defense[2], and as a multi-purpose language to be used particularly in an embedded computer system[7]. Never before has a project been undertaken. The Ada language does not simply entail the construction of a new compiler or a new language definition, it is this and a great deal more.
Date: October 1983
Creator: Chang, Kai
System: The UNT Digital Library
Design and Implementation of a Text Editor Under Music Interactive Operating System (open access)

Design and Implementation of a Text Editor Under Music Interactive Operating System

An interactive text editor is a computer program that allows a user to create and revise a target document such as program statements, manuscript text, and numeric data through an online terminal and the computer. It allows text to be modified and corrected many orders of magnitude faster and more easily than would manual correction. The most important characteristic of the text editor is its convenience for the user. Such convenience requires a simple, mnemonic command language which is easy to use and understand.
Date: March 1984
Creator: Hwa, Shu-Jen
System: The UNT Digital Library
Multiple Window Editor (open access)

Multiple Window Editor

This paper is written to present the design purpose and design process of the Multiple Window Editor. Multiple Window Editor is a software which allows the user to edit or view different files or the same file on the screen by the window facilities provided by this software. All the windows can be dynamically created, changed, moved, and destroyed. The main purpose of this program is to improve the programming environment for the users. The design motivations will be introduced through the comparison of the present existing window facilities and the editor components. The design process will be introduced by analyzing the design decision, design tradeoffs and implementation problems.
Date: June 1986
Creator: Alphy, Yu Cherng-Der
System: The UNT Digital Library
A Survey of Computer Systems: IBM System/360, 3031, The Decsystem-20, The Univac 1100, and The Cray-1, and The AS/5000 (open access)

A Survey of Computer Systems: IBM System/360, 3031, The Decsystem-20, The Univac 1100, and The Cray-1, and The AS/5000

This is a brief survey of some of the popular computer systems. As many features as possible have been covered in order to get an overview of the systems under consideration.
Date: April 1980
Creator: Atlasi, Nasrin
System: The UNT Digital Library
Triangle: A Teaching Program of High School Geometry (open access)

Triangle: A Teaching Program of High School Geometry

Among the early applications of computers, one can find frequent mention of intelligent instructional systems. Such intelligent instructional systems represent a new generation of learner-based computer aided instruction, preceded in time by the original frame-based systems and an intervening generation of expert-based CAI. The history of CAI is characterized by three generations: Frame-based CAI, Expert-based CAI and Learner-based CAI.
Date: August 1983
Creator: Chen, Yei-Huang
System: The UNT Digital Library
Macro - Preprocessor for 6809 Cross Assembler (open access)

Macro - Preprocessor for 6809 Cross Assembler

It is frequently considered to be apparent two stages during assembly time. The first is the preprocessor stage in which a single instruction called the micro instruction is replaced with the sequence of instructions called the macro definition. The second is the processor stage in which the output from the first stage is assembled into machine language instructions for a particular computer. This paper descibes the first one which is macro-preprocessor stage.
Date: June 1982
Creator: Lee, Charlie H.
System: The UNT Digital Library
Defensive Programming (open access)

Defensive Programming

This research explores the concepts of defensive programming as currently defined in the literature. Then these concepts are extended and more explicitly defined. The relationship between defensive programming, as presented in this research, and current programming practices is discussed and several benefits are observed. Defensive programming appears to benefit the entire software life cycle. Four identifiable phases of the software development process are defined, and the relationship between these four phases and defensive programming is shown. In this research, defensive programming is defined as writing programs in such a way that during execution the program itself produces communication allowing the programmer and the user to observe its dynamic states accurately and critically. To accomplish this end, the use of defensive programming snap shots is presented as a software development tool.
Date: May 1980
Creator: Bailey, L. Mark
System: The UNT Digital Library
Information Storage and Retrieval Systems (open access)

Information Storage and Retrieval Systems

This thesis describes the implementation of a general purpose personal information storage and retrieval system. Chapter one contains an introduction to information storage and retrieval. Chapter two contains a description of the features a useful personal information retrieval system should contain. This description forms the basis for the implementation of the personal information storage and retrieval system described in chapter three. The system is implemented in UCSD Pascal on an Apple II microcomputer.
Date: May 1983
Creator: Creech, Teresa Adams
System: The UNT Digital Library