首页 > 最新文献

Computer Languages最新文献

英文 中文
Towards the uniform implementation of declarative languages 迈向声明式语言的统一实现
Pub Date : 1997-07-01 DOI: 10.1016/S0096-0551(97)00012-X
Manuel M.T. Chakravarty, Hendrik C.R. Lock

Current implementation techniques for functional languages differ considerably from those for logic languages. This complicates the development of flexible and efficient abstract machines that can be used for the compilation of declarative languages combining concepts of functional and logic programming. We propose an abstract machine, called the JUMP-machine, which systematically integrates the operational concepts needed to implement the functional and logic programming paradigm. The use of a tagless representation for heap objects, which originates from the Spineless Tagless G-machine, supports the integration of different concepts. In this paper, we provide a functional logic kernel language and show how to translate it into the abstract machine language of the JUMP-machine. Furthermore, we define the operational semantics of the machine language formally and discuss the mapping of the abstract machine to concrete machine architectures. We tested the approach by writing a compiler for the functional logic language GTML. The obtained performance results indicate that the proposed method allows to implement functional logic languages efficiently.

当前函数式语言的实现技术与逻辑语言的实现技术有很大的不同。这使得开发灵活高效的抽象机器变得复杂,这些抽象机器可用于编译结合函数式和逻辑编程概念的声明性语言。我们提出了一种抽象机器,称为JUMP-machine,它系统地集成了实现功能和逻辑编程范式所需的操作概念。对堆对象使用无标签表示(起源于Spineless tagless G-machine)支持不同概念的集成。本文提供了一种功能逻辑内核语言,并给出了如何将其转换为JUMP-machine的抽象机器语言。此外,我们正式定义了机器语言的操作语义,并讨论了抽象机器到具体机器体系结构的映射。我们通过为函数式逻辑语言GTML编写编译器来测试这种方法。实验结果表明,该方法能够有效地实现函数式逻辑语言。
{"title":"Towards the uniform implementation of declarative languages","authors":"Manuel M.T. Chakravarty,&nbsp;Hendrik C.R. Lock","doi":"10.1016/S0096-0551(97)00012-X","DOIUrl":"10.1016/S0096-0551(97)00012-X","url":null,"abstract":"<div><p>Current implementation techniques for functional languages differ considerably from those for logic languages. This complicates the development of flexible and efficient abstract machines that can be used for the compilation of declarative languages combining concepts of functional and logic programming. We propose an abstract machine, called the JUMP-machine, which systematically integrates the operational concepts needed to implement the functional and logic programming paradigm. The use of a tagless representation for heap objects, which originates from the Spineless Tagless G-machine, supports the integration of different concepts. In this paper, we provide a functional logic kernel language and show how to translate it into the abstract machine language of the JUMP-machine. Furthermore, we define the operational semantics of the machine language formally and discuss the mapping of the abstract machine to concrete machine architectures. We tested the approach by writing a compiler for the functional logic language GTML. The obtained performance results indicate that the proposed method allows to implement functional logic languages efficiently.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 2","pages":"Pages 121-160"},"PeriodicalIF":0.0,"publicationDate":"1997-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00012-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83212481","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}
引用次数: 9
Lazy narrowing with simplification 使用简化的惰性窄化
Pub Date : 1997-07-01 DOI: 10.1016/S0096-0551(97)00010-6
Michael Hanus

Languages that integrate functional and logic programming styles with a complete operational semantics are based on narrowing. In order to avoid useless computations, lazy narrowing strategies have been proposed in the past. This paper presents an improvement of lazy narrowing by incorporating deterministic simplification steps into lazy narrowing derivations. These simplification steps reduce the search space so that in some cases infinite search spaces are reduced to finite ones. We consider two classes of programs where this strategy can be applied. Firstly, we show soundness and completeness of our strategy for functional logic programs based on ground confluent and terminating rewrite systems. Then, we show similar results for constructor-based weakly orthogonal (not necessarily terminating) rewrite systems. Finally, we demonstrate the improved operational behavior by means of several examples. Since most functional logic languages are based on programs belonging to one of these classes, our result is a significant step to improve the operational semantics of existing functional logic languages.

