首页 > 最新文献

Computer Languages最新文献

英文 中文
Associative definition of programming languages 编程语言的关联定义
Pub Date : 2000-07-01 DOI: 10.1016/S0096-0551(01)00004-2
Stefano Crespi Reghizzi , Matteo Pradella , Pierluigi San Pietro

Associative language descriptions (ALD) are a recent grammar model, theoretically less powerful than context free (CF) grammars, but adequate for describing the syntax of programming languages. ALD does not use nonterminal symbols, but rely on permissible contexts for specifying valid syntax trees. In order to assess ALD adequacy, we analyze the descriptional complexity of structurally equivalent CF and ALD grammars, finding comparable measures. The compression obtained using CF copy rules is matched by context inheritance in ALD. The family of hierarchical parentheses languages, an abstract paradigm of HTML, and of expressions with operator precedences is studied. A complete ALD grammar of Pascal testifies of the practicality of the ALD approach.

关联语言描述(ALD)是一种最新的语法模型,理论上没有上下文无关(CF)语法强大,但足以描述编程语言的语法。ALD不使用非终结符,而是依赖于允许的上下文来指定有效的语法树。为了评估ALD的充分性,我们分析了结构等效CF和ALD语法的描述复杂性,找到了可比较的度量。使用CF复制规则获得的压缩通过ALD中的上下文继承进行匹配。研究了层次括号语言族、HTML的一种抽象范式和具有运算符优先级的表达式。Pascal完备的ALD语法证明了ALD方法的实用性。
{"title":"Associative definition of programming languages","authors":"Stefano Crespi Reghizzi ,&nbsp;Matteo Pradella ,&nbsp;Pierluigi San Pietro","doi":"10.1016/S0096-0551(01)00004-2","DOIUrl":"10.1016/S0096-0551(01)00004-2","url":null,"abstract":"<div><p>Associative language descriptions (ALD) are a recent grammar model, theoretically less powerful than context free (CF) grammars, but adequate for describing the syntax of programming languages. ALD does not use nonterminal symbols, but rely on permissible contexts for specifying valid syntax trees. In order to assess ALD adequacy, we analyze the descriptional complexity of structurally equivalent CF and ALD grammars, finding comparable measures. The compression obtained using CF copy rules is matched by context inheritance in ALD. The family of hierarchical parentheses languages, an abstract paradigm of HTML, and of expressions with operator precedences is studied. A complete ALD grammar of Pascal testifies of the practicality of the ALD approach.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 2","pages":"Pages 105-123"},"PeriodicalIF":0.0,"publicationDate":"2000-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00004-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82141745","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
Iteration constructs in data-flow visual programming languages 迭代构造在数据流可视化编程语言中
Pub Date : 2000-07-01 DOI: 10.1016/S0096-0551(01)00009-1
M. Mosconi , M. Porta

Many visual programming languages (VPLs) rely on the data-flow paradigm, probably because of its simple and intuitive functioning mechanism. However, there are cases where more powerful programming constructs are needed to deal with complex problems. For example, iteration is undoubtedly an important aspect of programming, and should allow repetitive behaviors to be specified in compact and easy ways. Most existing data-flow VPLs provide special constructs to implement iterations, therefore infringing the pure data-flow paradigm in favor of program simplicity. This paper has three main purposes: (1) To provide a survey of the mechanisms used by some representative data-flow VPLs to carry out iterations; (2) To investigate, given a pure data-flow VPL, what should be the minimum set of characteristics which, after being added to the VPL, allow iterations to be implemented; and (3) To show real data-flow iteration implementations which rely on the characteristics pertaining to such a minimum set.

