Welcome to the new version of CaltechAUTHORS. Login is currently restricted to library staff. If you notice any issues, please email coda@library.caltech.edu
Published January 2, 2003 | Submitted
Report Open

A Software Design System

Abstract

The goal of the research described in this thesis was to build a system that supports without interferinq with the activity of systematic software design and tokes upon itself Mechanical activities the designer can be spared. Two of the Main activities which constitute the process of software creation are: 1. Designing a solution to the problem. 2. Implementing the design. The activity of design hos to be performed by the programmer himself, it can only be aided by the computer. Producing a program from a complete design is a mechanical activity the computer can take upon herself. These observations lead to the following objectives that a software design system should meet: 1. Providing tools that support the design activity and enable Maximum flexibility. 2. Recognizing the lowest level primitives of the design as the target language and producing the program in this language. A system along these guidelines was implemented. It permits the user to write definitions which refine high level design decisions into lower levels and, at the same time, serve as syntax description~ and translation rules for the languages used in the design. The system operates in two user-controlled passes. In the first pass the user's definitions are read, either interactively or from external files, and the syntax rules are stored in a dictionary. In the second pass a syntax driven language processor uses the dictionary to compile the user's program into the target language which consists of the lowest level constructs of the design. Due to the freedom the programmer has in design, several kinds of syntactic ambiguities may be introduced with - or without - the user's attention. Unless caused by user errors, the translator tries to resolve these ambiguities to match the designers intentions. In order to reduce the amount of time and space required for parsing, long texts are divided into subtexts which are translated separately. Guidance as to which subtexts are separately translatable is provided by the user in a natural way by composing the design of statements. A command language enables the user to control the passes, to look at the contents of the dictionary and of external files, to monitor the translation process for debugging purposes, to store dictionaries for later use and retrieve them and to modify specials symbols used in definitions. The system is implemented in Simula. A second system is presently being implemented as part of POL (Problem Oriented Language), a system for writing and using application language. POL's metalanguage enables the user to build - or extend - object languages by writing new syntax rules. The tools of the development system described above are incorporated into the metalanguage in order to aid the aplication programmer in the design and compilation of the semantic routines of these rules.

Additional Information

© 1980 California Institute of Technology. I wish to thank Dr. Frederick B. Thompson for his patient guidance and help during my graduate studies at Caltech.

Attached Files

Submitted - TR_3762_80.pdf

Files

TR_3762_80.pdf
Files (8.2 MB)
Name Size Download all
md5:c6c52082802b8b619dba1ad2eb37227e
8.2 MB Preview Download

Additional details

Created:
August 19, 2023
Modified:
January 13, 2024