首页 > 最新文献

Computer Languages最新文献

英文 中文
Fail-safety techniques and their extensions to concurrent systems 故障安全技术及其对并发系统的扩展
Pub Date : 1996-12-01 DOI: 10.1016/S0096-0551(96)00014-8
Steven J. Drew

Fail-safety is a system attribute which ensures that a program either completes its execution satisfying its post-conditions in the normal manner or signals its failure to do so to its operating environment. Such an attribute is desirable of any system as it ensures the correctness of results which are produced. A very few modern sequential programming languages offer program fail-safety through the judicious use of a well designed exception handling mechanism. In this paper the exception handling techniques used in those sequential systems are developed to provide the guidelines for fail-safe concurrent system design.

故障安全是一种系统属性,它确保程序以正常的方式完成满足后置条件的执行,或者向其操作环境发出失败的信号。这样的属性是任何系统所需要的,因为它保证了所产生结果的正确性。很少有现代顺序编程语言通过明智地使用设计良好的异常处理机制来提供程序故障安全。本文发展了用于这些顺序系统的异常处理技术,为故障安全并发系统的设计提供指导。
{"title":"Fail-safety techniques and their extensions to concurrent systems","authors":"Steven J. Drew","doi":"10.1016/S0096-0551(96)00014-8","DOIUrl":"10.1016/S0096-0551(96)00014-8","url":null,"abstract":"<div><p>Fail-safety is a system attribute which ensures that a program either completes its execution satisfying its post-conditions in the normal manner or signals its failure to do so to its operating environment. Such an attribute is desirable of any system as it ensures the correctness of results which are produced. A very few modern sequential programming languages offer program fail-safety through the judicious use of a well designed exception handling mechanism. In this paper the exception handling techniques used in those sequential systems are developed to provide the guidelines for fail-safe concurrent system design.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 193-203"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00014-8","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79308941","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}
引用次数: 1
Inter-entry selection control mechanisms: Implementation and evaluation 内部选择控制机制:实施与评价
Pub Date : 1996-12-01 DOI: 10.1016/S0096-0551(97)00003-9
Carole M. McNamee, William A. Crow

Inter-process communication is achieved in many concurrent programming languages through message entries. Many of these languages contain inter-entry selection constructs allowing a process to selectively choose one of a group of message entries to service. Generally, this selection process is handled non-deterministically. To enable a degree of control over this selection, limited inter-entry selection control mechanisms are available in several of these languages. This paper reviews the need for more expressive inter-entry selection control mechanisms and details the design and implementation of two such control mechanisms—static and dynamic preferences. These implementations of static and dynamic preferences, SRps and SRpd respectively, are extensions of the SR concurrent programming language. In both implementations, the use of preferences is optional, and thus, the overhead associated with their use is incurred only when their use is necessary. Finally, this paper describes the performance of these implementations on several classical synchronization problems. For tests run in a shared memory environment the results show that there is substantial cost associated with the preference implementations. However, the results of the distributed environment tests illustrate that the incremental cost of adding preferences is small and often not discernable when the overhead costs associated with communications across a network are considered.

