A Caltech Library Service

A Software Design System

Hess, Gideon David (1980) A Software Design System. Computer Science Technical Reports, 1980.3762. California Institute of Technology , Pasadena, CA. (Unpublished)

PDF - Submitted Version
See Usage Policy.


Use this Persistent URL to link to this item:


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.

Item Type:Report or Paper (Technical Report)
Related URLs:
URLURL TypeDescription ItemCaltech PhD thesis
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.
Group:Computer Science Technical Reports
Series Name:Computer Science Technical Reports
Issue or Number:1980.3762
Record Number:CaltechCSTR:1980.3762-tr-80
Persistent URL:
Usage Policy:You are granted permission for individual, educational, research and non-commercial reproduction, distribution, display and performance of this work in any format.
ID Code:27058
Deposited By: Imported from CaltechCSTR
Deposited On:02 Jan 2003
Last Modified:03 Oct 2019 03:20

Repository Staff Only: item control page