M. Shaw, E. Borison, M. Horowitz, T. Lane, David Nichols, R. Pausch
{"title":"Descartes: A programming-language approach to interactive display interfaces","authors":"M. Shaw, E. Borison, M. Horowitz, T. Lane, David Nichols, R. Pausch","doi":"10.1145/800226.806856","DOIUrl":"https://doi.org/10.1145/800226.806856","url":null,"abstract":"This paper shows how the principles of programming methodology and language design can help solve the problem of specifying and creating interactive display interfaces for software systems. Abstraction techniques, such as abstract data types, can support both the specification of display interfaces and the implementation of those interfaces in a variety of styles. These abstraction techniques also guide the organization of software systems that will use display interfaces. We are developing a system that includes specifications, interface description tools, prototype organizations, and runtime support. The emphasis is on flexibility and on the separation of policy from particular instances. Preliminary results from implementations in a prototype domain indicate the feasibility of the approach.","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":"131559179","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":"Visual abstraction in an interactive programming environment","authors":"M. L. Powell, M. Linton","doi":"10.1145/800226.806847","DOIUrl":"https://doi.org/10.1145/800226.806847","url":null,"abstract":"We are designing a software development system that implements “what you see is what you get” for programming. The system, called OMEGA, allows software to be displayed, processed, and modified, using pictorial representations to convey the structure and levels of abstraction of the program.\u0000 OMEGA takes advantage of the interactive user interface to provide syntax-free input, user selectable display format, and incremental semantic analysis. By distinguishing input specification from output display, and exploiting interaction in semantic analysis, we are able to unify the different abstraction mechanisms present in traditional programming environments.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"14 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":"128355625","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":"Abstraction mechanisms for database programming","authors":"Joachim W. Schmidt, M. Mall","doi":"10.1145/800226.806854","DOIUrl":"https://doi.org/10.1145/800226.806854","url":null,"abstract":"Databases contain vast amounts of highly related data accessed by programs of considerable size and complexity. Therefore, database programming has a particular need for high level constructs that abstract from details of data access, data manipulation, and data control.\u0000 The paper investigates the suitability of several well-known abstraction mechanisms for database programming (e.g., control abstraction and functional abstraction). In addition, it presents some new abstraction mechanisms (access abstraction and transactional abstraction) particularly designed to manage typical database problems like integrity and concurrency control.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"34 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":"127427573","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":"Who needs languages, and why do they need them? or no matter how high the level, it's still programming","authors":"S. Smoliar, D. Barstow","doi":"10.1145/800226.806860","DOIUrl":"https://doi.org/10.1145/800226.806860","url":null,"abstract":"Increased research interest in the software development process is threatening to crowd out the concerns of the end user. Computer science provides an abundance of tools, including specification languages, design languages, special-purpose programming languages, and even wide spectrum languages, capable of accommodating the goals of all the preceding languages in a single, unified package. Unfortunately, as computer scientists become more involved with the software development process, the role of the end user tends to diminish. Throwing languages at a problem domain, either in greater numbers or in great flexibility, does not necessarily properly address the needs of the party who wanted the software in the first place. The problem is that, however noble the intentions of language designers may be, the end user will ultimately confront situations in which the major obstacle is one of mastery of the language, rather than difficulties in the problem domain. As an alternative, we propose that more attention be paid to the environmentin which software development takes place than to the languagesin which the stages of development are expressed. This talk will discuss environmental facilities which enhance a user's syntactic and semantic understanding of his software tools.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"27 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":"114452853","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":"NIL: An integrated language and system for distributed programming","authors":"R. Strom, S. Yemini","doi":"10.1145/800226.806853","DOIUrl":"https://doi.org/10.1145/800226.806853","url":null,"abstract":"This paper presents features of the NIL programming language which support the construction of distributed software systems: (1) a process model in which no pointers or shared data are visible, (2) interprocess communication via synchronous and asynchronous message passing, (3) compile-time typestate checking, guaranteeing module isolation and correct finalization of data, (4) dynamic binding of statically typed ports under the control of capabilities.\u0000 We discuss how these features are defined in NIL, illustrate the consequences of these decisions for the design of distributed systems, and compare these decisions with those made in other programming languages with similar objectives.","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":"128738550","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":"Type hierarchies and Semantic Data Models","authors":"A. Albano","doi":"10.1145/800226.806864","DOIUrl":"https://doi.org/10.1145/800226.806864","url":null,"abstract":"The basic abstraction mechanisms of Semantic Data Models - aggregation, classification and generalization - are considered the essential features to overcome the limitations of traditional data models in terms of semantic expressiveness. An important issue in database programming language design is which features should a programming language have to support the abstraction mechanisms of Semantic Data Models. This paper shows that when using a strongly typed programming language, that language should support the notion of type hierarchies to achieve a full integration of Semantic Data Models abstraction mechanisms within the language's type system. The solution is presented using the language Galileo, a strongly typed, interactive programming language specifically designed for database applications.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"41 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":"123602643","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 programming language framework for designing user interfaces","authors":"M. Pilote","doi":"10.1145/800226.806858","DOIUrl":"https://doi.org/10.1145/800226.806858","url":null,"abstract":"Programming Language researchers increasingly recognize that a high proportion of application development costs involve the interface with users of the application, including various dialogues, input formats, error checking, help and explanation messages, and the like. They also increasingly recognize that maintenance costs tend to overshadow development costs. These two factors even multiply their adverse effects: as the user needs evolve, it is the interface with a system which generally requires the most maintenance. The user relationship is even said to account for about 60 percent of the maintenance problem [Lientz and Swanson 81].\u0000 Surprisingly, few programming language constructs are designed to address the area of user interface design. On the contrary, traditional programming language constructs are strongly oriented towards improving programmers' effectiveness in developing the algorithmic and data manipulation aspects of an application. A programmer is basically left to reinvent each time the required procedures to deal with user commands and inputs.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"67 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":"124463396","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":"Extensions to static scoping","authors":"G. Cormack","doi":"10.1145/800226.806865","DOIUrl":"https://doi.org/10.1145/800226.806865","url":null,"abstract":"Scope rules are presented as they appear in the language L, which is currently under development at McGill. These rules permit a programmer to specify explicitly the duration and visibility of all objects. Such specification can be used to declare variables or to create data structures which persist from one invocation of a block to the next. In addition, the data may be caused to persist from one run of the program to the next, obviating temporary files which are outside the scope and control of the programming language. The visibility of an object may also be specified to be larger than the block that contains its declaration. This facility allows the programmer to export some objects, yet keep others private. Finally, a facility for call-site visibility is presented that provides some of the expressive power of dynamic scoping and macros without their inherent type insecurity.","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":"130585775","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 design of OWL a language for walking","authors":"Marc D. Donner","doi":"10.1145/800226.806861","DOIUrl":"https://doi.org/10.1145/800226.806861","url":null,"abstract":"This paper describes the syntax, semantics, and design rationale for a programming language developed to provide real-time concurrent processes for the programming of a six legged walking robot.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"12 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":"133796495","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 functional shell","authors":"Jonathan C. Shultis","doi":"10.1145/800226.806867","DOIUrl":"https://doi.org/10.1145/800226.806867","url":null,"abstract":"One of the best features of the standard UNIX shell is the use of pipes to compose programs. A C language derivative is used for more complex program combinations involving looping or branching. This paper presents an alternative shell language based on natural extensions of the pipe concept.\u0000 “Structured data streams” are introduced as a means of expressing potentially concurrent processing, and “labelled data streams” serve to route data to one of a pool of programs. These complex data streams are hooked together with functional operators much as simple data streams are hooked together with pipes. A generalized notion of “powers” provides for repetition of programs and also for systems that take an arbitrary number of input streams. This provides a uniform way of building complex tools from simple ones, as advocated by Kernighan and Plauger [8]. A major advantage of this new shell language is its program algebra, which facilitates system verification and analysis.","PeriodicalId":414056,"journal":{"name":"SIGPLAN Conferences and Workshops","volume":"27 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":"130307655","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}