< Prev Next >
34
NATO SOFTWARE ENGINEERING CONFERENCE 1968
4. Design
McClure: I want to defend the Fortran H compiler. It is perhaps the most complex Fortran compiler that has ever been written. It is unfair to compare it with compilers written in machine language, that do not do the same functions. It is indeed doubtful whether it could have been written in anything but a high-level language. I know of other successful uses of high-level languages for writing assemblers and compilers. The point of using high-level languages is to suppress unnecessary detail, which is vital in complex problems.
David: The answer is: use high-level for research production, low-level for commercial production.
Barton: Efficiency depends on the integrated design of the original system, including both its hardware and software.
Kjeldaas: We have made software products using high-level as well as low level languages, and our experience is that the high-level language projects were the most successful ones.
Bauer: People are praising or condemning specific products — what was the cause of the success or failure in these cases?
Kinslow: TSS/360 was done in assembly language, and I would do it again that way, at least at monitor level. Reason: need for efficiency; I am afraid a high-level language wouldn’t provide the bit manipulation needed. I don’t believe in the suggestion to start designing in, say PL/1, and then shift to assembly code, because PL/1 will affect the design approach. In a monitor one cannot accept any control level between designer and machine.
Smith: There are critical matters, such as basic software for a new machine. Here the software designer must be fully aware of the checked features of the machine, he must discuss all facets of the new machine with  the hardware designers and must know and avoid the problematic areas of the machine.
Galler: Let us not forget that macro languages are really high-level languages and are used widely.
Kolence: (from On the interaction between software design techniques and software management problems)
» An understanding of the relationships between the types of languages used, and the types of internal designs provided, would be of great value to the software manager. It is simply not true that all internal program designs can be implemented in a higher level language. Many installations settle on a given higher level language by which to implement all systems, and in so doing restrict themselves to implementing a limited structural class of programs. Unknowingly they may be eliminating certain classes of internal designs which can perform their system requirements in a much more effective manner than otherwise possible.«
4.4. COMMUNICATION AND MANAGEMENT IN DESIGN
Several remarks were made on the need for special notations or languages for communication during the design process.
Kolence: (from On the interactions between software design techniques and software management problems)
»Another area of difficulty which faces the designer of a program is how to relate the descriptions of the external and internal designs. The notation of external characteristics tends to be narrative and tabular, whereas internal design notation normally consists of flow charts and statements about key internal containers and tables. An external set of characteristics which is appropriately cross-referenced to the internal design, and which clearly illustrates the impact of features or sets of features on the internal design would be of great value to both the designer and the manager.
. . .
The general difficulties are further compounded by the lack of a notation by which the internal design explicitly show the data interfacing requirements  between flowcharts at a detailed level. Thus the manager cannot easily determine if various portions of a design mesh properly.
Still a third type of notational need exists. It is well understood that many portions of any given internal design are common to a great number of different programs. An attempt has been made to capitalize on this knowledge by providing system macros at a relatively high level of language statement. However, these macros are not common across machine lines, and indeed are not even common across languages in general. A notation by