将函数式和逻辑编程风格与完整的操作语义集成在一起的语言是基于窄化的。为了避免无用的计算,过去提出了惰性缩小策略。本文提出了一种将确定性简化步骤纳入惰性狭窄推导的改进方法。这些简化步骤减少了搜索空间,因此在某些情况下,无限搜索空间被简化为有限搜索空间。我们考虑两类可以应用此策略的程序。首先,我们展示了基于地面融合和终止重写系统的功能逻辑程序策略的合理性和完整性。然后,我们展示了基于构造函数的弱正交(不一定终止)重写系统的类似结果。最后,通过几个实例说明了改进后的操作行为。由于大多数函数式逻辑语言都是基于属于这些类之一的程序,因此我们的结果是改进现有函数式逻辑语言的操作语义的重要一步。
{"title":"Lazy narrowing with simplification","authors":"Michael Hanus","doi":"10.1016/S0096-0551(97)00010-6","DOIUrl":"10.1016/S0096-0551(97)00010-6","url":null,"abstract":"<div><p>Languages that integrate functional and logic programming styles with a complete operational semantics are based on narrowing. In order to avoid useless computations, lazy narrowing strategies have been proposed in the past. This paper presents an improvement of lazy narrowing by incorporating deterministic simplification steps into lazy narrowing derivations. These simplification steps reduce the search space so that in some cases infinite search spaces are reduced to finite ones. We consider two classes of programs where this strategy can be applied. Firstly, we show soundness and completeness of our strategy for functional logic programs based on ground confluent and terminating rewrite systems. Then, we show similar results for constructor-based weakly orthogonal (not necessarily terminating) rewrite systems. Finally, we demonstrate the improved operational behavior by means of several examples. Since most functional logic languages are based on programs belonging to one of these classes, our result is a significant step to improve the operational semantics of existing functional logic languages.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 2","pages":"Pages 61-85"},"PeriodicalIF":0.0,"publicationDate":"1997-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00010-6","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85625464","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
DRL: A distributed real-time logic language 分布式实时逻辑语言
Pub Date : 1997-07-01 DOI: 10.1016/S0096-0551(97)00011-8
M. Díaz, B. Rubio, J.M. Troya

This paper presents a new language that integrates the real-time and distributed paradigms within the framework of a concurrent logic language. Concurrent logic languages (CLLs) are capable of expressing concurrence, communication and nondeterminism in a natural way. That is, the intrinsic parallel semantics of the concurrent logic languages makes them well-suited for distributed programming. The proposed language is particularly suitable for loosely coupled systems and it contains mechanisms for distributed and real-time process control. A new execution model for concurrent logic languages is presented, which enables efficient distributed execution and real-time control. The model is introduced by giving an operational semantics for the language and the new model's implementation is discussed, including the definition of a new abstract machine and its implementation on a network of Unix workstations. Although the sequential core is not optimized, some previous results are discussed, showing the feasibility of the language's execution model for distributed real-time systems. The language is currently being used as the kernel language for a distributed simulation and validation tool for communication protocols.

