Master's Papers and Projects
Permanent URI for this collection
Browse
Browsing Master's Papers and Projects by Department "Computer Science and Applications"
Now showing 1 - 16 of 16
Results Per Page
Sort Options
- Approaches to map anamorphosisKlipsch, Colin (Virginia Tech, 1993-12-15)Map anamorphosis is the distortion of a map to show graphically the variation of some quantity from region to region. The process of anamorphosis modifies the original map regions, keeping the inter-region topology, to produce new regions whose areas are proportional to their respective values of the relevant quantity. A typical example would be a distorted map of the United States, where each state's area is proportional to its population, yet the states still fit together in the correct way. Such maps, called "cartograms", can provide a good visual sense of where a quantity such as population, is distributed. In this paper we look at five separate attempts to design a computer algorithm for generating cartograms, all of which use triangulation as a basis, and all of which, unfortunately, are unsuccessful. We also examine a working algorithm, in the literature that uses similar ideas in its initial approach. While this algorithm produces aesthetically displeasing results, it may indicate a way to solve the map anamorphosis problem robustly using triangulation.
- A case study in object-oriented development: code reuse for two computer gamesScott, Roger E. (Virginia Tech, 1992)A case study of the object-oriented development of two computer games using commercially available products was conducted. The games were constructed for use on Apple Macintosh computers using a C+ + like programming language and an accompanying object-oriented class library. Object-oriented techniques are compared with procedure oriented techniques, and benefits of object-oriented techniques for code reuse are introduced. The reuse of object-oriented code within a target domain of applications is discussed, with examples drawn from the reuse of specific functions between the two games. Other reuse topics encountered in the development effort which are discussed: reuse of operating system routines, reuse of code provided by an object-oriented class library, and reuse of code to provide functions needed for a graphical user interface.
- CATY: an ASN.1-C++ translator in support of distributed object-oriented applicationsLong, Wendy (Virginia Tech, 1994-04-15)When heterogeneous computers exchange data over a network, they must agree on a common interpretation of the data. The OSI suite of protocols includes a standard notation, Abstract Syntax Notation One (ASN.1), for describing the structure ("abstract syntax") of data. Previous work has shown that C++ is a good language for work with layered network architectures and specifically with ASN.1: the inheritance and polymorphism features of C++ are nicely suited for work with layered protocols, which can be seen and used in object-oriented terms; a C++ class hierarchy, designed to capture the language concepts of ASN.1, successfully separates the abstract syntax (or application level) from the encoding used during transfer (the "transfer syntax" at presentation level); and the class construct and scoping rules of C++ and the design of the class hierarchy much better preserve the structure and content of ASN.1 than do past attempts with C. This report presents CATV (Class-oriented ASN.1 Translator, Yacc-based), a translator from ASN.1 to a corresponding C++ abstract syntax class hierarchy. It is shown in this report that the translations produced by CATV are preferable to those produced by other translators based on the following criteria: preservation of names and types, consistent access to elements, support of modularity and subtypes, resolution of forward references, flexibility of encoding, and generality of use. Furthermore, it is shown that CATV has better throughput than PEPSY, an ASN.1 to C translator from ISODE.
- The design and construction of the Reactive Systems LaboratoryAcciai, Guy Francis (Virginia Tech, 1995-01-06)Distributed real-time systems are notoriously difficult to correctly design and construct [Pam as 1985]. The fundamental principles of concurrency, deadline driven scheduling, and reaction to external stimuli which underlie such systems are inherently complex. This difficulty is further exacerbated when applications based on these principles are distributed over a network. Academic instruction in this domain is challenging: while theoretical issues can be taught with traditional "pencil and paper" techniques, real-time programming skills require experience that can be best provided by a laboratory. To this end, the Computer Science Department at Virginia Tech created and built a laboratory, known as the Reactive Systems Laboratory (RSL), specifically designed to provide these practical experiences. This paper documents the decisions, designs, and equipment used to build this laboratory. Additionally, the low-level software systems required to operate the RSL are discussed. Finally, future directions for the laboratory are considered and some conclusions are drawn based on usage to-date.
- Design and development of SINK, a software INteractions knowledge systemNaidu, I. Ajit (Virginia Tech, 1992)The objective of this project has been to develop the SINK (Software Interactions Knowledge) system based on the client-server paradigm. The SINK knowledge server allows information about interactions between switching systems’ software features to be retrieved by users on the Bell-Northern Research (BNR) network. The clients of the SINK system have a X Window System graphical user interface written to conform to the interface design principles laid down in the OSF/Motif style guide. A number of important issues relating to the design of client-server applications and graphical user interfaces are dealt with in this project. The SINK (Software Interactions Knowledge) system will serve as a central repository of corporate knowledge at Bell-Northern Research about its switching software assets and the interactions between those assets. The SINK system will help increase the productivity for designers and improve understanding about feature interactions as it provides a comprehensive source collected previously from many sources for a wide spectrum of information about existing switching software assets and their interactions.
- The design of a virtual fact base for PrologHaugh, J. Steven (Virginia Tech, 1991-04-08)The fact and rule list internal to Prolog is capable of handling as many facts as available memory resources permit. A solution to this limitation is to store facts on disk, retrieving them into a main memory database buffer only as needed. Allocating a fixed portion of main memory to buffer database facts frees up scarce main memory for more frequently accessed rules and data structures internal to Prolog. The Prolog Database System built in connection with this project transparently stores and retrieves facts on disk and evaluates them in the order they were asserted allowing for the transfer of existing small scale prototypes into large scale production systems. Since existing relational database techniques were not designed to function in a Prolog environment where facts are evaluated in database facilities were designed, developed, and integrated into Prolog. These database facilities include a unique page replacement policy designed to minimize expensive page faults during the execution of a Prolog program. The look ahead page replacement policy looks ahead on database pages while they are in main memory in order to determine whether they are likely to be accessed again in the future. In this way, a near optimal working set of database pages is maintained in the database buffer, assisting with minimizing expensive page faults.
- The design of C++ class hierarchy to model ASN.1 data typesKhera, Rajesh (Virginia Tech, 1994-01-05)Computing in a heterogeneous environment requires an exchange of information among computers which have different ways of representing information. This type of information exchange demands a standard external data representation. One such standard, Abstract Syntax Notation One (ASN.l), is defined by the International Organization for Standardization (ISO) and its transfer syntax, the Basic Encoding Rules (BER). This project presents the design of a C++ class hierarchy modeling the concepts presented in ASN.l and encapsulating the BER encoding rules. The goal of this class hierarchy is to utilize the rich features of object-oriented paradigm to provide a clean and simple interface for OSI presentation layer protocols to application developers and implementors. This report discusses the class hierarchy in detail and shows how the primitive and constructed ASN.l types are defined, encoded and decoded using this hierarchy.
- A graphical alternative to direct SQL based queryingBeasley, Johnita (Virginia Tech, 1993-05-04)SQL provides a fairly straightforward means of querying database data. However, as with all command languages, SQL can get very complicated, even for experienced programmers. This complexity can be intimidating to the novice or intermediate user who needs to access data from a database with complex SQL statements, especially when users don't want to know or even become familiar with a command oriented query language like SQL.
- The implementation of ACT++ on a shared memory multiprocessorMukherji, Manibrata (Virginia Tech, 1992)ACT++ is a programming environment in which concurrent programs can be written in C++. The underlying model of concurrent computation is the Actor model. Programs in ACT++ consist of a collection of active objects called actors. Several actors execute simultaneously and cooperate with each other by sending request and reply messages. Request messages are processed by agents called behaviors of the actor. Each behavior of an actor is responsible for specifying a replacement behavior which processes the next available request message. One of the salient features of ACT++ is its ability to handle the Inheritance Anomaly - the interference between the inheritance mechanism of C++ and the specification of synchronization constraints in the methods of a class - using the notion of behavior sets. Another feature of ACT++ is its realization of I/O as an actor operation. A special type of actor, called an interface actor, provides a high level interface for a particular device which is sent request messages whenever I/O is necessary. The interface actors can also transparently perform asynchronous I/O. ACT++ has been successfully implemented on the Sequent Symmetry multiprocessor using the PRESTO lightweight threads package.
- Regression analysis of extended vectors to obtain coefficients for use in probabilistic information retrieval systemsNunn, Gary L. (Virginia Polytechnic Institute and State University, 1987)Previous work by Fox has extended the vector space model of information retrieval and its implementation in the SMART system so different types of information about documents can be separately handled as multiple subvectors, each for a different concept type. We hypothesized that relevance of a document could be best predicted if proper coefficients are obtained to reflect the importance of the query-document similarity for each subvector when computing an overall similarity value. Two different research collections, CACM and ISI, each split into halves, were used to generate data for the regression studies to obtain coefficients. Most of the variance in relevance could be accounted for by only four of the subvectors (authors, Computing Review descriptors, links, and terms) for the CACM1 collection. In the ISI1 collection, two of the vectors (terms and cocitations) accounted for most of the variance. Log transformed data and samples of the records gave the best RSQ's; .6654 was the highest RSQ (binary relevance). The regression runs provided coefficients which were used in subsequent feedback runs in SMART. Having ranked relevance did not improve the regression model over binary relevance. The coefficients in the feedback runs with SMART proved to be of limited usefulness since improvements in precision were in the 1-5% range. Although log data and samples of the records gave the best RSQ's, coefficients from log values of all data improved precision the most. The findings of this study support previous work of Fox, that additional information improves retrieval. Regression coefficients improved precision slightly when used as subvector weights. Log transforming the data values for the concept types modestly helped both the regression analyses and the retrieval in SMART.
- A self-paced COBOL tutorialRobinson, Benjamin C. (Virginia Polytechnic Institute and State University, 1983)no abstract provided by author
- Separating representation from translation of shared data in a heterogeneous computing environmentMullins, Robert W. (Virginia Tech, 1993)Data sharing among heterogeneous computers involves both a model to represent the structure of the data and a model to translate the data to achieve the sharing. The translation, defined by a transfer syntax and corresponding set of encoding rules, is necessary because heterogeneous computers typically use incompatible implementations of the basic data types. The central question considered in this work is how to separate the representation of shared data from its translation. Such separation is useful because different systems use different encoding rules. The solution developed is a modification of an existing C++ data representation class hierarchy modeled after the Abstract Syntax Notation One (ASN.l) language. The class hierarchy was modified so that all translation specific elements were factored out of the representation class hierarchy and placed into an encoding rules class hierarchy. The rules class hierarchy is structured in a way that allows additional encoding rule sets to be added easily. Encoders and decoders have been written for the Basic Encoding Rules (BER) defined by the OSI standards and Sun's External Data Representation (XDR) standard, allowing data structures to be translated without support from vendor provided routines so the class hierarchy can be used on any system with a C++ compiler. The class hierarchy has interoperated with existing servers using Sun's Remote Procedure Call (RPC) protocol and the Basic Encoding Rules (BER).
- A simple artificial neural network development system for study and researchSouthworth, David (Virginia Tech, 1991)This research paper proposes the design and implementation of an Artificial Neural Network (ANN) development system which will provide the foundation and a tool for study and research in ANN architectures and algorithms. A system was developed which allows for the implementation of networks and for the modification of common and interesting network parameters and algorithms. This establishes a versatile and effective model from which to proceed with ANN study. The system design is an initial prototype providing a generic and dynamic interface which allows the versatility to implement simple networks on a Personal Computer and modify their parameters, architectures, and algorithms. It also allows the monitoring of the internal conditions of the network, providing a basis for detailed data collection and research. Several different neural nets were implemented and trained on the system. Various feedforward networks using the Delta Rule and the backpropagation learning algorithms were trained in the supervised mode to solve problems in pattern recognition. Modifications to these networks were then used to compare training and operational characteristics between the different architectures. A classic one layer Hopfield net using a recurrent feedback, associative memory architecture was also implemented and trained in the unsupervised mode. An unsupervised Hebbian learning algorithm was also implemented and tested on the system. Several enhancements are proposed which will increase the versatility of the system and aid in the further study of Artificial Neural Network implementations and characteristics.
- The specifications of an expert system for configuring teleconferencing systemsKoushik, Geetha (Virginia Tech, 1994-05-05)Use of teleconferencing systems can have a major impact on mobility-impaired office workers. This technology helps in bringing jobs to the workers' geographic 10catioIl, thereby integrating mobility-impaired workers into the work force. However, configuration of teleconferencing systems is difficult, time-consuming, and expensive. The aim of the work reported here was to find an affordable and efficient way of configuring teleconferencing systems. In the past, expert systems have been successful in solving similar configuration problems. In this report, an expert system is proposed to aid in the configuration of teleconferencing systems. The report also includes detailed problem specifications, justification for choosing an expert system as a solution, and high-level functional specifications for the development of an expert system.
- Syntax-directed semantics-supported editing of algebraic specificationsKlingler, Carol Diane (Virginia Tech, 1990-05-05)This paper describes the functions performed by a program written to support syntax-directed editing of Emily algebraic specifications in the GNU EMACS text editor. The Emily algebraic specification language is a strongly-typed functional language which can be used to define abstract data types. The Emily language uses term rewriting rules to perform computations and is based on the algebraic specification language in [ANT089].
The program uses the binary choice method and recursive reduction, which guarantee that the resultant specifications satisfy the properties of completeness, parsimony, and termination ([ANT089]). The program is written in EMACS LISP under the UNIX operating system, with subprocesses written in C. An Emily translator, written in C, is called to parse the specifications and check for certain types of errors [SHAW89].
- Translator writer systemsOdom, Stuart A. (Virginia Tech, 1992)The design, structure, and use of a Translator Writer System (TWS) is analyzed. The major data structures are documented, with a view toward their use in the generation of a recursive descent parser. Module interaction within the TWS, and applications derived from it, are clearly defined. Sufficient background is provided on attributed grammars to make use of the TWS in a practical application. The TWS is redesigned to separate areas of concern within both the modules and the data structures. The modules are redefined so that each one has a specific set of tasks to perform, each one dealing with a small facet of the TWS.