首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 218 毫秒
1.
LISP语言的增量式部分求值器   总被引:2,自引:0,他引:2  
李航  宋立彤  金成植 《软件学报》1996,7(8):492-498
部分求值在软件优化中有着重要的作用,而增量式计算是避免重复计算的一种技术.本文基于部分求值和增量式计算的技术,实现了一个LISP语言的增量武部分求值器,使得函数例化尽量在前次已经产生的剩余程序的基础上进行,从而很好地提高了效率.  相似文献   

2.
基于信息流分析的部分求值技术   总被引:7,自引:1,他引:6  
刘磊  郑红军  金成植 《软件学报》1995,6(8):509-513
循环展开是过程式语言部分求值中的难题之一.本文提出一种基于信息流分析的部分求值技术,解决了部分求值中循环展开问题.本文利用这一技术,实现了一个过程式语言的部分求值器.  相似文献   

3.
函数式语言的部分求值技术   总被引:3,自引:1,他引:2       下载免费PDF全文
宋立彤  金成植 《软件学报》1996,7(5):306-313
本文基于抽象解释技术设计并实现了一函数式语言部分求值器FMIX.FMIX在设计方法和实现策略上具有一定独到之处,系统运行效率较高.  相似文献   

4.
郭德贵  王冠成  吕帅  刘磊 《软件学报》2017,28(5):1221-1232
部分求值技术在程序优化及软件自动生成等方面,有着极为重要的作用.本文将部分求值技术应用到编译器测试中.为此,设计了一个C语言的子集peC语言,给出了该语言的部分求值策略的形式化描述,实现了peC语言的部分求值器,设计了基于部分求值技术的编译器测试框架.通过实验,本文的方法可以检测出大部分之前的其它的方法发现的GCC、LLVM编译器中的错误,此外还发现了其它方法不能发现的错误,表明将部分求值技术应用到编译器测试中是有效的.  相似文献   

5.
广义部分计算(GPC)是一种基于部分计算和定理证明的程序优化原理。常规的部分计算方法(或部分求值器)显然只利用了已知的参数值对程序进行部分求值。而GPC不仅直接利用已知值,而且还利用下列信息。1.被部分求值程序的逻辑结构。2.程序设计语言的抽象数据类型。GPC是令人感到生疏和新奇的(1987年提出),甚至连常规的部分计算也没有被计算机科学界很好地理解。本文讨论(1) 部分计算诱人的特性,(2) 程序求值器,部分求值器和广义部分求值器的差别,(3) GPC原理及应用。  相似文献   

6.
提出了一种面向对象程序设计语言的部分求值动作分析方法,利用带有绑定时间标注的源程序生成部分求值动作原语序列,作为各种部分求值实现策略的基础。这种方法使部分求值算法独立于具体的实现方法,从而降低了部分求值系统的实现难度。  相似文献   

7.
AutoCAD是微机CAD领域中理想的图形支持软件,而AutoLISP是开发AutoCAD的有力工具。但使用AutoLISP的用户都知道,AutoLISP是一种求值型语言,而非解释型或编译型语言,其核心是求值器,运行程序时直接装入源程序,由求值器读入程序进行求值计算,最后返回求值结果。由于直接运行源程序,不  相似文献   

8.
基于交互式语法制导Web方式的函数式语言的设计与实现   总被引:2,自引:0,他引:2  
敖丽敏  汪懋华 《计算机应用》2003,23(8):21-22,26
文中设计一个嵌入式函数语言系统,此系统用于过程性知识表示。系统分为两部分,一是基于Web方式的交互式语法制导模式的中间语言编辑部分;另一个是语言解释、执行(求值)部分。这个系统的工作效率主要依赖于中间语言的优化设计。  相似文献   

9.
随着计算机技术的不断进步和发展,Java语言程序凭借着自身的优势得到了广泛的应用,并取得了显著的成效。同时为了推动Java语言程序在计算机技术的作用,需要提高其精度,这就需要借助一定的对象别名分析技术。本文笔者对对象别名分析技术进行了分析和探讨,主要是为提高求值的深度,同时为实现Java语言程序中部分求值器的绑定时间分析的实现,进而为Java语言程序的应用提供指导和借鉴。  相似文献   

10.
本文描述了流图语言的自应用型静态部分求值器,它由活跃变量分析、抽象分析、标记和例化4部分组成.在活跃变量分析基础上再作抽象分析,比以往的抽象分析获得的抽象解释更精确,也更利于产生较高质量的剩余程序.转移压缩在例化中直接进行.  相似文献   

11.
面向对象程序设计语言的绑定时间分析技术   总被引:5,自引:0,他引:5       下载免费PDF全文
廖湖声  童兆丰  王众 《软件学报》2003,14(3):415-421
为了实现面向对象语言的部分求值,提出了一种绑定时间分析技术.该技术通过针对引用类型变量和指针变量的上下文敏感分析,能够比较精确地分析面向对象语言中诸如对象元素、数组元素等复杂数据结构元素的绑定时间,进而扩大了部分求值的作用范围.这种方法采用两层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  
Berlin  A. Weise  D. 《Computer》1990,23(12):25-37
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.
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.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号