在许多并发编程语言中,进程间通信是通过消息条目实现的。这些语言中的许多都包含条目间选择构造,允许流程有选择地从一组消息条目中选择要服务的条目之一。一般来说,这个选择过程是不确定的。为了对这种选择进行一定程度的控制,这些语言中有几种提供了有限的入口间选择控制机制。本文回顾了对更具表现力的入口间选择控制机制的需求,并详细介绍了两种控制机制——静态偏好和动态偏好的设计和实现。这些静态和动态首选项的实现(分别是srp和SRpd)是SR并发编程语言的扩展。在这两种实现中,首选项的使用都是可选的,因此,与使用首选项相关的开销仅在必要时才会产生。最后,本文描述了这些实现在几个经典同步问题上的性能。对于在共享内存环境中运行的测试,结果表明与首选项实现相关的成本很大。然而,分布式环境测试的结果表明,添加首选项的增量成本很小,当考虑到与跨网络通信相关的开销成本时,通常无法察觉。
{"title":"Inter-entry selection control mechanisms: Implementation and evaluation","authors":"Carole M. McNamee,&nbsp;William A. Crow","doi":"10.1016/S0096-0551(97)00003-9","DOIUrl":"10.1016/S0096-0551(97)00003-9","url":null,"abstract":"<div><p>Inter-process communication is achieved in many concurrent programming languages through message entries. Many of these languages contain inter-entry selection constructs allowing a process to selectively choose one of a group of message entries to service. Generally, this selection process is handled non-deterministically. To enable a degree of control over this selection, limited inter-entry selection control mechanisms are available in several of these languages. This paper reviews the need for more expressive inter-entry selection control mechanisms and details the design and implementation of two such control mechanisms—static and dynamic preferences. These implementations of static and dynamic preferences, SRps and SRpd respectively, are extensions of the SR concurrent programming language. In both implementations, the use of preferences is optional, and thus, the overhead associated with their use is incurred only when their use is necessary. Finally, this paper describes the performance of these implementations on several classical synchronization problems. For tests run in a shared memory environment the results show that there is substantial cost associated with the preference implementations. However, the results of the distributed environment tests illustrate that the incremental cost of adding preferences is small and often not discernable when the overhead costs associated with communications across a network are considered.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 259-278"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00003-9","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78911446","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}
引用次数: 4
Building efficient incremental LL parsers by augmenting LL tables and threading parse trees 通过增加LL表和线程化解析树来构建高效的增量LL解析器
Pub Date : 1996-12-01 DOI: 10.1016/S0096-0551(96)00015-X
Warren X. Li

Incremental parsing is widely used in language-based editors and incremental compiling and interpreting environments. Re-parsing of modified input strings is the most frequently performed operation in these environments. Its efficiency can greatly affect the success of these environments. This paper describes the introduction of a threaded link in parse trees and an additional distance entry in LL parse tables to support minimal LL(1) re-parsing. These enhancements are then used to produce an efficient incremental LL parser.

增量解析广泛应用于基于语言的编辑器和增量编译和解释环境中。重新解析修改后的输入字符串是这些环境中最常执行的操作。它的效率可以极大地影响这些环境的成功。本文介绍了在解析树中引入一个线程链接和在LL解析表中引入一个额外的距离条目,以支持最小的LL(1)重新解析。然后使用这些增强功能生成高效的增量LL解析器。
{"title":"Building efficient incremental LL parsers by augmenting LL tables and threading parse trees","authors":"Warren X. Li","doi":"10.1016/S0096-0551(96)00015-X","DOIUrl":"10.1016/S0096-0551(96)00015-X","url":null,"abstract":"<div><p>Incremental parsing is widely used in language-based editors and incremental compiling and interpreting environments. Re-parsing of modified input strings is the most frequently performed operation in these environments. Its efficiency can greatly affect the success of these environments. This paper describes the introduction of a threaded link in parse trees and an additional <em>distance</em> entry in LL parse tables to support minimal LL(1) re-parsing. These enhancements are then used to produce an efficient incremental LL parser.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 225-235"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00015-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84055193","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}
引用次数: 3
Assembling a resolution multiprocessor from interface, programming and distributed processing components 用接口编程和分布式处理组件组装一个分辨率多处理器
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00013-6
Hamish Taylor

An effective resolution multiprocessor can be built from distributed processing, logic programming, and interface elements. Widely used, portable, components can be modularly composed into a portable parallel system that displays good resistance to premature obsolescence by software evolution. A virtual multiprocessor offering common message passing and configuration services integrates a distributed mesh of sequential resolution engines. Users configure and control the resolution engines and virtual multiprocessor through a GUI using an embedded command language to drive its facilities. Prolog programs either explicitly control parallel execution through message passing or would have to rely on program transformation techniques to extract parallelism implicitly.