许多可视化编程语言(vpl)依赖于数据流范式,可能是因为其简单直观的功能机制。然而,在某些情况下,需要更强大的编程结构来处理复杂的问题。例如,迭代无疑是编程的一个重要方面,并且应该允许以紧凑和简单的方式指定重复行为。大多数现有的数据流vpl提供了特殊的结构来实现迭代,因此为了程序的简单性而破坏了纯数据流范式。本文有三个主要目的:(1)提供一些有代表性的数据流vpl用于执行迭代的机制的调查;(2)研究给定一个纯数据流VPL,添加到VPL后允许实现迭代的最小特征集应该是什么;(3)展示真实的数据流迭代实现,这些实现依赖于与该最小集相关的特征。
{"title":"Iteration constructs in data-flow visual programming languages","authors":"M. Mosconi ,&nbsp;M. Porta","doi":"10.1016/S0096-0551(01)00009-1","DOIUrl":"10.1016/S0096-0551(01)00009-1","url":null,"abstract":"<div><p>Many visual programming languages (VPLs) rely on the data-flow paradigm, probably because of its simple and intuitive functioning mechanism. However, there are cases where more powerful programming constructs are needed to deal with complex problems. For example, iteration is undoubtedly an important aspect of programming, and should allow repetitive behaviors to be specified in compact and easy ways. Most existing data-flow VPLs provide special constructs to implement iterations, therefore infringing the pure data-flow paradigm in favor of program simplicity. This paper has three main purposes: (1) To provide a survey of the mechanisms used by some representative data-flow VPLs to carry out iterations; (2) To investigate, given a pure data-flow VPL, what should be the minimum set of characteristics which, after being added to the VPL, allow iterations to be implemented; and (3) To show real data-flow iteration implementations which rely on the characteristics pertaining to such a minimum set.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 2","pages":"Pages 67-104"},"PeriodicalIF":0.0,"publicationDate":"2000-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00009-1","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80615039","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}
引用次数: 26
NP-SPEC: an executable specification language for solving all problems in NP NP- spec:解决NP中所有问题的可执行规范语言
Pub Date : 2000-07-01 DOI: 10.1016/S0096-0551(01)00010-8
Marco Cadoli , Giovambattista Ianni , Luigi Palopoli , Andrea Schaerf , Domenico Vasile

In this paper a logic-based specification language, called NP-SPEC, is presented. The language is obtained by extending DATALOG through allowing a limited use of some second-order predicates of predefined form. NP-SPEC programs specify solutions to problems in a very abstract and concise way, and are executable. In the present prototype they are compiled to PROLOG code, which is run to construct outputs. Second-order predicates of suitable form allow to limit the size of search spaces in order to obtain reasonably efficient construction of problem solutions. NP-SPEC expressive power is precisely characterized as to express exactly the problems in the class NP. The specification of several combinatorial problems in NP-SPEC is shown, and the efficiency of the generated programs is evaluated.

本文提出了一种基于逻辑的规范语言NP-SPEC。该语言是通过允许有限地使用预定义形式的一些二阶谓词来扩展DATALOG而获得的。NP-SPEC程序以非常抽象和简洁的方式指定问题的解决方案,并且是可执行的。在目前的原型中,它们被编译成PROLOG代码,运行它来构造输出。适当形式的二阶谓词允许限制搜索空间的大小,以便获得合理有效的问题解决方案构造。NP- spec的表达能力精确地表征为能准确地表达NP类中的问题。给出了NP-SPEC中几个组合问题的说明,并对生成的程序的效率进行了评价。
{"title":"NP-SPEC: an executable specification language for solving all problems in NP","authors":"Marco Cadoli ,&nbsp;Giovambattista Ianni ,&nbsp;Luigi Palopoli ,&nbsp;Andrea Schaerf ,&nbsp;Domenico Vasile","doi":"10.1016/S0096-0551(01)00010-8","DOIUrl":"10.1016/S0096-0551(01)00010-8","url":null,"abstract":"<div><p>In this paper a logic-based specification language, called <span>NP</span>-<span>SPEC</span>, is presented. The language is obtained by extending <span>DATALOG</span> through allowing a limited use of some second-order predicates of predefined form. <span>NP</span>-<span>SPEC</span> programs specify solutions to problems in a very abstract and concise way, and are executable. In the present prototype they are compiled to <span>PROLOG</span> code, which is run to construct outputs. Second-order predicates of suitable form allow to limit the size of search spaces in order to obtain reasonably efficient construction of problem solutions. <span>NP</span>-<span>SPEC</span> expressive power is precisely characterized as to express exactly the problems in the class NP. The specification of several combinatorial problems in <span>NP</span>-<span>SPEC</span> is shown, and the efficiency of the generated programs is evaluated.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 2","pages":"Pages 165-195"},"PeriodicalIF":0.0,"publicationDate":"2000-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00010-8","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76056936","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}
引用次数: 87
A declarative coordination language 声明性协调语言
Pub Date : 2000-07-01 DOI: 10.1016/S0096-0551(01)00008-X
Paolo Ciancarini , Daniela Fogli , Mauro Gaspari