本文提出了一种在并发逻辑语言框架内集成实时和分布式范式的新语言。并发逻辑语言(cll)能够以自然的方式表达并发性、通信性和不确定性。也就是说,并发逻辑语言固有的并行语义使它们非常适合分布式编程。所提出的语言特别适合于松耦合系统,它包含分布式和实时过程控制的机制。提出了一种新的并行逻辑语言执行模型,实现了高效的分布式执行和实时控制。通过给出该语言的操作语义来介绍该模型,并讨论了新模型的实现,包括新抽象机的定义及其在Unix工作站网络上的实现。虽然没有对顺序核进行优化,但讨论了一些先前的结果,显示了该语言的执行模型在分布式实时系统中的可行性。该语言目前被用作通信协议的分布式仿真和验证工具的核心语言。
{"title":"DRL: A distributed real-time logic language","authors":"M. Díaz,&nbsp;B. Rubio,&nbsp;J.M. Troya","doi":"10.1016/S0096-0551(97)00011-8","DOIUrl":"10.1016/S0096-0551(97)00011-8","url":null,"abstract":"<div><p>This paper presents a new language that integrates the real-time and distributed paradigms within the framework of a concurrent logic language. Concurrent logic languages (CLLs) are capable of expressing concurrence, communication and nondeterminism in a natural way. That is, the intrinsic parallel semantics of the concurrent logic languages makes them well-suited for distributed programming. The proposed language is particularly suitable for loosely coupled systems and it contains mechanisms for distributed and real-time process control. A new execution model for concurrent logic languages is presented, which enables efficient distributed execution and real-time control. The model is introduced by giving an operational semantics for the language and the new model's implementation is discussed, including the definition of a new abstract machine and its implementation on a network of Unix workstations. Although the sequential core is not optimized, some previous results are discussed, showing the feasibility of the language's execution model for distributed real-time systems. The language is currently being used as the kernel language for a distributed simulation and validation tool for communication protocols.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 2","pages":"Pages 87-120"},"PeriodicalIF":0.0,"publicationDate":"1997-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00011-8","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75921267","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
On goal-directed provability in classical logic 经典逻辑中的目标可证明性
Pub Date : 1997-07-01 DOI: 10.1016/S0096-0551(97)00013-1
James Harland

One of the key features of logic programming is the notion of goal-directed provability. In intuitionistic logic, the notion of uniform proof has been used as a proof-theoretic characterization of this property. Whilst the connections between intuitionistic logic and computation are well known, there is no reason per se why a similar notion cannot be given in classical logic. In this paper we show that there are two notions of goal-directed proof in classical logic, both of which are suitably weaker than that for intuitionistic logic. We show the completeness of this class of proofs for certain fragments, which thus form logic programming languages. As there are more possible variations on the notion of goal-directed provability in classical logic, there is a greater diversity of classical logic programming languages than intuitionistic ones. In particular, we show how logic programs may contain disjunctions in this setting. This provides a proof-theoretic basis for disjunctive logic programs, as well as characterising the “disjunctive” nature of answer substitutions for such programs in terms of the provability properties of the classical connectives Λ and Λ.

逻辑编程的关键特征之一是目标导向可证明性的概念。在直觉逻辑中,一致证明的概念被用来作为这一性质的证明论表征。虽然直觉逻辑和计算之间的联系是众所周知的,但没有理由不能在经典逻辑中给出类似的概念。本文证明了经典逻辑中有两个目标指向证明的概念,它们都比直觉逻辑中的目标指向证明的概念弱得多。我们展示了这类证明对于某些片段的完备性,从而形成逻辑程序设计语言。由于经典逻辑中目标可证明性的概念有更多可能的变化,因此经典逻辑编程语言比直觉编程语言的多样性更大。特别地,我们展示了逻辑程序如何在这种情况下包含析取。这为析取逻辑程序提供了一个证明理论基础,并根据经典连接词Λ和Λ的可证明性特性描述了这类程序的答案替换的“析取”性质。
{"title":"On goal-directed provability in classical logic","authors":"James Harland","doi":"10.1016/S0096-0551(97)00013-1","DOIUrl":"10.1016/S0096-0551(97)00013-1","url":null,"abstract":"<div><p>One of the key features of logic programming is the notion of <em>goal-directed</em> provability. In intuitionistic logic, the notion of <em>uniform proof</em> has been used as a proof-theoretic characterization of this property. Whilst the connections between intuitionistic logic and computation are well known, there is no reason per se why a similar notion cannot be given in classical logic. In this paper we show that there are two notions of goal-directed proof in classical logic, both of which are suitably weaker than that for intuitionistic logic. We show the completeness of this class of proofs for certain fragments, which thus form logic programming languages. As there are more possible variations on the notion of goal-directed provability in classical logic, there is a greater diversity of classical logic programming languages than intuitionistic ones. In particular, we show how logic programs may contain disjunctions in this setting. This provides a proof-theoretic basis for disjunctive logic programs, as well as characterising the “disjunctive” nature of answer substitutions for such programs in terms of the provability properties of the classical connectives Λ and Λ.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 2","pages":"Pages 161-178"},"PeriodicalIF":0.0,"publicationDate":"1997-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00013-1","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72676512","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Visual Occam: Syntax and semantics 可视化Occam:语法和语义
Pub Date : 1997-04-01 DOI: 10.1016/S0096-0551(97)00005-2
Muhammed Al-Mulhem, Shahid Ali

