{"title":"SPIL: A language for construction of reliable system software","authors":"B. Liskov, Leroy A. Smith","doi":"10.1145/800021.808292","DOIUrl":"https://doi.org/10.1145/800021.808292","url":null,"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.\u0000 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.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127848855","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Specification languages for control programs","authors":"J. H. Austin","doi":"10.1145/800021.808274","DOIUrl":"https://doi.org/10.1145/800021.808274","url":null,"abstract":"This study (1) describes an approach to the formal specification of control programs based on the generalized concept of binding. From this viewpoint, the individual operations of a control program may be described by a graphic specification language [related to mem-theory (2)], whose statements are pairs of graphs depicting the original and final binding states of system elements. A global view of interrelationships and dynamic behavior of the system may be described by an extension of Petri-nets (3, 4) depicting the flow of system elements from one state of local binding to another.\u0000 A rational approach to the design of a new programming language must begin with an analysis of the “meanings” that are to be expressed; an appropriate, compilable syntax can then be developed around this skeleton. Consequently, we seek to identify, the characteristic features of operating system programming, and in particular those that differentiate these programs from conventional ones.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130985926","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Hierarchical language definition","authors":"G. Bochmann","doi":"10.1145/800021.808278","DOIUrl":"https://doi.org/10.1145/800021.808278","url":null,"abstract":"This paper describes a project for the hierarchical definition and implementation of languages. In the spirit of structured programming [1] and in analogy to the hierarchical construction of operating systems [2,3] we define high level languages, which are suitable for the design of operating and other software systems, in several levels of abstraction. In particular, we describe in this paper how an intermediate, machine independent basic language can be used to express the actions of a given high level language in terms of simple actions of the basic language. In conjunction with a translator writing system, this allows a compact and readable formal definition of the syntax and semantics [4,5] of the high level language, which is in fact a description of the compiler which translates this language into the basic language. This definition is independent of a particular computer, however, an implementation of the basic language must be furnished. We intend to use the basic language to describe modules which are embedded in a general system for multiple processes. The language consists of a kind of macro instructions most of which can be implemented in a straight forward manner. Some more complicated instructions, such as primitives for inter-process communication, can be implemented through a hierarchical construction process [2,3] as indicated in section III (see also figure 1).","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126347733","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Report of session on structured programming","authors":"R. Freiburghouse, B. Liskov","doi":"10.1145/800021.808267","DOIUrl":"https://doi.org/10.1145/800021.808267","url":null,"abstract":"The session on structured programming was both interesting and lively, and many aspects of structured programming were discussed. Conspicuous by its absence was a debate on the use of goto's; chairman Bob Freiburghouse requested that this topic be avoided, since it has been thoroughly discussed elsewhere.\u0000 To provide a common frame of reference for the discussion, Barbara Liskov opened the session with a presentation providing a definition of structured programming. The text of the presentation is given in the next section. The remaining sections contain summaries of the most interesting discussions, organized by topics.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124931432","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The two-level approach to data definition and space management in the LIS system implementation language","authors":"J. Ichbiah, J. Rissen, J. Heliard","doi":"10.1145/800021.808286","DOIUrl":"https://doi.org/10.1145/800021.808286","url":null,"abstract":"It has often been remarked that surprisingly few parts of the algorithms which define an operating system require the use of unsafe, low-level language features {1}. Nevertheless, the lack of safety inherent in these parts will propagate to the whole system if an appropriate methodology is not used. It seems desirable to structure programs in such a way that parts with different safety levels are clearly separated and identifiable. The LIS solution to this problem involves the use of two language levels which are used in separate contexts. The general language is a Pascal-like language with the safety that this implies {2, 3}. On the other hand, the use of unsafe features is restricted to so-called implementation parts associated with each declaration level of the program.\u0000 Several authors {4, 5, 6} have pointed out the advantages of having a two-step data definition, namely, a first step concerned with the semantic properties and a second dealing with the effective realization. In what follows we present the LIS approach to this question and show that the safety levels inherent to these two steps are different. The second step requires implementation specifications which appear in implementation parts.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"32 11","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132496442","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"System correctness","authors":"A. Ballard, D. Tsichritzis","doi":"10.1145/800021.808275","DOIUrl":"https://doi.org/10.1145/800021.808275","url":null,"abstract":"There is no question that reliability is an important factor in the production and life cycle of software. Logical correctness is the first step towards achieving reliability. While operating systems may be too large to prove correct, in view of the current state of the art, there are often key algorithms and critical properties which are good candidates.\u0000 A precise statement of the properties, assumptions, and theorems involved greatly influences the reliability of the program. As a side benefit we get a tremendous understanding of the operation of the programs while trying to prove their correctness. By the time we have stated formally all the properties, assertions and theorems involved, the program is sufficiently analyzed informally to ensure its correctness for all practical purposes.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134082676","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A data flow language for operating systems programming","authors":"P. Kosinski","doi":"10.1145/800021.808289","DOIUrl":"https://doi.org/10.1145/800021.808289","url":null,"abstract":"This paper describes a graphical programming language based on the concept of pure data flow sequencing of computations. Programs in this language are constructed through function definition and composition, and are based on the primitive notions of iteration, recursion, conditional expression, data replication, aggregation and selection, and the usual arithmetic and logical operations. Various useful programming devices such as the DO loop and, surprisingly, the memory cell are defined in terms of these primitives. Programs in this language are determinate in operation unless indeterminism is explicitly introduced. The utility of this language for designing and implementing operating systems is discussed.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120986912","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Software design with invocation diagram","authors":"N. J. Denil","doi":"10.1145/800021.808280","DOIUrl":"https://doi.org/10.1145/800021.808280","url":null,"abstract":"This paper describes a medium being developed for abstraction and expression of program structure. The medium is to be used to represent programs during the design process; It forms the basis for their implementation.\u0000 The following point of view is adopted. Program design is an iterative, trial-and-error process, in which a basic solution to part of the problem is refined, added to, and modified into a complete solution. The final result should be well-structured in the sense described by Dijkstra (1) in order for the designer to understand the program sufficiently to be confident in its correctness.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121444975","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A short discussion of interprocess communication in the sue/360/370 operating system","authors":"R. Holt, M. Grushcow","doi":"10.1145/800021.808285","DOIUrl":"https://doi.org/10.1145/800021.808285","url":null,"abstract":"This paper presents the interprocess communication/synchronization scheme used in the SUE operating system. This scheme is based on a tree structure of processes which are called “facilities” and three primitive operations: Facility Call, Accept Facility Call, and Complete Facility Call. These primitives are implemented by a small “Kernel” which is the basis of the operating system.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"495 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116695304","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards the formal description of operating systems","authors":"E. Neuhold","doi":"10.1145/800021.808299","DOIUrl":"https://doi.org/10.1145/800021.808299","url":null,"abstract":"For a number of widely used programming languages formal descriptions of their semantic have been presented /1,2/. In addition, formal description techniques have been applied to investigate programming languages and to achieve completeness and correctness proofs for algorithms and language implementations /3,4,5/. The formal description of operating systems did not achieve the same kind of success. This is partially due to the large size of currently used operating systems, but also to the difficulties encountered in understanding operating systems to a depth comparable to our understanding of programming languages. To provide a formal description of the mechanisms investigated so far /6,7,8/ and to allow a study of their interactions in a formally defined environment, it is our feeling that a concentrated effort to formally describe the semantic of a complete existing or planned operating systems should be undertaken.","PeriodicalId":161752,"journal":{"name":"SIGPLAN-SIGOPS Interface Meeting","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122269492","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}