In 1977 functional programming received a fresh and timely examination from Turing Award recipient John Backus. This work raised awareness of inherent deficiencies in traditional von Neumann architecture and languages. In his subsequent writings Backus uses results from combinatory logic to further develop a high-level functional programming form (FP) in which variable-free programs are built from a set of primitive programs using a few combining forms and recursive definitions. The symmetric properties of the underlying program forming operations (PFO's) in FP provide a strong mathematical structure with which to study the "algebra of programs." These PFO's generate programs which are semantically simple, are clearly hierarchical, and facilitate program correctness proofs. Unfortunately, FP style code does not execute as quickly on traditional von Neumann machines as do traditional languages. Very large scale integration (VLSI) chip design technology may address this problem. Development of VLSI offers low cost architectural possibilities for concurrent processing to which FP is well suited. In return, FP offers the clarity, structure, and mathematically sound software which VLSI applications require to justify their design, development, and implementation.
{"title":"The synergy of functional programming and very large scale integration","authors":"Karen Strain, H. C. Grossman","doi":"10.1145/503896.503951","DOIUrl":"https://doi.org/10.1145/503896.503951","url":null,"abstract":"In 1977 functional programming received a fresh and timely examination from Turing Award recipient John Backus. This work raised awareness of inherent deficiencies in traditional von Neumann architecture and languages. In his subsequent writings Backus uses results from combinatory logic to further develop a high-level functional programming form (FP) in which variable-free programs are built from a set of primitive programs using a few combining forms and recursive definitions. The symmetric properties of the underlying program forming operations (PFO's) in FP provide a strong mathematical structure with which to study the \"algebra of programs.\" These PFO's generate programs which are semantically simple, are clearly hierarchical, and facilitate program correctness proofs. Unfortunately, FP style code does not execute as quickly on traditional von Neumann machines as do traditional languages. Very large scale integration (VLSI) chip design technology may address this problem. Development of VLSI offers low cost architectural possibilities for concurrent processing to which FP is well suited. In return, FP offers the clarity, structure, and mathematically sound software which VLSI applications require to justify their design, development, and implementation.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127311353","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}
Extended context free grammars (ECFG) are context free grammars (CFG) in which the right side or each production may be an arbitrary finite state machine. There are ECFG subsets, ELR(k) and ELALR(k) which correspond to the context free subsets, LR(k) and LALR(k).Although ECFGs recognize the same set of languages as CFGs, ECFGs have some important advantages over CFGs. They tend to be smaller and more readable, containing fewer productions and non-terminals than their context free counterparts. In addition, they allow for a degree of separation of syntax and semantics which is probably impossible to obtain with CFGs.This paper briefly describes ELR parsing and then discusses PEG, a ELALR(1) parser generator currently under development at University of Alabama in Birmingham.
{"title":"On the use of extended grammars","authors":"T. J. Sager","doi":"10.1145/503896.503939","DOIUrl":"https://doi.org/10.1145/503896.503939","url":null,"abstract":"Extended context free grammars (ECFG) are context free grammars (CFG) in which the right side or each production may be an arbitrary finite state machine. There are ECFG subsets, ELR(k) and ELALR(k) which correspond to the context free subsets, LR(k) and LALR(k).Although ECFGs recognize the same set of languages as CFGs, ECFGs have some important advantages over CFGs. They tend to be smaller and more readable, containing fewer productions and non-terminals than their context free counterparts. In addition, they allow for a degree of separation of syntax and semantics which is probably impossible to obtain with CFGs.This paper briefly describes ELR parsing and then discusses PEG, a ELALR(1) parser generator currently under development at University of Alabama in Birmingham.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"87 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122984761","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}
The rapid advances in light-based information transfer have left many awed, both engineers and end users. Articles and books for the former are highly technical, while information for the latter discusses the results without an explanation of the principles. This paper seeks to bridge that gap.Examined first is the conceptual difference between the two primary transfer methods --- copper coaxial cable and fiber optic cable. Next, attenuation and noise are discussed as the primary factors encouraging the development of glass fibers. The following section uses this information to look at a few example systems (like Bell's transatlantic underwater system) and the benefits derived from the installation of fiber optic cable.The LED transmitter is examined, and particularly the special LED: the laser. The development and structure of injection lasers are described, from the simple diffused-junction lasers (like GaAs-GaAs lasers), to the complex double-heterojunction lasers (like AlGaAs-GaAs lasers). Examples are considered to see benefits brought by lasers.With the terms set, the paper delves into the technical specifications which might confront a decision maker, and concludes by listing the potential benefits and drawbacks of a light-based communication system.
{"title":"Light-based information systems for the businessman","authors":"P. Dines","doi":"10.1145/503896.503949","DOIUrl":"https://doi.org/10.1145/503896.503949","url":null,"abstract":"The rapid advances in light-based information transfer have left many awed, both engineers and end users. Articles and books for the former are highly technical, while information for the latter discusses the results without an explanation of the principles. This paper seeks to bridge that gap.Examined first is the conceptual difference between the two primary transfer methods --- copper coaxial cable and fiber optic cable. Next, attenuation and noise are discussed as the primary factors encouraging the development of glass fibers. The following section uses this information to look at a few example systems (like Bell's transatlantic underwater system) and the benefits derived from the installation of fiber optic cable.The LED transmitter is examined, and particularly the special LED: the laser. The development and structure of injection lasers are described, from the simple diffused-junction lasers (like GaAs-GaAs lasers), to the complex double-heterojunction lasers (like AlGaAs-GaAs lasers). Examples are considered to see benefits brought by lasers.With the terms set, the paper delves into the technical specifications which might confront a decision maker, and concludes by listing the potential benefits and drawbacks of a light-based communication system.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126180335","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}
Directed graphs have been used as the theoretical base for many applications in Computer Science -- especially artificial intelligence. Two drawbacks to the use of directed graphs for more practical work have been:1. The difficulty in associating data of a variety of types with the nodes in the graph and with the connections between the nodes, and2. The inability to search and modify the graph efficiently as the size and complexity of the graph grows.This paper describes a library of cooperating routines for dealing with directed graphs that overcomes these objections. The first problem is overcome by adding to the usual directed graph model the concepts of "data tags" and "connection descriptors." The problem of efficiency is addressed by using a binary tree facility to implement the augmented directed graph. This paper describes the augmented directed graph "access method" and how it can be used as the base for application development.
{"title":"An augmented directed graph base for application development","authors":"D. C. Clarke","doi":"10.1145/503896.503924","DOIUrl":"https://doi.org/10.1145/503896.503924","url":null,"abstract":"Directed graphs have been used as the theoretical base for many applications in Computer Science -- especially artificial intelligence. Two drawbacks to the use of directed graphs for more practical work have been:1. The difficulty in associating data of a variety of types with the nodes in the graph and with the connections between the nodes, and2. The inability to search and modify the graph efficiently as the size and complexity of the graph grows.This paper describes a library of cooperating routines for dealing with directed graphs that overcomes these objections. The first problem is overcome by adding to the usual directed graph model the concepts of \"data tags\" and \"connection descriptors.\" The problem of efficiency is addressed by using a binary tree facility to implement the augmented directed graph. This paper describes the augmented directed graph \"access method\" and how it can be used as the base for application development.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128497382","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}
This paper describes the algorithms necessary to draw a cross section of the working volume of a manipulator,or robotic arm, that has only rotation type joints.
本文描述了绘制只有旋转型关节的机械手或机械臂的工作体积截面所需的算法。
{"title":"The reachable volume of a robot arm","authors":"R. Selfridge","doi":"10.1145/503896.503915","DOIUrl":"https://doi.org/10.1145/503896.503915","url":null,"abstract":"This paper describes the algorithms necessary to draw a cross section of the working volume of a manipulator,or robotic arm, that has only rotation type joints.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131715273","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}
As computers become more of an indispensable part of everyday life, there is a growing feeling that those who design, program, build, and manage these machines should be professionals, in the same sense that lawyers, doctors, accountants and architects are professional. One criterion (perhaps the most important) of a true profession is that it be represented by a strong professional society. One reason perhaps why the computer field has not developed to the status of a true profession is that it does not as yet have this prerequisite professional society. The ACM and IEEE are the two largest of the many associations in the computer field that purport to be professional societies. Information from the members of these two organizations concerning their views on professionalism in the computer field should be useful in determining why there is still not the strong professional computer society that is needed. This paper presents preliminary data drawn from an ongoing study of the opinions of ACM and IEEE members concerning aspects of professionalism in the computer field.
{"title":"Analysis of views of ACM and IEEE members concerning professionalism in the computing field","authors":"J. D. Longhill","doi":"10.1145/503896.503937","DOIUrl":"https://doi.org/10.1145/503896.503937","url":null,"abstract":"As computers become more of an indispensable part of everyday life, there is a growing feeling that those who design, program, build, and manage these machines should be professionals, in the same sense that lawyers, doctors, accountants and architects are professional. One criterion (perhaps the most important) of a true profession is that it be represented by a strong professional society. One reason perhaps why the computer field has not developed to the status of a true profession is that it does not as yet have this prerequisite professional society. The ACM and IEEE are the two largest of the many associations in the computer field that purport to be professional societies. Information from the members of these two organizations concerning their views on professionalism in the computer field should be useful in determining why there is still not the strong professional computer society that is needed. This paper presents preliminary data drawn from an ongoing study of the opinions of ACM and IEEE members concerning aspects of professionalism in the computer field.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133375883","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}
Charles Minderhout, K. Reilly, J. H. Barrett, J. Gibson
Barrel is a language-development facility, whose conceptual and theoretical bases are outlined in a companion paper. The present paper attempts to describe applications of Barrel and usages of it, on the Data General Eclipse, mostly, but also on the DEC Vax 11/750.The studies in which Barrel has been applied are primarly non-numerical. An attempt is being made to develop strong capabilities in both string and list processing. An important newer form of computation: that of logic processing is being watched with some facilities for it being included in the work.Four components of Barrel are described: BMAC, basic facilities providing an interpreter with some rudimentary compiler features, reminiscent of interactive Basic; BICON, delivering string processing facilities modeled after the new string-processing language, ICON; BLISP, a (functional programming) subset of LISP; BTPS, a table-processing system which links to other (network based) table-processing software. The components operate interactively, line-by-line or in larger units of code.
Barrel是一种语言开发工具,其概念和理论基础在一篇配套论文中进行了概述。本文试图描述Barrel的应用及其用法,主要是在Data General Eclipse上,但也在DEC Vax 11/750上。应用Barrel的研究主要是非数值的。正在努力发展字符串和列表处理的强大能力。一种重要的新计算形式:逻辑处理的计算形式正在受到关注,一些设施将其包括在工作中。描述了Barrel的四个组成部分:BMAC,提供具有一些基本编译器功能的解释器的基本设施,让人想起交互式basic;BICON,提供以新的字符串处理语言ICON为模型的字符串处理工具;LISP的一个(函数式编程)子集;BTPS,一个与其他(基于网络的)表格处理软件相连接的表格处理系统。组件以交互方式,逐行或在更大的代码单元中操作。
{"title":"Use of barrel in applications studies","authors":"Charles Minderhout, K. Reilly, J. H. Barrett, J. Gibson","doi":"10.1145/503896.503927","DOIUrl":"https://doi.org/10.1145/503896.503927","url":null,"abstract":"Barrel is a language-development facility, whose conceptual and theoretical bases are outlined in a companion paper. The present paper attempts to describe applications of Barrel and usages of it, on the Data General Eclipse, mostly, but also on the DEC Vax 11/750.The studies in which Barrel has been applied are primarly non-numerical. An attempt is being made to develop strong capabilities in both string and list processing. An important newer form of computation: that of logic processing is being watched with some facilities for it being included in the work.Four components of Barrel are described: BMAC, basic facilities providing an interpreter with some rudimentary compiler features, reminiscent of interactive Basic; BICON, delivering string processing facilities modeled after the new string-processing language, ICON; BLISP, a (functional programming) subset of LISP; BTPS, a table-processing system which links to other (network based) table-processing software. The components operate interactively, line-by-line or in larger units of code.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124120264","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}
Finite state automata have proven quite useful in the processing of free format input, in that it can be proven that for most grammars, a finite state automata exists to recognize and parse said grammar. In theory, this is easily implemented and understood in the undergraduate software development class. In reality, many undergraduates have trouble with formal parsing methods due to a lack of a formal mathematical background, failure to understand grammars, as well as other reasons. One other problem is that many undergraduate students will also rely on automated parsers during software development, and are then comprised when arriving at work and discovering that no automated parser exists at that site. For these reasons, as well as others, this author tried a different approach to teaching these useful, but often complex, techniques. What follows is a discussion of the method used, as well as the results of that experiment.
{"title":"An alternate approach to formal parsing methods","authors":"Barry Barlow","doi":"10.1145/503896.503940","DOIUrl":"https://doi.org/10.1145/503896.503940","url":null,"abstract":"Finite state automata have proven quite useful in the processing of free format input, in that it can be proven that for most grammars, a finite state automata exists to recognize and parse said grammar. In theory, this is easily implemented and understood in the undergraduate software development class. In reality, many undergraduates have trouble with formal parsing methods due to a lack of a formal mathematical background, failure to understand grammars, as well as other reasons. One other problem is that many undergraduate students will also rely on automated parsers during software development, and are then comprised when arriving at work and discovering that no automated parser exists at that site. For these reasons, as well as others, this author tried a different approach to teaching these useful, but often complex, techniques. What follows is a discussion of the method used, as well as the results of that experiment.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116065730","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}
Conventional machine-languages (instruction sets) were not designed with high-level languages (HLLs) in mind. The resulting semantic gap is known to cause significant inefficiencies in program representation and execution time. Direct interpretation of HLLs is not the solution, because it is too complex and inefficient. The alternative is to precede the interpretation phase by a compilation phase in which the HLL is translated to a "suitable" intermediate representation which is directly interpretable. Such a directly interpretable language (DIL) can qualify as an instruction set for supporting the source HLL, since it is feasible to construct an interpreter for this language. In this paper, we present our approach to the problem of designing well-matched, space-time efficient DILs. The problem is approached by examining HLLs and DILs in a common interpretive environment.A systematic, top-down DIL design methodology is presented. A set of ten transformations on the source HLL grammar is used to derive the target DIL grammar. The DIL obtained in this manner is not unique, and its nature depends on the choices made along the way. The spectrum of DILs, exhibiting various space-time characteristics, is discussed. A number of space and time measures to evaluate DILs are suggested, and are used to compare four DILs derived from a formally specified HLL.
{"title":"Systematically derived instruction sets for high-level language support","authors":"P. Bose, B. R. Rau, M. Schlansker","doi":"10.1145/503896.503910","DOIUrl":"https://doi.org/10.1145/503896.503910","url":null,"abstract":"Conventional machine-languages (instruction sets) were not designed with high-level languages (HLLs) in mind. The resulting semantic gap is known to cause significant inefficiencies in program representation and execution time. Direct interpretation of HLLs is not the solution, because it is too complex and inefficient. The alternative is to precede the interpretation phase by a compilation phase in which the HLL is translated to a \"suitable\" intermediate representation which is directly interpretable. Such a directly interpretable language (DIL) can qualify as an instruction set for supporting the source HLL, since it is feasible to construct an interpreter for this language. In this paper, we present our approach to the problem of designing well-matched, space-time efficient DILs. The problem is approached by examining HLLs and DILs in a common interpretive environment.A systematic, top-down DIL design methodology is presented. A set of ten transformations on the source HLL grammar is used to derive the target DIL grammar. The DIL obtained in this manner is not unique, and its nature depends on the choices made along the way. The spectrum of DILs, exhibiting various space-time characteristics, is discussed. A number of space and time measures to evaluate DILs are suggested, and are used to compare four DILs derived from a formally specified HLL.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"280 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116556816","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}
Information hiding principles help ensure the integrity of computer software. Additionally, those guidelines make software easier to modify and maintain. Computer architectures and languages that incorporate information hiding principles will help enforce adherence to those rules. The Intel iAPX processor and the language system Ada are, in part, based on information hiding principles.
{"title":"Information hiding, the Intel iAPX 432,and Ada","authors":"N. Coulter","doi":"10.1145/503896.503925","DOIUrl":"https://doi.org/10.1145/503896.503925","url":null,"abstract":"Information hiding principles help ensure the integrity of computer software. Additionally, those guidelines make software easier to modify and maintain. Computer architectures and languages that incorporate information hiding principles will help enforce adherence to those rules. The Intel iAPX processor and the language system Ada are, in part, based on information hiding principles.","PeriodicalId":184493,"journal":{"name":"ACM-SE 20","volume":"146 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122810672","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}