Visual Occam (VISO) is a visual programming language for concurrent programming. It uses message passing for interprocess communication and processes are disjoint. The VISO language uses a modular approach to visual programming which simplifies the specification of programs. It has a graphical syntax based on the language Occam. The petri net formalism is used to represent the semantics of the VISO language. This paper describes the design and implementation of the VISO language. It presents syntax, semantics, and a number of concurrent programs specified in the VISO language. Also, it discusses how synchronous communication can be expressed in petri nets.

Visual Occam (VISO)是一种用于并发编程的可视化编程语言。它使用消息传递进行进程间通信,并且进程是不相交的。VISO语言使用模块化方法进行可视化编程,简化了程序规范。它具有基于Occam语言的图形语法。petri网形式化用于表示VISO语言的语义。本文介绍了VISO语言的设计与实现。它提供了用VISO语言指定的语法、语义和许多并发程序。同时,讨论了同步通信如何在petri网中表达。
{"title":"Visual Occam: Syntax and semantics","authors":"Muhammed Al-Mulhem,&nbsp;Shahid Ali","doi":"10.1016/S0096-0551(97)00005-2","DOIUrl":"https://doi.org/10.1016/S0096-0551(97)00005-2","url":null,"abstract":"<div><p>Visual Occam (VISO) is a visual programming language for concurrent programming. It uses message passing for interprocess communication and processes are disjoint. The VISO language uses a modular approach to visual programming which simplifies the specification of programs. It has a graphical syntax based on the language Occam. The petri net formalism is used to represent the semantics of the VISO language. This paper describes the design and implementation of the VISO language. It presents syntax, semantics, and a number of concurrent programs specified in the VISO language. Also, it discusses how synchronous communication can be expressed in petri nets.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 1","pages":"Pages 1-24"},"PeriodicalIF":0.0,"publicationDate":"1997-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00005-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91735538","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
Object logic integration: A multiparadigm design methodology and a programming language 对象逻辑集成:一种多范式设计方法和一种编程语言
Pub Date : 1997-04-01 DOI: 10.1016/S0096-0551(97)00004-0
J.H.M. Lee, P.K.C. Pun

In the past decade, there has been much research effort dedicated to combine the object-oriented programming paradigm and the logic programming paradigm. Most of this effort sheds light upon the philosophy of multiparadigm programming as a near ideal mental model for a wide class of problem domains. In this paper we propose a scheme for object and logic integration—the OLI scheme. This scheme contributes to the multiparadigm programming philosophy by putting forward a multiparadigm design methodology and describing a multiparadigm programming language. Above all, the OLI scheme integrates the object-oriented and the logic programming paradigms at the design and language levels with a precise and well-balanced interface so that each paradigm shares an equal and cooperating partnership in problem analysis and problem solving. An important property of the OLI language is that programmers can program either in one of the paradigms alone or in a mixed paradigm without sacrificing expressiveness and efficiency. We give a formal definition of the OLI language and study its semantics both from the logical perspective and the object-oriented perspective. By viewing objects as an enrichment of the Herbrand universe, we define the declarative and operational semantics of OLI. We show that OLI's operational semantics, a generalized form of SLD-resolution, is sound and complete. From the object-oriented point of view, the logic part of OLI is simply an object with logic programs as states and methods for performing logical deduction.

