首页 > 最新文献

Artificial Intelligence and Programming Languages最新文献

英文 中文
Program manipulation via an efficient production system 通过高效的生产系统进行程序操作
Pub Date : 1977-08-01 DOI: 10.1145/800228.806946
Dennis F. Kibler, J. Neighbors, Thomas A. Standish
Systems for program transformation have been suggested by many authors [Knuth, Wegbreit, Loveman, Balzer, Standish2, Burstall & Darlington]. Several of these authors note that such transformation systems could be used to transform lucid, high-level, but possibly inefficient program descriptions into efficient but possibly less legible underlying concrete realizations. One problem, mentioned by Loveman [Loveman] is that of chaining together many low-level simple transformations to achieve high-level goals. For example, we may wish to chain together low-level transformations such as constant propagation, performing arithmetic at transformation time, dead variable elimination, empty statement removal and the like, to achieve the high-level goal of program simplification. This paper shows one technique for organizing sequences of low-level program transformations within an interactive programming medium to achieve nearly automatic global program improvements with low search times and minimal human intervention and guidance.
许多作者都提出了程序转换系统[Knuth, Wegbreit, Loveman, Balzer, standish, Burstall & Darlington]。其中一些作者注意到,这样的转换系统可以用来将清晰的、高级的,但可能效率低下的程序描述转换为有效的,但可能不那么易读的底层具体实现。Loveman [Loveman]提到的一个问题是,将许多低级的简单转换链接在一起以实现高级目标。例如,我们可能希望将诸如常量传播、在转换时执行算术、死变量消除、空语句删除等低级转换链接在一起,以实现程序简化的高级目标。本文展示了一种在交互式编程介质中组织低级程序转换序列的技术,以低搜索时间和最少的人为干预和指导实现几乎自动的全局程序改进。
{"title":"Program manipulation via an efficient production system","authors":"Dennis F. Kibler, J. Neighbors, Thomas A. Standish","doi":"10.1145/800228.806946","DOIUrl":"https://doi.org/10.1145/800228.806946","url":null,"abstract":"Systems for program transformation have been suggested by many authors [Knuth, Wegbreit, Loveman, Balzer, Standish2, Burstall & Darlington]. Several of these authors note that such transformation systems could be used to transform lucid, high-level, but possibly inefficient program descriptions into efficient but possibly less legible underlying concrete realizations. One problem, mentioned by Loveman [Loveman] is that of chaining together many low-level simple transformations to achieve high-level goals. For example, we may wish to chain together low-level transformations such as constant propagation, performing arithmetic at transformation time, dead variable elimination, empty statement removal and the like, to achieve the high-level goal of program simplification. This paper shows one technique for organizing sequences of low-level program transformations within an interactive programming medium to achieve nearly automatic global program improvements with low search times and minimal human intervention and guidance.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116050014","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
Automatic synthesis of optimal invariant assertions: Mathematical foundations 最优不变断言的自动合成:数学基础
Pub Date : 1977-08-01 DOI: 10.1145/800228.806926
P. Cousot, R. Cousot
The problem of discovering invariant assertions of programs is explored in light of the fixpoint approach in the static analysis of programs, Cousot [1977a], Cousot[1977b]. In section 2 we establish the lattice theoric foundations upon which the synthesis of invariant assertions is based. We study the resolution of a fixpoint system of equations by Jacobi's successive approximations method. Under continuity hypothesis we show that any chaotic iterative method converges to the optimal solution. In section 3 we study the deductive semantics of programs. We show that a system of logical forward equations can be associated with a program using the predicate transformer rules which define the semantics of elementary instructions. The resolution of this system of semantic equations by chaotic iterations leads to the optimal invariants which exactly define the semantics of this program. Therefore these optimal invariants can be used for total correctness proofs (section 4). Next we show that usually a system of inequations is used as a substitute for the system of equations. Hence the solutions to this system of inequations are approximate invariants which can only be used for proofs of partial correctness (section 5). In section 6 we show that symbolic execution of programs consists in fact in solving the semantic equations associated with this program. The construction of the symbolic execution tree corresponds to the chaotic successive approximations method. Therefore symbolic execution permits optimal invariant assertions to be discovered provided that one can pass to the limit, that is consider infinite paths in the symbolic execution tree. Induction nrinciDles can be used for that purpose. In section 7 we show how difference equations can be utilized to discover the general term of the sequence of successive approximations so that optimal invariants are obtained by a mere passage to the limit. In section 8 we show that an approximation of the optimal solution to a fixpoint system of equations can be obtained by strengthening the term of a chaotic iteration sequence. This formalizes the synthesis of approximate invariants by heuristic methods. Various examples provide a helpful intuitive support to the technical sections.
根据程序静态分析中的不动点方法(Cousot[1977a], Cousot[1977b]),探索了发现程序的不变断言的问题。在第2节中,我们建立了不变量断言综合的格理论基础。用Jacobi连续逼近法研究了一类不动点方程组的解。在连续性假设下,证明了任意混沌迭代方法收敛于最优解。在第三节中,我们研究了程序的演绎语义。我们证明了逻辑正演方程系统可以使用定义基本指令语义的谓词转换规则与程序相关联。通过混沌迭代对该系统的语义方程进行求解,得到了精确定义该程序语义的最优不变量。因此,这些最优不变量可用于完全正确性证明(第4节)。接下来,我们将说明通常用方程组代替方程组。因此,该方程组的解是近似不变量,只能用于部分正确性的证明(第5节)。在第6节中,我们表明,程序的符号执行实际上包括求解与该程序相关的语义方程。符号执行树的构造对应于混沌逐次逼近法。因此,符号执行允许发现最优不变断言,前提是可以达到极限,即考虑符号执行树中的无限路径。感应式事故可用于此目的。在第7节中,我们展示了如何利用差分方程来发现连续逼近序列的一般项,以便仅通过极限即可获得最优不变量。在第8节中,我们证明了不动点方程组的最优解的近似值可以通过加强混沌迭代序列的项来获得。用启发式方法形式化了近似不变量的综合。各种示例为技术部分提供了有用的直观支持。
{"title":"Automatic synthesis of optimal invariant assertions: Mathematical foundations","authors":"P. Cousot, R. Cousot","doi":"10.1145/800228.806926","DOIUrl":"https://doi.org/10.1145/800228.806926","url":null,"abstract":"The problem of discovering invariant assertions of programs is explored in light of the fixpoint approach in the static analysis of programs, Cousot [1977a], Cousot[1977b].\u0000 In section 2 we establish the lattice theoric foundations upon which the synthesis of invariant assertions is based. We study the resolution of a fixpoint system of equations by Jacobi's successive approximations method. Under continuity hypothesis we show that any chaotic iterative method converges to the optimal solution. In section 3 we study the deductive semantics of programs. We show that a system of logical forward equations can be associated with a program using the predicate transformer rules which define the semantics of elementary instructions. The resolution of this system of semantic equations by chaotic iterations leads to the optimal invariants which exactly define the semantics of this program. Therefore these optimal invariants can be used for total correctness proofs (section 4). Next we show that usually a system of inequations is used as a substitute for the system of equations. Hence the solutions to this system of inequations are approximate invariants which can only be used for proofs of partial correctness (section 5). In section 6 we show that symbolic execution of programs consists in fact in solving the semantic equations associated with this program. The construction of the symbolic execution tree corresponds to the chaotic successive approximations method. Therefore symbolic execution permits optimal invariant assertions to be discovered provided that one can pass to the limit, that is consider infinite paths in the symbolic execution tree. Induction nrinciDles can be used for that purpose. In section 7 we show how difference equations can be utilized to discover the general term of the sequence of successive approximations so that optimal invariants are obtained by a mere passage to the limit. In section 8 we show that an approximation of the optimal solution to a fixpoint system of equations can be obtained by strengthening the term of a chaotic iteration sequence. This formalizes the synthesis of approximate invariants by heuristic methods. Various examples provide a helpful intuitive support to the technical sections.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115387111","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}
引用次数: 133
Control requirements for the design of production system architectures 控制生产系统架构设计的要求
Pub Date : 1977-08-01 DOI: 10.1145/800228.806930
M. Rychener
Programs in the artificial intelligence domain impose unusual requirements on control structures. Production systems are a control structure with promising attributes for building, generally intelligent systems with large knowledge bases. This paper presents examples to illustrate the unusual position taken by production systems on a number of control and pattern-matching issues. Examples are chosen to illustrate certain powerful features and to provide critical tests which might be used to evaluate the effectiveness of new designs.
人工智能领域的程序对控制结构提出了不同寻常的要求。生产系统是一种控制结构,具有构建具有大型知识库的智能系统的良好属性。本文提供了一些例子来说明生产系统在许多控制和模式匹配问题上所采取的不同寻常的立场。选择示例来说明某些强大的功能,并提供可能用于评估新设计有效性的关键测试。
{"title":"Control requirements for the design of production system architectures","authors":"M. Rychener","doi":"10.1145/800228.806930","DOIUrl":"https://doi.org/10.1145/800228.806930","url":null,"abstract":"Programs in the artificial intelligence domain impose unusual requirements on control structures. Production systems are a control structure with promising attributes for building, generally intelligent systems with large knowledge bases. This paper presents examples to illustrate the unusual position taken by production systems on a number of control and pattern-matching issues. Examples are chosen to illustrate certain powerful features and to provide critical tests which might be used to evaluate the effectiveness of new designs.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130182329","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}
引用次数: 46
What the nature of natural language tells us about how to make natural-language-like programming languages more natural 自然语言的本质告诉我们如何使类似自然语言的编程语言更自然
Pub Date : 1977-08-01 DOI: 10.1145/800228.806936
Jerry R. Hobbs
When a student is learning an algorithm from a textbook, his first approach is frequently through an English description. This is normally easier to understand than raw code, and sometimes easier than a flow chart, in spite of the fact that programming languages are designed for algorithm specification while English is only pressed into its service. If the English is easier to understand, it is likely that it has many features that would ease programming itself. This paper investigates some of these features.
当学生从教科书中学习算法时,他的第一种方法通常是通过英语描述。这通常比原始代码更容易理解,有时甚至比流程图更容易理解,尽管编程语言是为算法规范而设计的,而英语只是被强制用于其服务。如果英语更容易理解,那么它很可能具有许多简化编程本身的功能。本文对其中的一些特征进行了研究。
{"title":"What the nature of natural language tells us about how to make natural-language-like programming languages more natural","authors":"Jerry R. Hobbs","doi":"10.1145/800228.806936","DOIUrl":"https://doi.org/10.1145/800228.806936","url":null,"abstract":"When a student is learning an algorithm from a textbook, his first approach is frequently through an English description. This is normally easier to understand than raw code, and sometimes easier than a flow chart, in spite of the fact that programming languages are designed for algorithm specification while English is only pressed into its service. If the English is easier to understand, it is likely that it has many features that would ease programming itself. This paper investigates some of these features.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"15 33","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120971333","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
Prolog - the language and its implementation compared with Lisp Prolog -该语言及其实现与Lisp的比较
Pub Date : 1977-08-01 DOI: 10.1145/800228.806939
D. Warren, L. Pereira, Fernando C Pereira
Prolog is a simple but powerful programming language founded on symbolic logic. The basic computational mechanism is a pattern matching process (“unification”) operating on general record structures (“terms” of logic). We briefly review the language and compare it especially with pure Lisp. The remainder of the paper discusses techniques for implementing Prolog efficiently; in particular we describe how to compile the patterns involved in the matching process. These techniques are as incorporated in our DECsystem-10 Prolog compiler (written in Prolog). The code it generates is comparable in speed with that produced by existing DEC10 Lisp compilers. We argue that pattern matching is a better method for expressing operations on structured data than conventional selectors and constructors - both for the user and for the implementor.
Prolog是一种简单但功能强大的基于符号逻辑的编程语言。基本的计算机制是对一般记录结构(逻辑的“项”)进行操作的模式匹配过程(“统一”)。我们将简要回顾该语言,并将其与纯Lisp进行比较。本文的剩余部分将讨论有效执行Prolog的技术;我们特别描述了如何编译匹配过程中涉及的模式。这些技术被纳入我们的DECsystem-10 Prolog编译器(用Prolog编写)。它生成的代码在速度上与现有的DEC10 Lisp编译器生成的代码相当。我们认为,与传统的选择器和构造器相比,模式匹配是在结构化数据上表达操作的更好方法——对用户和实现者都是如此。
{"title":"Prolog - the language and its implementation compared with Lisp","authors":"D. Warren, L. Pereira, Fernando C Pereira","doi":"10.1145/800228.806939","DOIUrl":"https://doi.org/10.1145/800228.806939","url":null,"abstract":"Prolog is a simple but powerful programming language founded on symbolic logic. The basic computational mechanism is a pattern matching process (“unification”) operating on general record structures (“terms” of logic). We briefly review the language and compare it especially with pure Lisp. The remainder of the paper discusses techniques for implementing Prolog efficiently; in particular we describe how to compile the patterns involved in the matching process. These techniques are as incorporated in our DECsystem-10 Prolog compiler (written in Prolog). The code it generates is comparable in speed with that produced by existing DEC10 Lisp compilers. We argue that pattern matching is a better method for expressing operations on structured data than conventional selectors and constructors - both for the user and for the implementor.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"87 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134436186","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}
引用次数: 276
Macaroni is better than spaghetti 通心粉比意大利面好
Pub Date : 1977-08-01 DOI: 10.1145/800228.806933
G. Steele
We present a stack implementation of multiple environments similar in principle to that of Bobrow and Wegbreit, but based on a model which provides both static and dynamic scoping. We note some of the pragmatic consequences of this choice of models; one is that no unnecessary control stack is retained for certain important constructions such as “upward funargs” and coroutines. We also discuss the correct treatment of exit functions, and the need for “entry functions” if dynamic switching of control contexts is to be consistent.
我们提出了一个多环境的堆栈实现,原理与Bobrow和Wegbreit相似,但基于一个提供静态和动态作用域的模型。我们注意到这种模型选择的一些实际后果;一个是对于某些重要的结构,如“向上的funargs”和协程,没有保留不必要的控制堆栈。我们还讨论了退出函数的正确处理,以及如果控制上下文的动态切换是一致的,那么“进入函数”的必要性。
{"title":"Macaroni is better than spaghetti","authors":"G. Steele","doi":"10.1145/800228.806933","DOIUrl":"https://doi.org/10.1145/800228.806933","url":null,"abstract":"We present a stack implementation of multiple environments similar in principle to that of Bobrow and Wegbreit, but based on a model which provides both static and dynamic scoping. We note some of the pragmatic consequences of this choice of models; one is that no unnecessary control stack is retained for certain important constructions such as “upward funargs” and coroutines. We also discuss the correct treatment of exit functions, and the need for “entry functions” if dynamic switching of control contexts is to be consistent.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132953547","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
The PSI Program Model Builder - synthesis of very high-level programs PSI项目模型构建器-非常高级的项目的综合
Pub Date : 1977-08-01 DOI: 10.1145/800228.806942
B. P. McCune
A system called the Program Model Builder (PMB) is being designed and implemented to perform the basic operations required to synthesize and modify programs. PMB plays a central role as one of the expert modules of the PSI (&psgr;) program synthesis system. PMB builds a complete and consistent program model from small chunks of program specification received from other (&psgr;) experts. PMB must deal with the fact that these program fragments often omit details and may be incomplete, ambiguous, inconsistent, nonspecific, and arbitrarily ordered. The initial version of PMB has successfully synthesized a few program models from fragments. This work includes the evolution of a very high-level program modelling language, the identification and codification of useful very high-level programming knowledge including equivalence transformations, and the implementation of a rule-based problem solving system embodying this knowledge.
一个叫做程序模型构建器(PMB)的系统正在被设计和实现,以执行合成和修改程序所需的基本操作。PMB作为PSI (&psgr;)程序综合系统的专家模块之一,起着核心作用。PMB根据从其他(&psgr;)专家那里收到的小块程序规范构建完整和一致的程序模型。PMB必须处理这样一个事实,即这些程序片段经常省略细节,并且可能是不完整的、模糊的、不一致的、非特定的和任意排序的。PMB的初始版本已经成功地从片段中合成了一些程序模型。这项工作包括发展一种非常高级的程序建模语言,识别和编纂有用的非常高级的编程知识,包括等价转换,以及实现一个基于规则的问题解决系统,体现了这些知识。
{"title":"The PSI Program Model Builder - synthesis of very high-level programs","authors":"B. P. McCune","doi":"10.1145/800228.806942","DOIUrl":"https://doi.org/10.1145/800228.806942","url":null,"abstract":"A system called the Program Model Builder (PMB) is being designed and implemented to perform the basic operations required to synthesize and modify programs. PMB plays a central role as one of the expert modules of the PSI (&psgr;) program synthesis system. PMB builds a complete and consistent program model from small chunks of program specification received from other (&psgr;) experts. PMB must deal with the fact that these program fragments often omit details and may be incomplete, ambiguous, inconsistent, nonspecific, and arbitrarily ordered. The initial version of PMB has successfully synthesized a few program models from fragments. This work includes the evolution of a very high-level program modelling language, the identification and codification of useful very high-level programming knowledge including equivalence transformations, and the implementation of a rule-based problem solving system embodying this knowledge.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131386122","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Generalized procedure calling and content-directed invocation 通用过程调用和面向内容的调用
Pub Date : 1977-08-01 DOI: 10.1145/800228.806931
Randall Davis
We suggest that the concept of a strategy can profitably be viewed as knowledge about how to select from among a set of plausibly useful knowledge sources, and explore the framework for knowledge organization which this implies. We describe meta rules, a means of encoding strategies that has been implemented in a program called TEIRESIAS, and explore their utility and contribution to problem solving performance. Meta rules are also considered in the broader context of a tool for programming. We show that they can be considered a medium for expressing the criteria for retrieval of knowledge sources in a program, and hence can be used to define control regimes. The utility of this as a programming mechanism is considered. Finally, we describe the technique of content-directed invocation used by meta rules, and consider its use as a way of implementing strategies. It is also considered in historical perspective as a knowledge source invocation technique, and its advantage over some existing mechanisms like goal-directed invocation is considered. This work was supported in part by the Bureau of Health Sciences Research and Evaluation of HEW under Grant HS-01544 and by the Advanced Research Projects Agency under ARPA Order 2494. It was carried out on the SUMEX Computer System, supported by the NIH under Grant RR-00785. The views expressed are solely those of the author.
我们建议,战略的概念可以被看作是关于如何从一组看似有用的知识来源中进行选择的知识,并探索这意味着知识组织的框架。我们描述了元规则,一种在名为TEIRESIAS的程序中实现的编码策略,并探讨了它们的效用和对问题解决性能的贡献。元规则也在更广泛的编程工具上下文中被考虑。我们表明,它们可以被认为是表达程序中知识来源检索标准的媒介,因此可以用来定义控制制度。本文考虑了这种编程机制的实用性。最后,我们描述了元规则使用的内容导向调用技术,并将其作为实现策略的一种方式。从历史的角度来看,它也被认为是一种知识源调用技术,并且考虑了它比一些现有机制(如目标导向调用)的优势。这项工作得到了卫生科学研究和评估局HS-01544拨款和高级研究计划局ARPA命令2494的部分支持。它是在SUMEX计算机系统上进行的,由NIH在拨款RR-00785下支持。所表达的观点仅代表作者的观点。
{"title":"Generalized procedure calling and content-directed invocation","authors":"Randall Davis","doi":"10.1145/800228.806931","DOIUrl":"https://doi.org/10.1145/800228.806931","url":null,"abstract":"We suggest that the concept of a strategy can profitably be viewed as knowledge about how to select from among a set of plausibly useful knowledge sources, and explore the framework for knowledge organization which this implies. We describe meta rules, a means of encoding strategies that has been implemented in a program called TEIRESIAS, and explore their utility and contribution to problem solving performance.\u0000 Meta rules are also considered in the broader context of a tool for programming. We show that they can be considered a medium for expressing the criteria for retrieval of knowledge sources in a program, and hence can be used to define control regimes. The utility of this as a programming mechanism is considered.\u0000 Finally, we describe the technique of content-directed invocation used by meta rules, and consider its use as a way of implementing strategies. It is also considered in historical perspective as a knowledge source invocation technique, and its advantage over some existing mechanisms like goal-directed invocation is considered.\u0000 This work was supported in part by the Bureau of Health Sciences Research and Evaluation of HEW under Grant HS-01544 and by the Advanced Research Projects Agency under ARPA Order 2494. It was carried out on the SUMEX Computer System, supported by the NIH under Grant RR-00785. The views expressed are solely those of the author.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130326947","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}
引用次数: 27
The incremental garbage collection of processes 进程的增量垃圾收集
Pub Date : 1977-08-01 DOI: 10.1145/800228.806932
H. Baker, C. Hewitt
This paper investigates some problems associated with an argument evaluation order that we call “future” order, which is different from both call-by-name and call-by-value, In call-by-future, each formal parameter of a function is bound to a separate process (called a “future”) dedicated to the evaluation of the corresponding argument. This mechanism allows the fully parallel evaluation of arguments to a function, and has been shown to augment the expressive power of a language. We discuss an approach to a problem that arises in this context: futures which were thought to be relevant when they were created become irrelevant through being ignored in the body of the expression where they were bound. The problem of irrelevant processes also appears in multiprocessing problem-solving systems which start several processors working on the same problem but with different methods, and return with the solution which finishes first. This parallel method strategy has the drawback that the processes which are investigating the losing methods must be identified, stopped, and re-assigned to more useful tasks.
本文研究了与参数求值顺序相关的一些问题,这种顺序不同于按名调用和按值调用。在按未来调用中,函数的每个形式参数都被绑定到一个单独的进程(称为“未来”),该进程专门用于求相应参数的值。这种机制允许对函数的参数进行完全并行的求值,并且已被证明可以增强语言的表达能力。我们将讨论一种解决在这种情况下出现的问题的方法:在创建时被认为是相关的期货,由于在它们被绑定的表达式中被忽略而变得无关紧要。不相关进程的问题也出现在多进程问题解决系统中,该系统启动多个处理器以不同的方法处理同一个问题,然后返回最先完成的解决方案。这种并行方法策略的缺点是,必须识别、停止正在调查丢失方法的进程,并将其重新分配给更有用的任务。
{"title":"The incremental garbage collection of processes","authors":"H. Baker, C. Hewitt","doi":"10.1145/800228.806932","DOIUrl":"https://doi.org/10.1145/800228.806932","url":null,"abstract":"This paper investigates some problems associated with an argument evaluation order that we call “future” order, which is different from both call-by-name and call-by-value, In call-by-future, each formal parameter of a function is bound to a separate process (called a “future”) dedicated to the evaluation of the corresponding argument. This mechanism allows the fully parallel evaluation of arguments to a function, and has been shown to augment the expressive power of a language. \u0000 We discuss an approach to a problem that arises in this context: futures which were thought to be relevant when they were created become irrelevant through being ignored in the body of the expression where they were bound. The problem of irrelevant processes also appears in multiprocessing problem-solving systems which start several processors working on the same problem but with different methods, and return with the solution which finishes first. This parallel method strategy has the drawback that the processes which are investigating the losing methods must be identified, stopped, and re-assigned to more useful tasks.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130601757","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}
引用次数: 428
Self-redefinition as a program manipulation strategy 作为程序操作策略的自我重新定义
Pub Date : 1977-08-01 DOI: 10.1145/800228.806947
Philippe Chatelin
This is an exploration of a constructive strategy for program improvement and synthesis. A first part recalls unfolding-folding style of manipulations initiated by BURSTALL and DARLINGTON with an application to proofs of equivalence of certain function compositions. Second part, in a more abstract way, presents three basic “forms” and their associated “transforms” constructed with this strategy in a hierarchical order ; they may serve as goals of transformations. Last part associates self-redefinition to mixed strategies for program composition: symbolic macro replacement, logarithmic speed up, resolution of formal recurrences. Each situation, where technique and method apply, is depicted on examples and open problems are evoked.
这是对项目改进和综合的建设性策略的探索。第一部分回顾了由BURSTALL和DARLINGTON提出的展开-折叠类型的操作及其在某些函数组合的等价证明中的应用。第二部分以更为抽象的方式,按层次顺序提出了这一策略所构建的三种基本“形式”及其相关的“转换”;它们可以作为转换的目标。最后一部分将自我重定义与程序组成的混合策略联系起来:符号宏替换、对数加速、形式递归的解决。每一种情况下,技术和方法的应用,描述的例子和开放的问题被唤起。
{"title":"Self-redefinition as a program manipulation strategy","authors":"Philippe Chatelin","doi":"10.1145/800228.806947","DOIUrl":"https://doi.org/10.1145/800228.806947","url":null,"abstract":"This is an exploration of a constructive strategy for program improvement and synthesis. A first part recalls unfolding-folding style of manipulations initiated by BURSTALL and DARLINGTON with an application to proofs of equivalence of certain function compositions. Second part, in a more abstract way, presents three basic “forms” and their associated “transforms” constructed with this strategy in a hierarchical order ; they may serve as goals of transformations. Last part associates self-redefinition to mixed strategies for program composition: symbolic macro replacement, logarithmic speed up, resolution of formal recurrences. Each situation, where technique and method apply, is depicted on examples and open problems are evoked.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126533535","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
期刊
Artificial Intelligence and Programming 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