We describe Gammalog, a logic language whose semantics is based on the chemical metaphor. The language combines the ability of describing coordination by transformation rules on a shared-dataspace, as in Gamma, with the execution model of logic programming. The main feature of Gammalog is that the declarative reading of programs is not restricted to the pure logic language but it also includes the coordination mechanisms. This feature makes Gammalog a promising alternative to other coordination models which can be embedded in logic programming. We present the language syntax, its formal semantics, and a prototype implementation based on Gödel, which inherits its strongly typed framework. As an example of the expressive power of the language we provide the specification of a simple operating system.

我们描述了Gammalog,一种语义基于化学隐喻的逻辑语言。该语言结合了在共享数据空间(如Gamma)上通过转换规则描述协调的能力,以及逻辑编程的执行模型。Gammalog的主要特点是程序的声明式阅读不仅限于纯逻辑语言,而且还包括协调机制。这个特性使得Gammalog成为其他可以嵌入到逻辑编程中的协调模型的一个有希望的替代方案。我们介绍了该语言的语法、形式语义和基于Gödel的原型实现,该实现继承了它的强类型框架。作为语言表达能力的一个例子,我们提供了一个简单操作系统的规范。
{"title":"A declarative coordination language","authors":"Paolo Ciancarini ,&nbsp;Daniela Fogli ,&nbsp;Mauro Gaspari","doi":"10.1016/S0096-0551(01)00008-X","DOIUrl":"10.1016/S0096-0551(01)00008-X","url":null,"abstract":"<div><p>We describe Gammalog, a logic language whose semantics is based on the chemical metaphor. The language combines the ability of describing coordination by transformation rules on a shared-dataspace, as in Gamma, with the execution model of logic programming. The main feature of Gammalog is that the declarative reading of programs is not restricted to the pure logic language but it also includes the coordination mechanisms. This feature makes Gammalog a promising alternative to other coordination models which can be embedded in logic programming. We present the language syntax, its formal semantics, and a prototype implementation based on Gödel, which inherits its strongly typed framework. As an example of the expressive power of the language we provide the specification of a simple operating system.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 2","pages":"Pages 125-163"},"PeriodicalIF":0.0,"publicationDate":"2000-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00008-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89285794","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
Index to Volume 26 第26卷索引
Pub Date : 2000-07-01 DOI: 10.1016/S0096-0551(01)00011-X
{"title":"Index to Volume 26","authors":"","doi":"10.1016/S0096-0551(01)00011-X","DOIUrl":"https://doi.org/10.1016/S0096-0551(01)00011-X","url":null,"abstract":"","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 2","pages":"Pages I-V"},"PeriodicalIF":0.0,"publicationDate":"2000-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00011-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"136554862","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
Lenient evaluation and parallelism 宽松的求值和并行性
Pub Date : 2000-04-01 DOI: 10.1016/S0096-0551(01)00007-8
G. Tremblay , B. Malenfant

In a companion paper (Tremblay G. Lenient evaluation is neither strict nor lazy. Computer languages 2000; 26:43–66.), we showed that non-strict functional languages were not necessarily lazy. More precisely, non-strict functional languages can be divided into lenient and lazy languages, both types allowing program constructions not directly available in strict functional languages. In this paper, we present parallel models of three evaluation strategies (strict, lenient, and lazy), along with an examination of the impact of these evaluation strategies on the implicit parallelism that can be extracted from programs. These formal semantics, expressed using a parallel notation (π-calculus), make it possible to show why lenient evaluation can be seen as more naturally parallel.

在一篇同伴论文(Tremblay G.)中,宽松的评估既不是严格的,也不是懒惰的。计算机语言2000;26:43-66),我们证明了非严格的函数式语言并不一定是懒惰的。更准确地说,非严格函数式语言可以分为宽松语言和惰性语言,这两种类型都允许在严格函数式语言中不能直接使用的程序结构。在本文中,我们提出了三种计算策略(严格、宽松和懒惰)的并行模型,并检查了这些计算策略对可以从程序中提取的隐式并行性的影响。这些使用并行符号(π-微积分)表示的形式化语义,可以说明为什么宽松求值可以被视为更自然地并行。
{"title":"Lenient evaluation and parallelism","authors":"G. Tremblay ,&nbsp;B. Malenfant","doi":"10.1016/S0096-0551(01)00007-8","DOIUrl":"10.1016/S0096-0551(01)00007-8","url":null,"abstract":"<div><p>In a companion paper (Tremblay G. Lenient evaluation is neither strict nor lazy. Computer languages 2000; 26:43–66.), we showed that non-strict functional languages were not necessarily lazy. More precisely, non-strict functional languages can be divided into lenient and lazy languages, both types allowing program constructions not directly available in strict functional languages. In this paper, we present <em>parallel</em> models of three evaluation strategies (strict, lenient, and lazy), along with an examination of the impact of these evaluation strategies on the implicit parallelism that can be extracted from programs. These formal semantics, expressed using a parallel notation (<em>π</em>-calculus), make it possible to show why lenient evaluation can be seen as more naturally parallel.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 1","pages":"Pages 27-41"},"PeriodicalIF":0.0,"publicationDate":"2000-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00007-8","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83894061","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
Lenient evaluation is neither strict nor lazy 宽松的评价既不是严格的,也不是懒惰的
Pub Date : 2000-04-01 DOI: 10.1016/S0096-0551(01)00006-6
G. Tremblay

