首页 > 最新文献

SIGPLAN Conferences and Workshops最新文献

英文 中文
Descartes: A programming-language approach to interactive display interfaces
Pub Date : 1983-06-01 DOI: 10.1145/800226.806856
M. Shaw, E. Borison, M. Horowitz, T. Lane, David Nichols, R. Pausch
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.
本文展示了程序设计方法学和语言设计原理如何帮助解决为软件系统指定和创建交互显示界面的问题。抽象技术,例如抽象数据类型,既支持显示接口的规范,也支持以各种样式实现这些接口。这些抽象技术还指导将使用显示接口的软件系统的组织。我们正在开发一个包含规范、接口描述工具、原型组织和运行时支持的系统。重点在于灵活性和政策与具体情况的分离。原型领域的初步实现结果表明了该方法的可行性。
{"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}
引用次数: 29
Visual abstraction in an interactive programming environment 交互式编程环境中的可视化抽象
Pub Date : 1983-06-01 DOI: 10.1145/800226.806847
M. L. Powell, M. Linton
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. 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.
我们正在设计一个软件开发系统,实现“所见即所得”的编程。该系统被称为OMEGA,允许软件被显示、处理和修改,使用图形表示来传达程序的结构和抽象层次。OMEGA利用交互式用户界面提供无语法输入,用户可选择的显示格式和增量语义分析。通过区分输入规范和输出显示,并利用语义分析中的交互,我们能够统一传统编程环境中存在的不同抽象机制。
{"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}
引用次数: 23
Abstraction mechanisms for database programming 数据库编程的抽象机制
Pub Date : 1983-06-01 DOI: 10.1145/800226.806854
Joachim W. Schmidt, M. Mall
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. 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.
数据库包含大量高度相关的数据,这些数据可以被相当大的规模和复杂性的程序访问。因此,数据库编程特别需要从数据访问、数据操作和数据控制的细节中抽象出来的高级结构。本文研究了几种众所周知的数据库编程抽象机制的适用性(例如,控制抽象和功能抽象)。此外,它还提供了一些新的抽象机制(访问抽象和事务抽象),专门用于管理典型的数据库问题,如完整性和并发控制。
{"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}
引用次数: 16
Who needs languages, and why do they need them? or no matter how high the level, it's still programming 谁需要语言,他们为什么需要语言?或者不管有多高,它仍然在编程
Pub Date : 1983-06-01 DOI: 10.1145/800226.806860
S. Smoliar, D. Barstow
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.
对软件开发过程日益增长的研究兴趣正威胁着排挤最终用户的关注。计算机科学提供了大量的工具,包括规范语言、设计语言、特殊用途的编程语言,甚至是广泛的语言,能够在一个单一的、统一的软件包中容纳所有前面语言的目标。不幸的是,随着计算机科学家越来越多地参与到软件开发过程中,最终用户的作用趋于减弱。将语言扔到问题领域,无论是数量多还是灵活性大,都不一定能正确地解决首先需要软件的一方的需求。问题是,无论语言设计者的意图多么高尚,最终用户最终都会遇到这样的情况:主要障碍是对语言的掌握,而不是问题领域中的困难。作为替代方案,我们建议更多地关注软件开发发生的环境,而不是表达开发阶段的语言。本讲座将讨论环境设施,以提高用户对其软件工具的语法和语义理解。
{"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}
引用次数: 8
NIL: An integrated language and system for distributed programming 一种用于分布式编程的集成语言和系统
Pub Date : 1983-06-01 DOI: 10.1145/800226.806853
R. Strom, S. Yemini
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. 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.
本文介绍了支持构建分布式软件系统的NIL编程语言的特点:(1)不可见指针和共享数据的进程模型;(2)通过同步和异步消息传递进行进程间通信;(3)编译时类型状态检查,保证模块隔离和数据正确结束;(4)在能力控制下动态绑定静态类型端口。我们将讨论如何在NIL中定义这些特性,说明这些决策对分布式系统设计的影响,并将这些决策与具有类似目标的其他编程语言中的决策进行比较。
{"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}
引用次数: 77
Type hierarchies and Semantic Data Models 类型层次结构和语义数据模型
Pub Date : 1983-06-01 DOI: 10.1145/800226.806864
A. Albano
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.
语义数据模型的基本抽象机制——聚合、分类和泛化——被认为是克服传统数据模型在语义表达方面局限性的基本特征。数据库编程语言设计中的一个重要问题是编程语言应该具备哪些特性来支持语义数据模型的抽象机制。本文表明,在使用强类型编程语言时,该语言应该支持类型层次结构的概念,以便在该语言的类型系统中实现语义数据模型抽象机制的完全集成。该解决方案是使用Galileo语言提出的,这是一种专门为数据库应用程序设计的强类型交互式编程语言。
{"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}
引用次数: 21
A programming language framework for designing user interfaces 用于设计用户界面的编程语言框架
Pub Date : 1983-06-01 DOI: 10.1145/800226.806858
M. Pilote
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]. 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.
编程语言研究人员越来越认识到,应用程序开发成本的很大一部分涉及与应用程序用户的接口,包括各种对话、输入格式、错误检查、帮助和解释消息等等。他们也越来越认识到维护成本往往超过了开发成本。这两个因素甚至会增加它们的不利影响:随着用户需求的发展,系统的界面通常需要最多的维护。甚至有人说,用户关系占维护问题的60% [Lientz和Swanson 81]。令人惊讶的是,很少有编程语言结构被设计用于处理用户界面设计领域。相反,传统的编程语言结构强烈地倾向于提高程序员在开发应用程序的算法和数据操作方面的效率。程序员基本上每次都要重新设计处理用户命令和输入所需的过程。
{"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}
引用次数: 19
Extensions to static scoping 扩展到静态作用域
Pub Date : 1983-06-01 DOI: 10.1145/800226.806865
G. Cormack
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.
范围规则以L语言的形式呈现,L语言目前正在麦吉尔大学开发中。这些规则允许程序员显式地指定所有对象的持续时间和可见性。这种规范可用于声明变量或创建数据结构,这些数据结构从对块的一次调用持续到下一次调用。此外,数据可能会从程序的一次运行持续到下一次运行,从而避免了超出编程语言范围和控制的临时文件。对象的可见性也可以指定为大于包含其声明的块。这个功能允许程序员导出一些对象,而保留其他对象的私有。最后,提出了一个调用站点可见性的工具,它提供了动态范围和宏的一些表达能力,而没有它们固有的类型不安全性。
{"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}
引用次数: 7
The design of OWL a language for walking 面向行走的OWL语言的设计
Pub Date : 1983-06-01 DOI: 10.1145/800226.806861
Marc D. Donner
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.
本文描述了一种编程语言的语法、语义和设计原理,该语言旨在为六足步行机器人的编程提供实时并发处理。
{"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}
引用次数: 12
A functional shell 功能外壳
Pub Date : 1983-06-01 DOI: 10.1145/800226.806867
Jonathan C. Shultis
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. “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.
标准UNIX shell的最佳特性之一是使用管道来组合程序。C语言的衍生物用于涉及循环或分支的更复杂的程序组合。本文提出了一种基于管道概念自然扩展的可选shell语言。“结构化数据流”是作为一种表达潜在并发处理的方法而引入的,而“标记数据流”则用于将数据路由到程序池中的一个。这些复杂的数据流与函数操作符连接在一起,就像简单的数据流与管道连接在一起一样。“能力”的广义概念为程序的重复提供了条件,也为接受任意数量输入流的系统提供了条件。正如Kernighan和Plauger所倡导的那样,这提供了一种从简单工具构建复杂工具的统一方法。这种新的shell语言的一个主要优点是它的程序代数,它便于系统验证和分析。
{"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}
引用次数: 10
期刊
SIGPLAN Conferences and Workshops
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1