在过去的十年中,有很多研究致力于将面向对象编程范式和逻辑编程范式结合起来。这些努力的大部分都阐明了多范式编程的哲学,多范式编程是一种近乎理想的心理模型,适用于广泛的问题领域。本文提出了一种对象与逻辑集成的方案——OLI方案。该方案通过提出一种多范式设计方法和描述一种多范式编程语言,为多范式编程哲学做出了贡献。最重要的是,OLI方案将面向对象和逻辑编程范式在设计和语言层面上集成为一个精确和平衡良好的接口,以便每个范式在问题分析和问题解决方面享有平等和合作的伙伴关系。OLI语言的一个重要特性是,程序员既可以单独使用其中一种范式,也可以使用混合范式进行编程,而不会牺牲表达性和效率。本文给出了OLI语言的形式化定义,并从逻辑角度和面向对象的角度研究了其语义。通过将对象视为Herbrand宇宙的丰富,我们定义了OLI的声明性和操作性语义。我们证明了OLI的操作语义(一种广义形式的SLD-resolution)是健全和完整的。从面向对象的角度来看,OLI的逻辑部分只是一个对象,其逻辑程序作为执行逻辑演绎的状态和方法。
{"title":"Object logic integration: A multiparadigm design methodology and a programming language","authors":"J.H.M. Lee,&nbsp;P.K.C. Pun","doi":"10.1016/S0096-0551(97)00004-0","DOIUrl":"https://doi.org/10.1016/S0096-0551(97)00004-0","url":null,"abstract":"<div><p>In the past decade, there has been much research effort dedicated to combine the object-oriented programming paradigm and the logic programming paradigm. Most of this effort sheds light upon the philosophy of multiparadigm programming as a near ideal mental model for a wide class of problem domains. In this paper we propose a scheme for object and logic integration—the OLI scheme. This scheme contributes to the multiparadigm programming philosophy by putting forward a multiparadigm design methodology and describing a multiparadigm programming language. Above all, the OLI scheme integrates the object-oriented and the logic programming paradigms at the design and language levels with a precise and well-balanced interface so that each paradigm shares an equal and cooperating partnership in problem analysis and problem solving. An important property of the OLI language is that programmers can program either in one of the paradigms alone or in a mixed paradigm without sacrificing expressiveness and efficiency. We give a formal definition of the OLI language and study its semantics both from the logical perspective and the object-oriented perspective. By viewing objects as an enrichment of the Herbrand universe, we define the declarative and operational semantics of OLI. We show that OLI's operational semantics, a generalized form of SLD-resolution, is sound and complete. From the object-oriented point of view, the logic part of OLI is simply an object with logic programs as states and methods for performing logical deduction.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 1","pages":"Pages 25-42"},"PeriodicalIF":0.0,"publicationDate":"1997-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00004-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91735537","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
Practical exception handling and resolution in concurrent programs 并发程序中的实际异常处理和解决
Pub Date : 1997-04-01 DOI: 10.1016/S0096-0551(97)00006-4
Alexander Romanovsky

The paper discusses how atomic actions based on forward error recovery in the form of concurrent exception handling and resolution can be programmed within standard conventional languages (Ada and Ada 95). We express the main characteristics of the general atomic action scheme in terms of these languages and discuss a set of templates and programmers' conventions which would allow the programming of atomic actions within Ada and Ada 95. We offer an approach to implementing a resolution procedure (function) and outline other approaches. The scheme is very flexible in that it gives an opportunity for programmers to use any sort of the resolution procedure. We introduce a general concept of self-checking programming, which allows the kind of failure assumption necessary for simplifying the atomic action support, and discuss how it can be applied (to Ada, in particular). It is shown how this approach helps to solve the deserter process problem. We outline the main improvements which can be made in the scheme when Ada 95 is used. We believe that this paper discusses important practical questions because it seems unlikely that an existing practical language will have concurrent exception handling of the level sufficient for supporting atomic actions based on forward error recovery.