What is a non-strict functional language? Is a non-strict language necessarily lazy? What additional expressiveness brings non-strictness, with or without laziness? This paper tries to shed some light on these questions.

First, in order to characterize non-strictness, different evaluation strategies are introduced: strict, lazy, and lenient. Then, using program examples, how these evaluation strategies differ from each other is examined, showing that non-strictness, even without laziness, allows a more general use of recursive definitions. We also report on a small experiment that we performed to examine how, in practice, laziness was used in a number of lazy benchmark programs.

什么是非严格的函数式语言?非严格的语言一定是懒惰的吗?什么额外的表达带来了不严格,有或没有懒惰?本文试图阐明这些问题。首先,为了描述非严格性,引入了严格、懒惰和宽松三种不同的评估策略。然后,使用程序示例,检查这些求值策略彼此之间的差异,显示非严格性(即使没有惰性)允许更一般地使用递归定义。我们还报告了我们执行的一个小实验,以检查在实践中如何在许多惰性基准测试程序中使用惰性。
{"title":"Lenient evaluation is neither strict nor lazy","authors":"G. Tremblay","doi":"10.1016/S0096-0551(01)00006-6","DOIUrl":"10.1016/S0096-0551(01)00006-6","url":null,"abstract":"<div><p>What is a non-strict functional language? Is a non-strict language necessarily lazy? What additional expressiveness brings non-strictness, with or without laziness? This paper tries to shed some light on these questions.</p><p>First, in order to characterize non-strictness, different evaluation strategies are introduced: strict, lazy, and lenient. Then, using program examples, how these evaluation strategies differ from each other is examined, showing that non-strictness, even without laziness, allows a more general use of recursive definitions. We also report on a small experiment that we performed to examine how, in practice, laziness was used in a number of lazy benchmark programs.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 1","pages":"Pages 43-66"},"PeriodicalIF":0.0,"publicationDate":"2000-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00006-6","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81229502","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
Semantics of well-moded input-consuming logic programs 模式良好的输入消费逻辑程序的语义
Pub Date : 2000-04-01 DOI: 10.1016/S0096-0551(01)00005-4
Annalisa Bossi , Sandro Etalle , Sabina Rossi

Recent logic programming languages employ dynamic scheduling of calls to improve efficiency of programs. Dynamic scheduling is realized by allowing some calls to be dynamically “delayed” until their arguments are sufficiently instantiated. To this end, logic languages are extended with constructs such as delay declarations. However, many declarative properties that hold for logic and pure Prolog programs do not apply any longer in this extended setting. In particular, the equivalence between the model–theoretic and operational semantics does not hold. In this paper, we study the class of input-consuming programs. Firstly, we argue that input-consuming logic programs are suitable for modeling programs employing delay declarations. Secondly, we show that—under some syntactic restrictions—the S-semantics of a program is correct and fully abstract also for input-consuming programs. This allows us to conclude that for a large class of programs employing delay declarations there exists a model–theoretic semantics which is equivalent to the operational one. Thus, input-consuming programs are shown to be the right answer for conjugate efficiency and declarativeness.

