共查询到18条相似文献,搜索用时 218 毫秒
1.
2.
3.
4.
5.
广义部分计算(GPC)是一种基于部分计算和定理证明的程序优化原理。常规的部分计算方法(或部分求值器)显然只利用了已知的参数值对程序进行部分求值。而GPC不仅直接利用已知值,而且还利用下列信息。1.被部分求值程序的逻辑结构。2.程序设计语言的抽象数据类型。GPC是令人感到生疏和新奇的(1987年提出),甚至连常规的部分计算也没有被计算机科学界很好地理解。本文讨论(1) 部分计算诱人的特性,(2) 程序求值器,部分求值器和广义部分求值器的差别,(3) GPC原理及应用。 相似文献
6.
提出了一种面向对象程序设计语言的部分求值动作分析方法,利用带有绑定时间标注的源程序生成部分求值动作原语序列,作为各种部分求值实现策略的基础。这种方法使部分求值算法独立于具体的实现方法,从而降低了部分求值系统的实现难度。 相似文献
7.
AutoCAD是微机CAD领域中理想的图形支持软件,而AutoLISP是开发AutoCAD的有力工具。但使用AutoLISP的用户都知道,AutoLISP是一种求值型语言,而非解释型或编译型语言,其核心是求值器,运行程序时直接装入源程序,由求值器读入程序进行求值计算,最后返回求值结果。由于直接运行源程序,不 相似文献
8.
基于交互式语法制导Web方式的函数式语言的设计与实现 总被引:2,自引:0,他引:2
文中设计一个嵌入式函数语言系统,此系统用于过程性知识表示。系统分为两部分,一是基于Web方式的交互式语法制导模式的中间语言编辑部分;另一个是语言解释、执行(求值)部分。这个系统的工作效率主要依赖于中间语言的优化设计。 相似文献
9.
许云飞 《计算机光盘软件与应用》2013,(4)
随着计算机技术的不断进步和发展,Java语言程序凭借着自身的优势得到了广泛的应用,并取得了显著的成效。同时为了推动Java语言程序在计算机技术的作用,需要提高其精度,这就需要借助一定的对象别名分析技术。本文笔者对对象别名分析技术进行了分析和探讨,主要是为提高求值的深度,同时为实现Java语言程序中部分求值器的绑定时间分析的实现,进而为Java语言程序的应用提供指导和借鉴。 相似文献
10.
本文描述了流图语言的自应用型静态部分求值器,它由活跃变量分析、抽象分析、标记和例化4部分组成.在活跃变量分析基础上再作抽象分析,比以往的抽象分析获得的抽象解释更精确,也更利于产生较高质量的剩余程序.转移压缩在例化中直接进行. 相似文献
11.
为了实现面向对象语言的部分求值,提出了一种绑定时间分析技术.该技术通过针对引用类型变量和指针变量的上下文敏感分析,能够比较精确地分析面向对象语言中诸如对象元素、数组元素等复杂数据结构元素的绑定时间,进而扩大了部分求值的作用范围.这种方法采用两层BTA环境来保存静态变量和局部变量的BTA状态,设置一种专用句柄来表示不同程序点创建的对象,进而采用这种句柄的集合表示引用类型变量的BTA状态.在为面向对象语言程序标注绑定时间信息的过程中,采用一个正向分析和一个反向分析过程,借助于BTA环境来跟踪和设定各种变量、对象和引用变量的绑定时间.该技术已经用于实现Java程序的绑定时间分析,能够有效地分析大多数单线程的Java程序,为实现高性能Java程序部分求值提供了必要的手段. 相似文献
12.
部分计算是一种重要的程序变换方法和编译优化技术,Prolog程序特别适合于部分计算。目前,国际上已开始了几个Prolog程序部分计算的原理模型和专用工具,但其中存在以下若于问题:(1)关于Prolog程序部分计算的基本原理和特征缺乏系统的认识;(2)现有的两种检测逻辑程序中循环的方法,并没有最后解决部分计算的终止性问题》;(3)关于Prolog中内部谓词的处理不够究善,而且其中还隐含了许多语叉错误;(4)部分计算算法相当低效;(5)现有的部分计算器局限于各自的应用领域,缺乏通用性。本文结合我们研制GKD-Prolog编译系统[14]剖中一个实用源级部分计算器的工作实践,全面、系统地讨论了纯Prolog的部分计算、逻辑程序的循环检测以及全Prolog的内部谓词处理。 相似文献
13.
Partial Evaluation of the Euclidian Algorithm 总被引:1,自引:0,他引:1
Some programs are easily amenable to partial evaluation because their control flow clearly depends on one of their parameters. Specializing such programs with respect to this parameter eliminates the associated interpretive overhead. Some other programs, however, do not exhibit this interpreter-like behavior. Each of them presents a challenge for partial evaluation. The Euclidian algorithm is one of them, and in this article, we make it amenable to partial evaluation.We observe that the number of iterations in the Euclidian algorithm is bounded by a number that can be computed given either of the two arguments. We thus rephrase this algorithm using bounded recursion. The resulting program is better suited for automatic unfolding and thus for partial evaluation. Its specialization is efficient. 相似文献
14.
Compiling scientific code using partial evaluation 总被引:1,自引:0,他引:1
The partial evaluation approach, which transforms a high-level program into a low-level program that is specialized for a particular application, exposing the parallelism inherent in the underlying numerical computation, is discussed. A prototype compiler that uses partial evaluation is described. Experiments with the compiler have shown that for an important class of numerical programs, partial evaluation can provide marked performance improvements: speedups over conventionally compiled code that range from seven times faster to 91 times faster have been measured. By coupling partial evaluation with parallel scheduling techniques, the low-level parallelism inherent in a computation can be exploited on heavily pipelined or parallel architectures. The approach has been demonstrated by applying a parallel scheduler to a partially evaluated program that simulates the motion of a nine-body solar system 相似文献
15.
Le Meur Anne-Françoise Lawall Julia L. Consel Charles 《Higher-Order and Symbolic Computation》2004,17(1-2):47-92
Partial evaluation is a program transformation that automatically specializes a program with respect to invariants. Despite successful application in areas such as graphics, operating systems, and software engineering, partial evaluators have yet to achieve widespread use. One reason is the difficulty of adequately describing specialization opportunities. Indeed, underspecialization or overspecialization often occurs, without any feedback as to the source of the problem. We have developed a high-level, module-based language allowing the program developer to guide the choice of both the code to specialize and the invariants to exploit during the specialization process. To ease the use of partial evaluation, the syntax of this language is similar to the declaration syntax of the target language of the partial evaluator. To provide feedback, declarations are checked during the analyses performed by partial evaluation. The language has been successfully used by a variety of users, including students having no previous experience with partial evaluation. 相似文献
16.
Our research extends the bit-sliced signature organization by introducing a partial evaluation approach for queries. The partial evaluation approach minimizes the response time by using a subset of the on-bits of the query signature. A new signature file optimization method, Partially evaluated Bit-Sliced Signature File (P-BSSF), for multi-term query environments using the partial evaluation approach is introduced. The analysis shows that, with 14% increase in space overhead, P-BSSF provides a query processing time improvement of more than 85% for multi-term query environments with respect to the best performance of the bit-sliced signature file (BSSF) method. Under the sequentiality assumption of disk blocks, P-BSSF provides a desirable response time of 1 second for a database size of one million records with a 28% space overhead. Due to partial evaluation, the desirable response time is guaranteed for queries with several terms. 相似文献
17.
This paper presents some applications of partial evaluation method to a query optimization in deductive database. A Horn clause transformation is used for the partial evaluation of a query in an intensional database, and its application to multiple query processing is discussed. Three strategies are presented for the compatible case, ordered case and crossed case. In each case, partial evaluation is used to preprocess the intensional database in order to obtain subqueries which direct access to an extensional database. 相似文献
18.
Robert Glück 《Software》2012,42(6):649-673
This paper describes a self‐applicable online partial evaluator for a flowchart language with recursive calls. Self‐application of the partial evaluator yields generating extensions that are as efficient as those reported in the literature for offline partial evaluation. This result is remarkable because it has been assumed that online partial evaluation techniques unavoidably lead to inefficient and overgeneralized generating extensions. The purpose of this paper is not to determine which kind of partial evaluation is better, but to show how the problem can be solved by recursive polyvariant specialization. The design of the self‐applicable online partial evaluator is based on a number of known techniques, but by combining them in a new way this result can be produced. The partial evaluator, its techniques, and its implementation are presented in full. Self‐application according to all three Futamura projections is demonstrated. The complete bootstrap of a compiler generator from a partial evaluator is also reported. Copyright © 2011 John Wiley & Sons, Ltd. 相似文献