本文讨论了如何用标准的常规语言(Ada和Ada 95)编写基于并发异常处理和解析形式的前向错误恢复的原子动作。我们用这些语言表达了通用原子操作方案的主要特征,并讨论了一组模板和程序员的约定,这些模板和约定允许在Ada和Ada 95中对原子操作进行编程。我们提供了一种实现决议程序(函数)的方法,并概述了其他方法。该方案非常灵活,因为它为程序员提供了使用任何类型的解析过程的机会。我们介绍了自检编程的一般概念,它允许简化原子操作支持所必需的那种故障假设,并讨论了如何应用它(特别是对Ada)。说明了这种方法如何有助于解决逃兵过程问题。我们概述了该方案在使用Ada 95时可以做出的主要改进。我们认为本文讨论了重要的实际问题,因为现有的实用语言似乎不太可能具有并发异常处理的级别,足以支持基于前向错误恢复的原子操作。
{"title":"Practical exception handling and resolution in concurrent programs","authors":"Alexander Romanovsky","doi":"10.1016/S0096-0551(97)00006-4","DOIUrl":"10.1016/S0096-0551(97)00006-4","url":null,"abstract":"<div><p>The paper discusses how atomic actions based on forward error recovery in the form of concurrent exception handling and resolution can be programmed within standard conventional languages (Ada and Ada 95). We express the main characteristics of the general atomic action scheme in terms of these languages and discuss a set of templates and programmers' conventions which would allow the programming of atomic actions within Ada and Ada 95. We offer an approach to implementing a resolution procedure (function) and outline other approaches. The scheme is very flexible in that it gives an opportunity for programmers to use any sort of the resolution procedure. We introduce a general concept of self-checking programming, which allows the kind of failure assumption necessary for simplifying the atomic action support, and discuss how it can be applied (to Ada, in particular). It is shown how this approach helps to solve the deserter process problem. We outline the main improvements which can be made in the scheme when Ada 95 is used. We believe that this paper discusses important practical questions because it seems unlikely that an existing practical language will have concurrent exception handling of the level sufficient for supporting atomic actions based on forward error recovery.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"23 1","pages":"Pages 43-58"},"PeriodicalIF":0.0,"publicationDate":"1997-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00006-4","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72577916","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
Distributed logic objects 分布式逻辑对象
Pub Date : 1996-12-01 DOI: 10.1016/S0096-0551(97)00001-5
A. Ciampolini , E. Lamma , C. Stefanelli , P. Mello

This paper presents a language based on the logic programming paradigm that supports objects, messages and inheritance. The object-oriented extension is fairly simple: objects are clusters of processes, objects' state is represented by logical variables, message-passing communication between objects is performed via multi-head clauses, and inheritance is mapped into clause union. The language implementation is obtained by translating logic objects into a concurrent logic language based on multi-head clauses, taking advantage of its distributed implementation on a massively parallel architecture. The runtime support realizes some interesting features such as intensional messages and the transparency of object allocation, object migration and parallelism.

本文提出了一种基于逻辑编程范式的语言,支持对象、消息和继承。面向对象的扩展相当简单:对象是进程的集群,对象的状态由逻辑变量表示,对象之间的消息传递通信通过多头子句执行,继承映射到子句联合。该语言实现是通过将逻辑对象转换成基于多头子句的并发逻辑语言来实现的,利用了其在大规模并行架构上的分布式实现。运行时支持实现了一些有趣的特性,如内部消息和对象分配的透明性、对象迁移和并行性。
{"title":"Distributed logic objects","authors":"A. Ciampolini ,&nbsp;E. Lamma ,&nbsp;C. Stefanelli ,&nbsp;P. Mello","doi":"10.1016/S0096-0551(97)00001-5","DOIUrl":"10.1016/S0096-0551(97)00001-5","url":null,"abstract":"<div><p>This paper presents a language based on the logic programming paradigm that supports objects, messages and inheritance. The object-oriented extension is fairly simple: objects are clusters of processes, objects' state is represented by logical variables, message-passing communication between objects is performed via multi-head clauses, and inheritance is mapped into clause union. The language implementation is obtained by translating logic objects into a concurrent logic language based on multi-head clauses, taking advantage of its distributed implementation on a massively parallel architecture. The runtime support realizes some interesting features such as intensional messages and the transparency of object allocation, object migration and parallelism.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 237-258"},"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)00001-5","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75354235","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Polymorphic type-checking in scheme 多态类型检查方案
Pub Date : 1996-12-01 DOI: 10.1016/S0096-0551(97)00002-7
Steven L. Jenkins, Gary T. Leavens

This paper presents a type-inference system for Scheme that is designed to be used by students in an introductory programming course. The major goal of the work is to present a type system that is simple enough to be used by beginner students, yet is powerful enough to express the ideas of polymorphism, abstract data types (ADTs), and higher-order procedures. The system also performs some rudimentary syntax checking. The system uses subtyping, but only in a primitive fashion. It has a type datum which is a supertype of all types, and a type poof which is a subtype of all types. It uses intersection types to control the use of datum and to generate simple but accurate types.

本文提出了一个Scheme的类型推理系统,供学生在程序设计入门课程中使用。这项工作的主要目标是提供一个类型系统,它足够简单,可以供初学者使用,但又足够强大,可以表达多态性、抽象数据类型(adt)和高阶过程的思想。系统还执行一些基本的语法检查。该系统使用子类型,但只是以一种原始的方式。它有一个类型基准,它是所有类型的超类型,还有一个类型poof,它是所有类型的子类型。它使用交叉类型来控制基准的使用,并生成简单而准确的类型。
{"title":"Polymorphic type-checking in scheme","authors":"Steven L. Jenkins,&nbsp;Gary T. Leavens","doi":"10.1016/S0096-0551(97)00002-7","DOIUrl":"10.1016/S0096-0551(97)00002-7","url":null,"abstract":"<div><p>This paper presents a type-inference system for Scheme that is designed to be used by students in an introductory programming course. The major goal of the work is to present a type system that is simple enough to be used by beginner students, yet is powerful enough to express the ideas of polymorphism, abstract data types (ADTs), and higher-order procedures. The system also performs some rudimentary syntax checking. The system uses subtyping, but only in a primitive fashion. It has a type <em>datum</em> which is a supertype of all types, and a type <em>poof</em> which is a subtype of all types. It uses intersection types to control the use of <em>datum</em> and to generate simple but accurate types.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 215-223"},"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)00002-7","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87198171","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
BaLinda Lisp: Design and implementation BaLinda Lisp:设计和实现
Pub Date : 1996-12-01 DOI: 10.1016/S0096-0551(96)00016-1
M.D. Feng, W.F. Wong, C.K. Yuen

BaLinda Lisp is a parallel Lisp dialect employing a shared memory model of parallel processing together with a subset of the Linda tuple space operators. Also included in the design is speculative processing. The aim is to have shared memory multiprocessing with the tuple space acting as the main data structure through which synchronization is done. The result is a flexible programming language. In this paper, we shall describe the design philosophy of BaLinda Lisp, discuss its implementation on three multiprocessing platforms, give examples of programs written in BaLinda Lisp and discuss future work on the language.

BaLinda Lisp是一种并行Lisp方言,采用并行处理的共享内存模型以及Linda元组空间操作符的子集。设计中还包括投机处理。其目的是使用元组空间作为主要数据结构的共享内存多处理,通过元组空间完成同步。其结果是一种灵活的编程语言。在本文中,我们将描述BaLinda Lisp的设计理念,讨论其在三个多处理平台上的实现,给出用BaLinda Lisp编写的程序示例,并讨论该语言的未来工作。
{"title":"BaLinda Lisp: Design and implementation","authors":"M.D. Feng,&nbsp;W.F. Wong,&nbsp;C.K. Yuen","doi":"10.1016/S0096-0551(96)00016-1","DOIUrl":"10.1016/S0096-0551(96)00016-1","url":null,"abstract":"<div><p>BaLinda Lisp is a parallel Lisp dialect employing a shared memory model of parallel processing together with a subset of the Linda tuple space operators. Also included in the design is speculative processing. The aim is to have shared memory multiprocessing with the tuple space acting as the main data structure through which synchronization is done. The result is a flexible programming language. In this paper, we shall describe the design philosophy of BaLinda Lisp, discuss its implementation on three multiprocessing platforms, give examples of programs written in BaLinda Lisp and discuss future work on the language.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 205-214"},"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)00016-1","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85803779","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
期刊
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