一个有效的分辨率多处理器可以通过分布式处理、逻辑编程和接口元素来构建。广泛使用的、可移植的组件可以模块化地组成一个可移植的并行系统,该系统可以很好地抵抗软件进化导致的过早过时。提供公共消息传递和配置服务的虚拟多处理器集成了顺序解析引擎的分布式网格。用户使用嵌入式命令语言通过GUI配置和控制解析引擎和虚拟多处理器来驱动其功能。Prolog程序要么通过消息传递显式地控制并行执行,要么必须依赖程序转换技术来隐式地提取并行性。
{"title":"Assembling a resolution multiprocessor from interface, programming and distributed processing components","authors":"Hamish Taylor","doi":"10.1016/S0096-0551(96)00013-6","DOIUrl":"10.1016/S0096-0551(96)00013-6","url":null,"abstract":"<div><p>An effective resolution multiprocessor can be built from distributed processing, logic programming, and interface elements. Widely used, portable, components can be modularly composed into a portable parallel system that displays good resistance to premature obsolescence by software evolution. A virtual multiprocessor offering common message passing and configuration services integrates a distributed mesh of sequential resolution engines. Users configure and control the resolution engines and virtual multiprocessor through a GUI using an embedded command language to drive its facilities. Prolog programs either explicitly control parallel execution through message passing or would have to rely on program transformation techniques to extract parallelism implicitly.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 181-192"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00013-6","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81251585","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}
引用次数: 3
Towards resource handling in logic programming: The PPL framework and fits semantics 逻辑程序设计中的资源处理:PPL框架及其语义
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00007-0
Jean-Marie Jacquet , Luís Monteiro

The PPL framework is proposed as a simple extension to logic programming aiming at handling resources. It is argued that the separation between logical treatments and resource handling is desirable and, to that end, resources are proposed to be manipulated by means of pre- and post-conditions associated with usual Horn clauses. The expressiveness of the resulting framework is evidenced through the coding of several applications. Operational and declarative semantics are also presented as extensions of the classical ones accounting for the evaluation of pre- and post-conditions, in particular the non-monotonic behavior of the world of resources they induce in general.

