首页 > 最新文献

Proceedings. 1990 International Conference on Computer Languages最新文献

英文 中文
Lazy evaluation in logic programming 逻辑程序设计中的延迟求值
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63777
S. Narain
A method for bringing the concept of lazy evaluation to logic programming in a rigorous yet efficient manner is presented. Its main advantage over previous methods is its considerable efficiency, from both the theoretical and implementation points of view. It is based on making the SLD-resolution rule of inference directly simulate the behavior of a lazy rewriting interpreter satisfying strong computational properties. It thereby yields a powerful system in which one can program with functions, relations, non-determinism, lazy evaluation, and combinations of these all within a single logical framework. The method can also be viewed as contributing to the design and implementation of lazy rewriting. It introduces lazy, nondeterministic rewriting. It proposes a new method of shrinking the search space of reductions to a single branch. It allows a very simple, yet efficient, implementation in Prolog, so programming of many low-level tasks involved in usual implementations of lazy rewriting is avoided altogether.<>
提出了一种将惰性求值的概念以严格而有效的方式引入逻辑程序设计的方法。从理论和实现的角度来看,它与以前的方法相比的主要优点是其相当高的效率。它的基础是使推理的sld解析规则直接模拟满足强计算特性的延迟重写解释器的行为。因此,它产生了一个强大的系统,在这个系统中,人们可以在单个逻辑框架中使用函数、关系、非确定性、惰性求值以及这些功能的组合进行编程。该方法也可以被视为有助于延迟重写的设计和实现。它引入了惰性的、不确定的重写。提出了一种将约简的搜索空间缩小到单个分支的新方法。它允许在Prolog中实现非常简单而高效的实现,因此可以完全避免在通常的惰性重写实现中涉及许多低级任务的编程。
{"title":"Lazy evaluation in logic programming","authors":"S. Narain","doi":"10.1109/ICCL.1990.63777","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63777","url":null,"abstract":"A method for bringing the concept of lazy evaluation to logic programming in a rigorous yet efficient manner is presented. Its main advantage over previous methods is its considerable efficiency, from both the theoretical and implementation points of view. It is based on making the SLD-resolution rule of inference directly simulate the behavior of a lazy rewriting interpreter satisfying strong computational properties. It thereby yields a powerful system in which one can program with functions, relations, non-determinism, lazy evaluation, and combinations of these all within a single logical framework. The method can also be viewed as contributing to the design and implementation of lazy rewriting. It introduces lazy, nondeterministic rewriting. It proposes a new method of shrinking the search space of reductions to a single branch. It allows a very simple, yet efficient, implementation in Prolog, so programming of many low-level tasks involved in usual implementations of lazy rewriting is avoided altogether.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124595158","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}
引用次数: 13
Subdivided procedures: a language extension supporting extensible programming 细分过程:一种支持可扩展编程的语言扩展
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63774
W. Harrison, H. Ossher
An extension of conventional procedures in which procedure bodies handling multiple cases can be subdivided into separate bodies handling a single case each is described. Subdivision is based on criteria specified by the programmer. Underlying call support selects the body to execute in response to each call. Subdivided procedures support a programming style in which great attention is paid to facilitating subsequent extensions. Normally, extensions have to be made by changing source code; subdivided procedures allow them to be made instead by adding new bodies. Subdivided procedures can be implemented on top of procedural languages with a preprocessor that examines just a file of definitions; it does not need to examine procedure code. A restricted version of the mechanism implemented within the RPDE/sup 3/ environment framework has been in constant use for more than two years. Experience has shown that it facilitates extensible programming at little or no cost in call-time overhead.<>
描述了常规程序的扩展,其中处理多个案例的程序主体可以细分为处理单个案例的单独主体。细分是基于程序员指定的标准。底层调用支持为响应每个调用选择要执行的主体。细分过程支持一种编程风格,这种风格非常注重促进后续扩展。通常,必须通过更改源代码来进行扩展;细分的过程允许通过添加新的主体来创建它们。细分的过程可以在过程化语言的基础上通过预处理器来实现,预处理器只检查定义文件;它不需要检查过程代码。在RPDE/sup 3/ environment框架中实现的机制的限制版本已经持续使用了两年多。经验表明,它以很少或没有调用时间开销的代价促进了可扩展编程。
{"title":"Subdivided procedures: a language extension supporting extensible programming","authors":"W. Harrison, H. Ossher","doi":"10.1109/ICCL.1990.63774","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63774","url":null,"abstract":"An extension of conventional procedures in which procedure bodies handling multiple cases can be subdivided into separate bodies handling a single case each is described. Subdivision is based on criteria specified by the programmer. Underlying call support selects the body to execute in response to each call. Subdivided procedures support a programming style in which great attention is paid to facilitating subsequent extensions. Normally, extensions have to be made by changing source code; subdivided procedures allow them to be made instead by adding new bodies. Subdivided procedures can be implemented on top of procedural languages with a preprocessor that examines just a file of definitions; it does not need to examine procedure code. A restricted version of the mechanism implemented within the RPDE/sup 3/ environment framework has been in constant use for more than two years. Experience has shown that it facilitates extensible programming at little or no cost in call-time overhead.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114874345","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
Specification and automatic prototype implementation of polymorphic objects in Turing using the TXL dialect processor 在图灵语言中使用TXL方言处理器实现多态对象的规范和自动原型实现
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63770
J. Cordy, Eric Promislow
Object-oriented dialects of existing programming languages are often implemented using a preprocessor that translates from the dialect to an equivalent program in the original programming language. Unfortunately, the nature of the preprocessing done by these implementations is hidden in the ad hoc algorithms of the preprocessors themselves, except as demonstrated by examples. An attempt to catalogue and generalize these syntactic transformations using a simple set of applicative transformation rules expressed in the TXL dialect description language is described. Example transformation rules for implementing object types and parametric polymorphism in an object-oriented dialect of the Turing programming language are given. These rules easily generalize to other languages of the Pascal family and have been used to automatically implement Objective Turing.<>
现有编程语言的面向对象方言通常使用预处理器来实现,该预处理器将方言转换为原始编程语言中的等效程序。不幸的是,这些实现所做的预处理的本质隐藏在预处理器本身的特别算法中,除了通过示例演示的情况。本文描述了用TXL方言描述语言表达的一组简单的可应用转换规则对这些语法转换进行分类和概括的尝试。给出了在面向对象的图灵编程语言方言中实现对象类型和参数多态性的示例转换规则。这些规则很容易推广到帕斯卡家族的其他语言中,并已用于自动实现目标图灵。
{"title":"Specification and automatic prototype implementation of polymorphic objects in Turing using the TXL dialect processor","authors":"J. Cordy, Eric Promislow","doi":"10.1109/ICCL.1990.63770","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63770","url":null,"abstract":"Object-oriented dialects of existing programming languages are often implemented using a preprocessor that translates from the dialect to an equivalent program in the original programming language. Unfortunately, the nature of the preprocessing done by these implementations is hidden in the ad hoc algorithms of the preprocessors themselves, except as demonstrated by examples. An attempt to catalogue and generalize these syntactic transformations using a simple set of applicative transformation rules expressed in the TXL dialect description language is described. Example transformation rules for implementing object types and parametric polymorphism in an object-oriented dialect of the Turing programming language are given. These rules easily generalize to other languages of the Pascal family and have been used to automatically implement Objective Turing.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133402046","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}
引用次数: 13
A practical animation language for software development 一个实用的动画语言,用于软件开发
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63755
J. Stasko
A practical language for creating real-time, two-dimensional, smooth, color animations is described. Animation can be a valuable component in a variety of domains, such as user interface design, on-line help information, and computer-aided instruction. The animation language produces aesthetically pleasing, smooth imagery, and is easy to learn and use. The language is based on four abstract data types: locations, images, paths, and transitions. Animation designers create and modify objects of these types in order to produce animation sequences. In addition, a precise specification and semantics are provided for all the data type operations. This rigorous definition helps simplify animation design by formalizing the actions resulting from the operations. A prototype algorithm animation system that utilizes this design language as its basis has been implemented.<>
描述了一种用于创建实时、二维、平滑、彩色动画的实用语言。动画在许多领域都是有价值的组成部分,例如用户界面设计、在线帮助信息和计算机辅助教学。动画语言产生美观、流畅的图像,易于学习和使用。该语言基于四种抽象数据类型:位置、图像、路径和转换。动画设计师创建和修改这些类型的对象,以产生动画序列。此外,还为所有数据类型操作提供了精确的规范和语义。这个严格的定义通过形式化操作产生的动作来帮助简化动画设计。以该设计语言为基础,实现了一个原型算法动画系统。
{"title":"A practical animation language for software development","authors":"J. Stasko","doi":"10.1109/ICCL.1990.63755","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63755","url":null,"abstract":"A practical language for creating real-time, two-dimensional, smooth, color animations is described. Animation can be a valuable component in a variety of domains, such as user interface design, on-line help information, and computer-aided instruction. The animation language produces aesthetically pleasing, smooth imagery, and is easy to learn and use. The language is based on four abstract data types: locations, images, paths, and transitions. Animation designers create and modify objects of these types in order to produce animation sequences. In addition, a precise specification and semantics are provided for all the data type operations. This rigorous definition helps simplify animation design by formalizing the actions resulting from the operations. A prototype algorithm animation system that utilizes this design language as its basis has been implemented.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"95 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121380504","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}
引用次数: 18
GARTL: a real-time programming language based on multi-version computation GARTL:一种基于多版本计算的实时编程语言
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63766
C. Marlin, Wei Zhao, Graeme Doherty, Andrew Bohonis
The increasing importance of real-time computing systems is widely known and such systems are presently the subject of much research. A particularly attractive approach to the programming of hard real-time systems is the identification of multiple versions of the task to be carried out. If this is done, then the system scheduler used by a real-time system can select the version that gives the most precise results in the time available-the more time available, the more precise the results. This approach to programming hard real-time systems is called multiversion computation. The question of suitable language support for multiversion computation through the description of GARTL, a real-time programming language is explored. Some aspects of the implementation of GARTL are discussed.<>
实时计算系统日益增长的重要性是众所周知的,这种系统目前是许多研究的主题。硬实时系统编程的一个特别有吸引力的方法是确定要执行的任务的多个版本。如果这样做了,那么实时系统使用的系统调度器可以选择在可用时间内给出最精确结果的版本——可用时间越多,结果就越精确。这种编程硬实时系统的方法称为多版本计算。通过对实时编程语言GARTL的描述,探讨了多版本计算的合适语言支持问题。讨论了GARTL实现的几个方面。
{"title":"GARTL: a real-time programming language based on multi-version computation","authors":"C. Marlin, Wei Zhao, Graeme Doherty, Andrew Bohonis","doi":"10.1109/ICCL.1990.63766","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63766","url":null,"abstract":"The increasing importance of real-time computing systems is widely known and such systems are presently the subject of much research. A particularly attractive approach to the programming of hard real-time systems is the identification of multiple versions of the task to be carried out. If this is done, then the system scheduler used by a real-time system can select the version that gives the most precise results in the time available-the more time available, the more precise the results. This approach to programming hard real-time systems is called multiversion computation. The question of suitable language support for multiversion computation through the description of GARTL, a real-time programming language is explored. Some aspects of the implementation of GARTL are discussed.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123974492","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
A 'two degrees of freedom' approach for parallel programming 并行编程的“两个自由度”方法
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63782
J. Bahsoun, L. Féraud, C. Bétourné
The concept of a priority controlled module (PCM), which is intended to implement shared objects in a parallelism environment is presented. Semantics of a PCM are given using a temporal logic. Experiences adapting the inheritance mechanisms to the synchronization domain using the concept of a PCM are also described. Because PCM mainly relies on the separation between data abstraction and synchronization, either of these can be thought as a degree of freedom. Each degree of freedom appears as a reusable programming entity, and can be implemented using the concept of a class occurring in the object-oriented languages.<>
提出了优先级控制模块(PCM)的概念,用于实现并行环境下的共享对象。用时序逻辑给出了PCM的语义。本文还描述了使用PCM概念使继承机制适应同步域的经验。由于PCM主要依赖于数据抽象和同步之间的分离,因此这两者中的任何一个都可以被认为是一种自由度。每个自由度都表现为可重用的编程实体,并且可以使用面向对象语言中出现的类概念来实现。
{"title":"A 'two degrees of freedom' approach for parallel programming","authors":"J. Bahsoun, L. Féraud, C. Bétourné","doi":"10.1109/ICCL.1990.63782","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63782","url":null,"abstract":"The concept of a priority controlled module (PCM), which is intended to implement shared objects in a parallelism environment is presented. Semantics of a PCM are given using a temporal logic. Experiences adapting the inheritance mechanisms to the synchronization domain using the concept of a PCM are also described. Because PCM mainly relies on the separation between data abstraction and synchronization, either of these can be thought as a degree of freedom. Each degree of freedom appears as a reusable programming entity, and can be implemented using the concept of a class occurring in the object-oriented languages.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"362 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120961149","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}
引用次数: 6
LEGEND: a language for generic component library description 用于通用组件库描述的语言
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63775
N. Dutt
LEGEND is a novel generator-generator language for the definition, generation, and maintenance of generic component libraries used in high-level hardware synthesis. Each LEGEND description generates a library generator GENUS, which is organized as a hierarchy of generic component generators, templates, and instances. High-level synthesis systems typically transform the abstract behavior of a design into an interconnection of generic component instances derived from a library such as GENUS. Although existing hardware description languages (such as VHDL) can effectively describe particular component libraries, they lack the capability of generating these component libraries from a high-level description. LEGEND complements a language such as VHDL by providing a component library generator-generator with behavioral models for simulation and subsequent synthesis. LEGEND generated components have realistic register transfer semantics, including clocking, asynchrony, and data bidirectionality. LEGEND's simple and extensible syntax allows users to add and modify component types easily. LEGEND is currently implemented on SUN3s under C/UNIX.<>
LEGEND是一种新的生成器-生成器语言,用于定义、生成和维护高级硬件合成中使用的通用组件库。每个LEGEND描述生成一个库生成器GENUS,它被组织为通用组件生成器、模板和实例的层次结构。高级综合系统通常将设计的抽象行为转换为派生自类库(如GENUS)的通用组件实例的互连。尽管现有的硬件描述语言(如VHDL)可以有效地描述特定的组件库,但它们缺乏从高级描述生成这些组件库的能力。LEGEND通过为仿真和随后的合成提供具有行为模型的组件库generator-generator来补充诸如VHDL之类的语言。LEGEND生成的组件具有实际的寄存器传输语义,包括时钟、异步和数据双向性。LEGEND的简单和可扩展语法允许用户轻松地添加和修改组件类型。LEGEND目前在C/UNIX下的sun3上实现。
{"title":"LEGEND: a language for generic component library description","authors":"N. Dutt","doi":"10.1109/ICCL.1990.63775","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63775","url":null,"abstract":"LEGEND is a novel generator-generator language for the definition, generation, and maintenance of generic component libraries used in high-level hardware synthesis. Each LEGEND description generates a library generator GENUS, which is organized as a hierarchy of generic component generators, templates, and instances. High-level synthesis systems typically transform the abstract behavior of a design into an interconnection of generic component instances derived from a library such as GENUS. Although existing hardware description languages (such as VHDL) can effectively describe particular component libraries, they lack the capability of generating these component libraries from a high-level description. LEGEND complements a language such as VHDL by providing a component library generator-generator with behavioral models for simulation and subsequent synthesis. LEGEND generated components have realistic register transfer semantics, including clocking, asynchrony, and data bidirectionality. LEGEND's simple and extensible syntax allows users to add and modify component types easily. LEGEND is currently implemented on SUN3s under C/UNIX.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125734558","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}
引用次数: 5
Reliable distributed computing with Avalon/Common Lisp 可靠的分布式计算与Avalon/Common Lisp
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63772
S. Clamen, Linda D. Leibengood, S. Nettles, Jeannette M. Wing
An overview of these novel aspects of Avalon/Common Lisp is presented: (1) support for remote evaluation through a new evaluator data type; (2) a generalization of the traditional client/server model of computation, allowing clients to extend server interfaces and server writers to hide aspects of distribution, such as caching, from clients; (3) support for failure atomicity through automatic commit and abort processing of transactions; and (4) support for persistence through automatic crash recovery of atomic data. These capabilities provide programmers with the flexibility to exploit the semantics of an application to enhance its reliability and efficiency. Avalon/Common Lisp runs on IBM RTs on the Mach operating system. Though the design of Avalon/Common Lisp exploits some of the features of Common Lisp, e.g., its packaging mechanism, all of the constructs are applicable to any Lisp-like language.<>
本文概述了Avalon/Common Lisp的这些新方面:(1)通过新的评估器数据类型支持远程评估;(2)对传统的客户机/服务器计算模型的一般化,允许客户机扩展服务器接口,允许服务器编写器对客户机隐藏分布的各个方面,例如缓存;(3)通过事务的自动提交和中止处理,支持失败原子性;(4)通过原子数据的自动崩溃恢复来支持持久性。这些功能为程序员提供了利用应用程序语义来增强其可靠性和效率的灵活性。Avalon/Common Lisp在Mach操作系统上的IBM RTs上运行。虽然Avalon/Common Lisp的设计利用了Common Lisp的一些特性,例如,它的打包机制,但所有的构造都适用于任何类Lisp语言。
{"title":"Reliable distributed computing with Avalon/Common Lisp","authors":"S. Clamen, Linda D. Leibengood, S. Nettles, Jeannette M. Wing","doi":"10.1109/ICCL.1990.63772","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63772","url":null,"abstract":"An overview of these novel aspects of Avalon/Common Lisp is presented: (1) support for remote evaluation through a new evaluator data type; (2) a generalization of the traditional client/server model of computation, allowing clients to extend server interfaces and server writers to hide aspects of distribution, such as caching, from clients; (3) support for failure atomicity through automatic commit and abort processing of transactions; and (4) support for persistence through automatic crash recovery of atomic data. These capabilities provide programmers with the flexibility to exploit the semantics of an application to enhance its reliability and efficiency. Avalon/Common Lisp runs on IBM RTs on the Mach operating system. Though the design of Avalon/Common Lisp exploits some of the features of Common Lisp, e.g., its packaging mechanism, all of the constructs are applicable to any Lisp-like language.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116804749","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}
引用次数: 17
Implementation and evaluation of dynamic predicates on the sequential inference machine CHI 顺序推理机上动态谓词的实现与评价
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63779
A. Atarashi, A. Konagaya, S. Habata, M. Yokota
The dynamic clause compilation technique which is used to implement Prolog's dynamic predicates is described. The effectiveness of the technique when applied to a practical application program executed on the sequential inference machine CHI is reported. Dynamic predicates are indispensable in writing practical Prolog application programs. According to the authors' application program analysis, many applications spend more than half of the total execution time in dynamic predicate execution. This means that speeding up dynamic predicates is essential for improving Prolog application performance. From this point of view, the authors introduced the dynamic clause compilation technique, and implemented it on CHI. As soon as a clause is added to Prolog's database, the clause is compiled into machine instructions. This technique greatly accelerates dynamic predicate execution. Application program analysis shows that dynamic clause compilation accelerates the application execution speed up to 5 times faster than conventional dynamic predicate implementation.<>
描述了实现Prolog动态谓词的动态子句编译技术。本文报道了该技术在顺序推理机CHI上执行的实际应用程序中的有效性。动态谓词在编写实用的Prolog应用程序中是必不可少的。根据作者的应用程序分析,许多应用程序在动态谓词执行上花费了总执行时间的一半以上。这意味着加速动态谓词对于提高Prolog应用程序性能至关重要。从这个角度出发,介绍了动态子句编译技术,并在CHI上实现了该技术。只要一个子句被添加到Prolog的数据库中,该子句就被编译成机器指令。这种技术大大加快了动态谓词的执行速度。应用程序分析表明,与传统的动态谓词实现相比,动态子句编译使应用程序的执行速度提高了5倍
{"title":"Implementation and evaluation of dynamic predicates on the sequential inference machine CHI","authors":"A. Atarashi, A. Konagaya, S. Habata, M. Yokota","doi":"10.1109/ICCL.1990.63779","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63779","url":null,"abstract":"The dynamic clause compilation technique which is used to implement Prolog's dynamic predicates is described. The effectiveness of the technique when applied to a practical application program executed on the sequential inference machine CHI is reported. Dynamic predicates are indispensable in writing practical Prolog application programs. According to the authors' application program analysis, many applications spend more than half of the total execution time in dynamic predicate execution. This means that speeding up dynamic predicates is essential for improving Prolog application performance. From this point of view, the authors introduced the dynamic clause compilation technique, and implemented it on CHI. As soon as a clause is added to Prolog's database, the clause is compiled into machine instructions. This technique greatly accelerates dynamic predicate execution. Application program analysis shows that dynamic clause compilation accelerates the application execution speed up to 5 times faster than conventional dynamic predicate implementation.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123926136","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}
引用次数: 0
Enhancing documents with embedded programs: how Ness extends insets in the Andrew ToolKit 用嵌入式程序增强文档:Ness如何在Andrew ToolKit中扩展insets
Pub Date : 1990-03-12 DOI: 10.1109/ICCL.1990.63757
W. J. Hansen
The problems of embedding programs in documents are sketched and the solutions adopted in the Ness component of the Andrew ToolKit are reviewed. A key question is the connection from user actions to program functions. Other questions include the appropriate level of programming language, its string-processing capabilities, and security.<>
概述了在文档中嵌入程序的问题,并对Andrew ToolKit的Ness组件中采用的解决方案进行了回顾。一个关键问题是从用户操作到程序功能的连接。其他问题包括适当级别的编程语言、它的字符串处理能力和安全性
{"title":"Enhancing documents with embedded programs: how Ness extends insets in the Andrew ToolKit","authors":"W. J. Hansen","doi":"10.1109/ICCL.1990.63757","DOIUrl":"https://doi.org/10.1109/ICCL.1990.63757","url":null,"abstract":"The problems of embedding programs in documents are sketched and the solutions adopted in the Ness component of the Andrew ToolKit are reviewed. A key question is the connection from user actions to program functions. Other questions include the appropriate level of programming language, its string-processing capabilities, and security.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"89 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114560752","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
期刊
Proceedings. 1990 International Conference on Computer Languages
全部 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