Abstract

1. Introduction. Much of the software life cycle is realized through ProgrammQ ~guages. The structure of the particular programming language used to implement a system can influence the effort expended at some of the different phases of the life cycle. This impact is particularly evident in phases such as maintenance that deal with completed code. For example, the presence of certain code structuring units in a language is generally thought to improve the readability of programs that employ them [l]. However, the impact that language structure has on the design process is less clear cut. The stepwise refmement of pseudocode is a common mechanism for program design in a variety of languages. Yet, the effects of a language’s structure on the refinement process has not been quantitatively docu- mented. The need for such assessment is particularly acute in light of the fact that many new program design languages (PDL) support the syntactic constructs of a particular target language. For example, the Ada programming language is the basis for at least six available or planned program design languages [2]. parisons were based upon language properties such as syntac- tic structure [3], semantic psychological com- plexity [4,5,6], and relevance to particular application do- mains [7]. Here, the comparison between languages will be made using syntactic complexity, as measured in terms of the context free grammar for the languages. The motivation using context free grammars is that the stepwise refinement process takes place in the context of a language’s syntactic structure. That is, the replacement of a stub in pseudocode program is constrained by the grammar in the target language. The nature of these constraints will be described in terms the following model of the stepwise refinement process. The general question addressed in the paper is: how does the syntactic structure of a program design language affect the decision making effort associated with the stepwise refinement process. A model. of the stepwise refinement process is presented that explicitly ties the grammatical strut- ture of the pseudocode design language into the stepwise refinement activity. This allows the development of refme- ment metrics that assess the decision making complexity of a refinement step in terms of the underlying syntactic structure of the grammar for the program design language. In this model it is assumed that the program design language employed in the stepwise refinement process is based upon a context free grammar for the target language. This is consistent with our current objective of measuring target language support for the stepwise refinement process. However, in general the model does not require that program design language correspond precisely with the gram- mar for the target language. A context free language is defined as G =cT,N,P,S> where T is the set of terminals, N is the set of nonterminals, P is set productions form A::=w where A is an element of N and w is in V* where the vocabu- lary V = (T U N), and S is the start symbol. A pseudocode program can therefore be considered as a collection of termi- nal symbols in the target language along with a collection of stub names. Each stub in the pseudocode corresponds to a high level implementation goal that still needs to be achieved by the designer. It is also assumed that the designer associates each high level implementation goal with a low level goal of implementing a corresponding language structure taken from the set of nonterminals in the grammar for the language. As a result the stepwise refinement process can be viewed as taking place at both a semantic level and a syntactic one. 2. Metrics to Measure Language Support for the Stepwise Refinement Process. Historically, programming languages have been compared from several different perspectives. These com-

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call