PPL框架是针对资源处理的逻辑编程的一个简单扩展。有人认为,逻辑处理和资源处理之间的分离是可取的,为此,建议通过与通常的Horn子句相关的前置和后置条件来操纵资源。通过几个应用程序的编码证明了最终框架的表达性。操作语义和声明语义也作为经典语义的扩展,用于说明前置和后设条件的评估,特别是它们通常诱导的资源世界的非单调行为。
{"title":"Towards resource handling in logic programming: The PPL framework and fits semantics","authors":"Jean-Marie Jacquet ,&nbsp;Luís Monteiro","doi":"10.1016/S0096-0551(96)00007-0","DOIUrl":"10.1016/S0096-0551(96)00007-0","url":null,"abstract":"<div><p>The PPL framework is proposed as a simple extension to logic programming aiming at handling resources. It is argued that the separation between logical treatments and resource handling is desirable and, to that end, resources are proposed to be manipulated by means of pre- and post-conditions associated with usual Horn clauses. The expressiveness of the resulting framework is evidenced through the coding of several applications. Operational and declarative semantics are also presented as extensions of the classical ones accounting for the evaluation of pre- and post-conditions, in particular the non-monotonic behavior of the world of resources they induce in general.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 51-77"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00007-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74968612","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
Improving the efficiency of nondeterministic independent and-parallel systems 提高不确定性独立并行系统的效率
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00010-0
Enrico Pontelli , Gopal Gupta , Dongxing Tang , Manuel Carro , Manuel V. Hermenegildo

We present the design and implementation of the and-parallel component of ACE. ACE is a computational model for the full Prolog language that simultaneously exploits both or-parallelism and independent and-parallelism. A high-performance implementation of the ACE model has been realized and its performance reported in this paper. We discuss how some of the standard problems which appear when implementing and-parallel systems are solved in ACE. We then propose a number of optimizations aimed at reducing the overheads and the increased memory consumption which occur in such systems when using previously proposed solutions. Finally, we present results from an implementation of ACE which includes the optimizations proposed. The results show that ACE exploits and-parallelism with high efficiency and high speedups. Furthermore, they also show that the proposed optimizations, which are applicable to many other and-parallel systems, significantly decrease memory consumption and increase speedups and absolute performance both in forward execution and during backtracking.

本文介绍了ACE并行组件的设计与实现。ACE是一个完整Prolog语言的计算模型,它同时利用或并行性和独立并行性。本文实现了ACE模型的高性能实现,并对其性能进行了报告。我们讨论了如何在ACE中解决实现和并行系统时出现的一些标准问题。然后,我们提出了一些优化,旨在减少开销和增加的内存消耗,当使用先前提出的解决方案时,这些系统会出现这种情况。最后,我们介绍了ACE的实现结果,其中包括所提出的优化。结果表明,ACE利用并行性,具有较高的效率和速度。此外,他们还表明,所提出的优化(适用于许多其他并行系统)在向前执行和回溯期间显著降低了内存消耗,提高了速度和绝对性能。
{"title":"Improving the efficiency of nondeterministic independent and-parallel systems","authors":"Enrico Pontelli ,&nbsp;Gopal Gupta ,&nbsp;Dongxing Tang ,&nbsp;Manuel Carro ,&nbsp;Manuel V. Hermenegildo","doi":"10.1016/S0096-0551(96)00010-0","DOIUrl":"10.1016/S0096-0551(96)00010-0","url":null,"abstract":"<div><p>We present the design and implementation of the and-parallel component of ACE. ACE is a computational model for the full Prolog language that simultaneously exploits both <em>or-parallelism</em> and <em>independent and-parallelism</em>. A high-performance implementation of the ACE model has been realized and its performance reported in this paper. We discuss how some of the standard problems which appear when implementing and-parallel systems are solved in ACE. We then propose a number of optimizations aimed at reducing the overheads and the increased memory consumption which occur in such systems when using previously proposed solutions. Finally, we present results from an implementation of ACE which includes the optimizations proposed. The results show that ACE exploits and-parallelism with high efficiency and high speedups. Furthermore, they also show that the proposed optimizations, which are applicable to many other and-parallel systems, significantly decrease memory consumption and increase speedups and absolute performance both in forward execution and during backtracking.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 115-142"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00010-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73875885","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
A proposal to merge Multiple Tuple Spaces, Object Orientation, and Logic Programming 合并多个元组空间、面向对象和逻辑编程的建议
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00008-2
Vincenzo Ambriola, Giovanni A. Cignoni, Laura Semini

We define a new language that naturally satisfies the requirements of concurrency support, modularity, and declarativity. Although some classes of existing languages already cover a subset of these requirements, there is no example of a programming language entirely fulfilling them. We propose to merge three programming paradigms, Multiple Tuple Spaces, Object Orientation, and Logic Programming, as a solution to our requirement list. Each paradigm is well characterized and satisfies one of the given requirements. Moreover, we claim that the merging will reveal new directions in the inception and development of future programming languages.

我们定义了一种自然地满足并发支持、模块化和声明性需求的新语言。尽管现有语言的某些类已经涵盖了这些需求的一部分,但还没有一种编程语言完全满足这些需求的例子。我们建议合并三种编程范例,多元组空间,面向对象和逻辑编程,作为我们需求列表的解决方案。每个范例都有很好的特征,并满足给定的需求之一。此外,我们声称合并将揭示未来编程语言的开始和发展的新方向。
{"title":"A proposal to merge Multiple Tuple Spaces, Object Orientation, and Logic Programming","authors":"Vincenzo Ambriola,&nbsp;Giovanni A. Cignoni,&nbsp;Laura Semini","doi":"10.1016/S0096-0551(96)00008-2","DOIUrl":"10.1016/S0096-0551(96)00008-2","url":null,"abstract":"<div><p>We define a new language that naturally satisfies the requirements of concurrency support, modularity, and declarativity. Although some classes of existing languages already cover a subset of these requirements, there is no example of a programming language entirely fulfilling them. We propose to merge three programming paradigms, Multiple Tuple Spaces, Object Orientation, and Logic Programming, as a solution to our requirement list. Each paradigm is well characterized and satisfies one of the given requirements. Moreover, we claim that the merging will reveal new directions in the inception and development of future programming languages.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 79-93"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00008-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82748743","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}
引用次数: 11
Rule-based coordination of logic programs 基于规则的逻辑程序协调
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00009-4
Paolo Ciancarini, Mauro Gaspari

Shared Prolog (SP) is a parallel symbolic language in which coordination issues are clearly separated from computation issues. SP combines concurrency and communication based on a shared dataspace coordination model with sequential symbolic computation based on logic programming. We demonstrate how a rule-based coordination language can be used for expressing a number of different parallel computing schemata, reusing and reorganizing existing sequential programs.

共享Prolog (SP)是一种并行的符号语言,其中协调问题与计算问题明显分离。SP将基于共享数据空间协调模型的并发性和通信与基于逻辑编程的顺序符号计算相结合。我们演示了如何使用基于规则的协调语言来表达许多不同的并行计算模式,重用和重组现有的顺序程序。
{"title":"Rule-based coordination of logic programs","authors":"Paolo Ciancarini,&nbsp;Mauro Gaspari","doi":"10.1016/S0096-0551(96)00009-4","DOIUrl":"10.1016/S0096-0551(96)00009-4","url":null,"abstract":"<div><p>Shared Prolog (SP) is a parallel symbolic language in which coordination issues are clearly separated from computation issues. SP combines concurrency and communication based on a shared dataspace coordination model with sequential symbolic computation based on logic programming. We demonstrate how a rule-based coordination language can be used for expressing a number of different parallel computing schemata, reusing and reorganizing existing sequential programs.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 95-113"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00009-4","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89359500","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
Design and implementation of 812: A declarative data-parallel language 8_½的设计与实现:一种声明式数据并行语言
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00012-4
Olivier Michel

In this article we advocate a declarative approach to data-parallelism to provide both parallelism expressiveness and efficient execution of data intensive applications. 812, an experimental language combining features of collection and stream oriented languages in a declarative framework, is presented. A new structure, the web, allows the programmer to write programmes as mathematical expressions and to implicitly express data and control parallelism. The first part of this paper proposes a classification of the various expressions of parallelism in programming languages. We show that hybrid execution models combining both data and control parallelism are possible and necessary to get an effective speedup. We sketch the advantage of the declarative style with respect to parallelism expression (application side) and exploitation (compiler side). In the second part we describe the 812 language and the concepts of collection, stream and web. A web is a multi-dimensional object that represents the successive values of a structured set of variables. Some 812 programmes are given to show the relevance of the web data structure for simulation applications (a resolution of O.D.P.E. and a simulation in artificial life). Examples of 812 programmes, involving the dynamic creation and destruction of webs, are also given. Such programmes are necessary for simulations of growing systems. In the third part, the implementation of a compiler restricted to the static part of the language is described. We focus on the process of web equations compilation towards a virtual SIMD machine. We also present the clock calculus, the scheduling inference and the distribution of the computations among the processing elements of a parallel computer.

在本文中,我们提倡一种数据并行性的声明性方法,以提供并行性表达性和数据密集型应用程序的高效执行。812是一种实验性语言,在声明式框架中结合了面向集合和面向流的语言的特点。一种新的结构,网络,允许程序员将程序写成数学表达式,并隐式地表达数据和控制并行性。本文的第一部分对程序设计语言中并行性的各种表达进行了分类。我们证明了混合执行模型结合数据和控制并行是可能的和必要的,以获得有效的加速。我们概述了声明式风格在并行性表达(应用程序端)和利用(编译器端)方面的优势。第二部分介绍了812语言以及集合、流和web的概念。web是一个多维对象,它表示一组结构化变量的连续值。给出了大约812个程序来显示网络数据结构与模拟应用(O.D.P.E.的分辨率和人工生命中的模拟)的相关性。文中还列举了812个涉及动态创建和破坏网络的项目。这样的程序对于模拟生长系统是必要的。在第三部分中,描述了一个仅限于该语言静态部分的编译器的实现。重点介绍了面向虚拟SIMD机的web方程编译过程。给出了并行计算机的时钟演算、调度推理和计算量在各处理单元之间的分配。
{"title":"Design and implementation of 812: A declarative data-parallel language","authors":"Olivier Michel","doi":"10.1016/S0096-0551(96)00012-4","DOIUrl":"10.1016/S0096-0551(96)00012-4","url":null,"abstract":"<div><p>In this article we advocate a declarative approach to data-parallelism to provide both parallelism expressiveness and efficient execution of data intensive applications. 8<sub><span><math><mtext>1</mtext><mtext>2</mtext></math></span></sub>, an experimental language combining features of collection and stream oriented languages in a declarative framework, is presented. A new structure, the web, allows the programmer to write programmes as mathematical expressions and to implicitly express data and control parallelism. The first part of this paper proposes a classification of the various expressions of parallelism in programming languages. We show that hybrid execution models combining both data and control parallelism are possible and necessary to get an effective speedup. We sketch the advantage of the declarative style with respect to parallelism expression (application side) and exploitation (compiler side). In the second part we describe the 8<sub><span><math><mtext>1</mtext><mtext>2</mtext></math></span></sub> language and the concepts of collection, stream and web. A web is a multi-dimensional object that represents the successive values of a structured set of variables. Some 8<sub><span><math><mtext>1</mtext><mtext>2</mtext></math></span></sub> programmes are given to show the relevance of the web data structure for simulation applications (a resolution of O.D.P.E. and a simulation in artificial life). Examples of 8<sub><span><math><mtext>1</mtext><mtext>2</mtext></math></span></sub> programmes, involving the dynamic creation and destruction of webs, are also given. Such programmes are necessary for simulations of growing systems. In the third part, the implementation of a compiler restricted to the static part of the language is described. We focus on the process of web equations compilation towards a virtual SIMD machine. We also present the clock calculus, the scheduling inference and the distribution of the computations among the processing elements of a parallel computer.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 165-179"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00012-4","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73280511","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}
引用次数: 2
Relating data-parallelism and (and-) parallelism in logic programs 逻辑程序中数据并行性和(及)并行性的关系
Pub Date : 1996-07-01 DOI: 10.1016/S0096-0551(96)00011-2
Manuel V. Hermenegildo, Manuel Carro

Much work has been done in the areas of and-parallelism and data-parallelism in Logic Programs. Such work has proceeded to a certain extent in an independent fashion. Both types of parallelism offer advantages and disadvantages. Traditional (and-) parallel models offer generality, being able to exploit parallelism in a large class of programs (including that exploited by data-parallelism techniques). Data-parallelism techniques on the other hand offer increased performance for a restricted class of programs. The thesis of this paper is that these two forms of parallelism are not fundamentally different and that relating them opens the possibility of obtaining the advantages of both within the same system. Some relevant issues are discussed and solutions proposed. The discussion is illustrated through visualizations of actual parallel executions implementing the ideas proposed.

在逻辑程序中的并行性和数据并行性方面已经做了很多工作。这种工作在一定程度上是独立进行的。两种类型的并行都有各自的优点和缺点。传统的(和)并行模型提供了通用性,能够利用大量程序中的并行性(包括数据并行技术所利用的并行性)。另一方面,数据并行技术为一类受限制的程序提供了更高的性能。本文的论点是,这两种形式的并行并没有根本的不同,将它们联系起来,就有可能在同一系统中获得两者的优势。讨论了相关问题并提出了解决方案。讨论通过实际并行执行的可视化来说明所提出的思想。
{"title":"Relating data-parallelism and (and-) parallelism in logic programs","authors":"Manuel V. Hermenegildo,&nbsp;Manuel Carro","doi":"10.1016/S0096-0551(96)00011-2","DOIUrl":"10.1016/S0096-0551(96)00011-2","url":null,"abstract":"<div><p>Much work has been done in the areas of and-parallelism and data-parallelism in Logic Programs. Such work has proceeded to a certain extent in an independent fashion. Both types of parallelism offer advantages and disadvantages. Traditional (and-) parallel models offer generality, being able to exploit parallelism in a large class of programs (including that exploited by data-parallelism techniques). Data-parallelism techniques on the other hand offer increased performance for a restricted class of programs. The thesis of this paper is that these two forms of parallelism are not fundamentally different and that relating them opens the possibility of obtaining the advantages of both within the same system. Some relevant issues are discussed and solutions proposed. The discussion is illustrated through visualizations of actual parallel executions implementing the ideas proposed.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 2","pages":"Pages 143-163"},"PeriodicalIF":0.0,"publicationDate":"1996-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(96)00011-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84487158","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}
引用次数: 24
期刊
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