最近的逻辑程序设计语言采用动态调度调用来提高程序的效率。动态调度是通过允许一些调用被动态“延迟”,直到它们的参数被充分实例化来实现的。为此,逻辑语言被扩展为延迟声明等结构。然而,许多用于逻辑和纯Prolog程序的声明性属性不再适用于此扩展设置。特别是,模型理论语义和操作语义之间的等价性不成立。本文研究了一类消耗输入的程序。首先,我们认为输入消耗逻辑程序适合于使用延迟声明的程序建模。其次,我们证明了在某些语法限制下,程序的s语义是正确的,对于输入消费程序也是完全抽象的。这允许我们得出结论,对于大量使用延迟声明的程序,存在一个与操作语义等效的模型理论语义。因此,输入消耗程序被证明是共轭效率和声明性的正确答案。
{"title":"Semantics of well-moded input-consuming logic programs","authors":"Annalisa Bossi ,&nbsp;Sandro Etalle ,&nbsp;Sabina Rossi","doi":"10.1016/S0096-0551(01)00005-4","DOIUrl":"10.1016/S0096-0551(01)00005-4","url":null,"abstract":"<div><p>Recent logic programming languages employ dynamic scheduling of calls to improve efficiency of programs. Dynamic scheduling is realized by allowing some calls to be dynamically “delayed” until their arguments are sufficiently instantiated. To this end, logic languages are extended with constructs such as <em>delay declarations</em>. However, many declarative properties that hold for logic and pure Prolog programs do not apply any longer in this extended setting. In particular, the equivalence between the model–theoretic and operational semantics does not hold. In this paper, we study the class of <em>input-consuming</em> programs. Firstly, we argue that input-consuming logic programs are suitable for modeling programs employing delay declarations. Secondly, we show that—under some syntactic restrictions—the <span><math><mtext>S</mtext></math></span>-semantics of a program is correct and fully abstract also for input-consuming programs. This allows us to conclude that for a large class of programs employing delay declarations there exists a model–theoretic semantics which is equivalent to the operational one. Thus, input-consuming programs are shown to be the right answer for conjugate efficiency and declarativeness.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"26 1","pages":"Pages 1-25"},"PeriodicalIF":0.0,"publicationDate":"2000-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00005-4","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88772747","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
Volume 25 index 第25卷索引
Pub Date : 1999-12-01 DOI: 10.1016/S0096-0551(01)00003-0
{"title":"Volume 25 index","authors":"","doi":"10.1016/S0096-0551(01)00003-0","DOIUrl":"10.1016/S0096-0551(01)00003-0","url":null,"abstract":"","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 4","pages":"Pages I-V"},"PeriodicalIF":0.0,"publicationDate":"1999-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(01)00003-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"55984330","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
Dynamic composition of parameterised logic modules 参数化逻辑模块的动态组成
Pub Date : 1999-12-01 DOI: 10.1016/S0096-0551(00)00006-0
Antonio Brogi , Chiara Renso , Franco Turini

We present a logic-based programming language that features meta-level composition operations over programs. Object programs are parameterised named collections of definite clauses which may contain formulae of the form A in Pexp, where A is a standard atomic formula and Pexp is a program expression obtained by applying composition operations over named object programs. The semantics of the language is presented in two different equivalent styles. An operational, top-down semantics is given by means of inference rules, while a denotational, bottom-up semantics is given via an immediate consequence operator associated with program expressions. A meta-programming implementation of the language is also presented by transforming the operational inference rules into meta-level axioms. Several programming examples are discussed to illustrate the expressive power of the language.

我们提出了一种基于逻辑的编程语言,它在程序上具有元级组合操作。对象程序是确定子句的参数化命名集合,这些子句可能包含Pexp中形式为A的公式,其中A是标准原子公式,而Pexp是通过对命名对象程序应用组合操作获得的程序表达式。该语言的语义以两种不同的等效样式呈现。操作的、自顶向下的语义是通过推理规则给出的,而指称的、自底向上的语义是通过与程序表达式相关联的直接推理运算符给出的。通过将操作推理规则转换为元级公理,给出了该语言的元编程实现。讨论了几个编程示例来说明该语言的表达能力。
{"title":"Dynamic composition of parameterised logic modules","authors":"Antonio Brogi ,&nbsp;Chiara Renso ,&nbsp;Franco Turini","doi":"10.1016/S0096-0551(00)00006-0","DOIUrl":"10.1016/S0096-0551(00)00006-0","url":null,"abstract":"<div><p>We present a logic-based programming language that features meta-level composition operations over programs. Object programs are parameterised named collections of definite clauses which may contain formulae of the form <em>A</em> <em>in Pexp</em>, where <em>A</em> is a standard atomic formula and <em>Pexp</em> is a program expression obtained by applying composition operations over named object programs. The semantics of the language is presented in two different equivalent styles. An operational, top-down semantics is given by means of inference rules, while a denotational, bottom-up semantics is given via an immediate consequence operator associated with program expressions. A meta-programming implementation of the language is also presented by transforming the operational inference rules into meta-level axioms. Several programming examples are discussed to illustrate the expressive power of the language.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 4","pages":"Pages 211-242"},"PeriodicalIF":0.0,"publicationDate":"1999-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(00)00006-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81214579","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
期刊
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