SPIL(ID:3900/spi007)


for Structured Programming Implementation Language

Structured programming language intended to be used for system design and implementation

Liskov and Smith Mitre Corp 1972-3


People:
Related languages
SPIL => HLS   Influence

References:
  • B. J. Huberman, "Principles of Operation of the Venus Microprogram", The MITRE Corporation, MTR-1843, Bedford, Massachusetts, 1 May 1970. view details
  • B. H. Liskov and E. Towster, "The Proof of Correctness Approach to Reliable Systems", The MITRE Corporation, MTR-2073, Bedford, Massachusetts, 9 March 1971. view details
  • B. H. Liskov and L. A. Smith, "SPIL - A Systems Programming Implementation Language", The MITRE Corporation, MTR-2344, Bedford, Massachusetts, 15 June 1972. view details
  • Barbara H. Liskov "The design of the Venus operating system" view details DOI Abstract: The Venus Operating System is an experimental multiprogramming system which supports five or six concurrent users on a small computer. The system was produced to test the effect of machine architecture on complexity of software. The system is defined by a combination of microprograms and software. The microprogram defines a machine with some unusual architectural features; the software exploits these features to define the operating system as simply as possible. In this paper the development of the system is described, with particular emphasis on the principles which guided the design.
          in [ACM] CACM 15(03) (March 1972) view details
  • Liskov, B. H. "A Design Methodology for Reliable Software Systems", pp191-199 view details
          in [AFIPS] Proceedings of the 1972 Fall Joint Computer Conference FJCC 41 view details
  • Barbara H. Liskov and Leroy A. Smith "SPIL: A language for construction of reliable system software" view details DOI Abstract: Structured programming is gaining wide acceptance as a technique for increasing the reliability and understandability of software. Nowhere is the need for better software felt more keenly than in the area of systems programming. In the near future it is likely that systems will be programmed in structured programming languages, just as systems have been programmed in higher level languages in the past. This paper describes SPIL: a structured programming language intended to be used for system design and implementation. The paper discusses how the objectives of structured programming and system programming may be realized in a programming language, and delineates the influence of the objectives on the design of SPIL. The most important features of the language are briefly described. The paper concludes by evaluating SPIL as a language for system design and implementation.
    Extract: Introduction
    Introduction
    SPIL (System Programming Implementation Language) is a higher level language intended to support software design and implementation on the Venus machine [i, 2]. It belongs to a class of languages such as BLISS [3] which have the control structures of a higher level language but which are machine-dependent in other respects. This type of language is suitable for system programming because it provides many of the advantages of a higher level language (for example, increased programmer productivity), while permitting the user to retain control over machine capabilities which are needed to perform basic system functions.
    SPIL was designed to be a tool for a project concerned with evaluating pragmatic techniques for improving the reliability of software. Since SPIL was merely a tool and not a product of the project, constraints were placed on the amount of effort which could be spent in designing and implementing it. In particular, it was not feasible to base the design of SPIL on the development of new language concepts, nor could we afford the effort of building an optimizing compiler.
    The fact that pragmatic techniques were desired determined the whole approach of the project. Important but currently impractical approaches, such as proving the correctness of programs, were ruled out. Instead, we selected the "constructive" approach, that is, the combination of programming techniques (in particular, structured programming) and management practices that encourage construction of correct software in the first place. The rationale behind this decision is fully discussed in [4]. Our choice was heavily influenced by the success of an IBM project [5] which combined structured programming techniques and management techniques to achieve an impressively reliable system.
          in SIGPLAN Notices 8(09) June 1973 Proceedings of ACM SIGPLAN - SIGOPS interface meeting on Architectural Support for Programming Languages and Operating Systems, Savannah, Georgia, 1973 view details