Isabel Gouveia Lima, Richard P. Hopkins, Lindsay F. Marshall, D. Mundy, P. Treleaven
{"title":"Decentralised control flow - based on UNIX","authors":"Isabel Gouveia Lima, Richard P. Hopkins, Lindsay F. Marshall, D. Mundy, P. Treleaven","doi":"10.1145/800226.806866","DOIUrl":"https://doi.org/10.1145/800226.806866","url":null,"abstract":"In the computing science community there is a growing belief that the traditional von Neumann programming model will be superceded in the 1990's by a new decentralised programming model. Various “revolutionary” approaches are being promoted: data flow, reduction, actor and logic models. We propose an alternative “evolutionary” approach, namely a decentralised control flow model. This model, a generalisation of the von Neumann model, can already be recognised as providing the basis of modern operating systems such as UNIX. In this paper we discuss initially the programming of future decentralised computing systems that represent a convergence of computer networks and parallel architectures. Next we describe the decentralised control flow model, and finally we present a simple programming language called BASIX that embodies the model.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124037833","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":"Organizing software in a distributed environment","authors":"B. Lampson, E. Schmidt","doi":"10.1145/800226.806846","DOIUrl":"https://doi.org/10.1145/800226.806846","url":null,"abstract":"The System Modeller provides automatic support for several different kinds of program development cycle in the Cedar programming system. It handles the daily evolution of a single module or a small group of modules modified by a single person, the assembly of numerous modules into a large system with complex interconnections, and the formal release of a system. The Modeller can also efficiently locate a large number of modules in a big distributed file system, and move them from one machine to another to meet operational requirements or improve performance.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130859847","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":"Attribute grammars and data-flow languages","authors":"Rodney Farrow","doi":"10.1145/800226.806849","DOIUrl":"https://doi.org/10.1145/800226.806849","url":null,"abstract":"This paper examines the similarity between attribute grammars and data-flow languages. For any attribute grammar there is a data-flow program that is an evaluator for it, and we describe how to build this data-flow program. The design of semantic functions for an attribute grammar is seen to be a problem of programming in a data-flow language. Reinterpreting our experience writing attribute grammars, we suggest some techniques to use in data-flow programming and propose language features that will support them. We also propose using data-flow notation to specify the semantic functions of attribute grammars and implementing attribute evaluators in a data-flow language.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115769406","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":"An analysis of language models for high-performance communication in local-area networks","authors":"T. LeBlanc, R. Cook","doi":"10.1145/800226.806852","DOIUrl":"https://doi.org/10.1145/800226.806852","url":null,"abstract":"In this paper we present an empirical analysis of language models for communication in distributed systems. We consider a computing environment in which a high-level, distributed programming language kernel is sufficient support for high-performance programming applications. We propose programming language support for such an environment and present the performance results of an implementation.\u0000 Using the distributed programming language StarMod as a context, we describe language constructs for message-based communication (including broadcast), remote invocation, and remote memory references. Each form of communication is integrated into StarMod in a consistent fashion maintaining the properties of transparency, modularity, and full parameter functionality. The costs and benefits associated with the various models of communication are analyzed based on the results of an implementation which runs on 8 PDP 11/23; microprocessors connected by a 1 megabit/second network.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128649306","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 and implementation of resilient, atomic data types","authors":"W. Weihl, B. Liskov","doi":"10.1145/800226.806851","DOIUrl":"https://doi.org/10.1145/800226.806851","url":null,"abstract":"A major issue in many applications is how to preserve the consistency of data in the presence of concurrency and hardware failures. We suggest addressing this problem by implementing applications in terms of abstract data types with two properties: Their objects are atomic (they provide serializability and recoverability for activities using them) and resilient (they survive hardware failures with acceptably high probability). We define what it means for abstract data types to be atomic and resilient. We also discuss issues that arise in implementing such types, and describe a particular linguistic mechanism provided in the Argus programming language.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"131 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127032498","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":"Fable: A programming-language solution to IC process automation problems","authors":"H. Ossher, B. Reid","doi":"10.1145/800226.806859","DOIUrl":"https://doi.org/10.1145/800226.806859","url":null,"abstract":"The Stanford University Center for Integrated Systems is embarking on an ambitious project to formally characterize integrated circuit fabrication processes, and to provide a degree of automation of research and prototyping activities in the IC fabrication facility. A crucial component of this project is the ability to represent an IC fabrication “recipe” in a repeatable, transportable, device-independent fashion. We have designed the language Fable for this purpose: it offers some novel approaches to abstraction and modularity. We describe the problem, explain why we were forced to devise a new language rather than use an existing language, describe important properties of the Fable language, and give several examples.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123777866","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 programmer controlled approach to data and control abstraction","authors":"J. Heinänen","doi":"10.1145/800226.806850","DOIUrl":"https://doi.org/10.1145/800226.806850","url":null,"abstract":"Traditionally, data abstraction languages have only provided a means to extend the language “upward” to include new procedures and data types not present in the base language. This paper introduces a complementary approach, which also allows programmers to extend the language “downward” and thus to override many of the previously preempted decisions concerning the nature and implementation of various language constructs. In order to illustrate the approach, several extension examples are presented that involve control of decisions below the level of Pascal-like languages. Implementation of the programmer defined language constructs is also discussed and benchmark results are reported that show them comparable—and in many cases exceeding—in efficiency the corresponding built-in constructs of conventional languages.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123229887","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":"Action and transaction skeletons: : High level language constructs for database transactions","authors":"D. Ridjanovic, Michael L. Brodie","doi":"10.1145/872728.806855","DOIUrl":"https://doi.org/10.1145/872728.806855","url":null,"abstract":"The relational data model (RDM) provides a powerful basis for high level language constructs that are used in representing structural (static) and behavioural (dynamic) properties of data intensive applications. A fundamental class of semantic integrity constraints, called interrelational constraints, cannot adequately be represented by structural or behavioural constructs alone. The required structural concept is provided directly by the RDM, but a complementary behavioural concept must be added. The language design issues concern a behavioural concept, called an action skeleton, and its integration with the structural concept. An action skeleton enforces a disciplined design and implementation of database transactions that maintain interrelational constraints. Another design issue concerns the use of syntax to constrain design and implementation choices.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130627878","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":"Compiling functional languages for von Neumann machines","authors":"U. Honschopp, W. Lippe, F. Simon","doi":"10.1145/800226.806848","DOIUrl":"https://doi.org/10.1145/800226.806848","url":null,"abstract":"Functional programming languages based on the lambda calculus provide a powerful programming tool. Much of this power derives from the ability to use higher order functions, that means functions having either functional arguments or a functional result. However, attempts to implement such higher order functions without any restrictions have always been expensive, both in storage and time (e.g. [Bo/We]).\u0000 ALGOL-like languages only have functions with functional arguments (e.g. ALGOL 60 or, with some mode restrictions, PASCAL) and a run time stack can be used for managing function and procedure calls. Using Dijkstra's “display-technique” we can obtain a simple and efficient implementation.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122254560","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 high-level programming and command language","authors":"C. Fraser, D. R. Hanson","doi":"10.1145/800226.806868","DOIUrl":"https://doi.org/10.1145/800226.806868","url":null,"abstract":"Unifying programming and command languages is a promising idea that has yet to be thoroughly exploited. Most attempts at such unification have used Lisp or traditional languages, such as Pascal. This paper describes the command and programming language EZ, which attempts to unify command and programming languages by using high-level string-processing concepts, such as those in SNOBOL4 and Icon. EZ has particularly simple data abstractions that attempt to bridge the gap between the data abstractions of command languages and those of programming languages. This is accomplished by type fusion, which pushes the differences between some classes of types, such as strings and text files, out of the language and into the implementation. The language, its use, and its implementation are described.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1983-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115186755","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}