Specialization of SARA for software synthesis

The SARA system has been developed to permit top-down design without necessarily prespecifying that implementation would be done in software or hardware. It was felt very important to give the designer freedom to make that decision at a late stage and therefore select the appropriate place for the hardware-software interface. However, the synthesis methodology does not force the designer to hide an intention to use particular devices or particular software systems. Moreover, the area in greatest need of design assistance is programming where a language and associated virtual or real machine would already have been selected. Hence the question was raised, “What specialization of SARA would be important for the synthesis of software systems?” This paper discusses models of software systems under two very different conditions. In one, it is known that the design of a program for a sequential PL/I processor raises no synchronization issues to be managed by explicit flow-of-control models. Using a simple classical example, the paper shows that it is possible to describe a multi-level model, using SARA, which goes smoothly from programming-in-the-large to programming-in-the-small or actual code. In a second simple case synchronization issues are vital and it is important to keep a token machine explicitly in the model.

[1]  Barbara Liskov,et al.  A Language Extension for Controlling Access to Shared Data , 1976, IEEE Transactions on Software Engineering.

[2]  William A Wulf ALPHARD: Toward a Language to Support Structured Programs , 1974 .

[3]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[4]  Clement L. McGowan,et al.  Top-down structured programming techniques , 1975 .

[5]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[6]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[7]  Niklaus Wirth,et al.  On the Composition of Well-Structured Programs , 1974, CSUR.

[8]  P. Brinch-Hansen,et al.  The programming language Concurrent Pascal , 1975 .

[9]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[10]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[11]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[12]  Robert I. Gardner Multi-level modeling in SARA , 1977, DAC 1977.

[13]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.

[14]  Jack B. Dennis,et al.  A computer architecture for highly parallel signal processing , 1974, ACM '74.

[15]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[16]  Edward Yourdon,et al.  Structured design , 1975 .

[17]  Joseph Wilson Thomas Module interconnection in programming systems supporting abstraction. , 1976 .

[18]  Per Brinch Hansen,et al.  The programming language Concurrent Pascal , 1975, IEEE Transactions on Software Engineering.

[19]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[20]  Barbara Liskov,et al.  A design methodology for reliable software systems , 1972, AFIPS '72 (Fall, part I).

[21]  Jr. Robert Irving Gardner A methodology for digital system design based on structural and functional modeling. , 1974 .

[22]  Gerald Estrin,et al.  Developing a SARA building block - the 8080 , 1977, DAC 1977.

[23]  Gerald Estrin,et al.  The graph model of behavior simulator , 1977, DAC 1977.

[24]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[25]  Niklaus Wirth,et al.  Systematic Programming: An Introduction , 1974 .

[26]  David Lorge Parnas,et al.  Use of the concept of transparency in the design of hierarchically structured systems , 1975, CACM.

[27]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974 .

[28]  Robert I. Gardner State of the implementation of SARA , 1977, DAC 1977.

[29]  Gerald Estrin Modeling for synthesis - the gap between intent and behavior , 1977, DAC 1977.

[30]  D. L. Parnas,et al.  The influence of software structure on reliability , 1975, Reliable Software.