Efficient local unfolding with ancestor stacks

被引:0
|
作者
Puebla, German [1 ]
Albert, Elvira [2 ]
Hermenegildo, Manuel [1 ]
机构
[1] Tech Univ Madrid, Sch Comp Sci, E-28660 Madrid, Spain
[2] Univ Complutense Madrid, Sch Comp Sci, E-28040 Madrid, Spain
关键词
partial evaluation; partial deduction; logic programming; prolog; SLD semantics; local unfolding; PARTIAL DEDUCTION; ABSTRACT INTERPRETATION; LOGIC PROGRAMS; ONLINE TERMINATION; PROLOG; SPECIALIZATION; SYSTEM;
D O I
10.1017/S1471068409990263
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The most successful unfolding rules used nowadays in the partial evaluation of logic programs are based on well quasi orders (wqo) applied over (covering) ancestors, i.e., a subsequence of the atoms selected during a derivation. Ancestor (sub)sequences are used to increase the specialization power of unfolding while still guaranteeing termination and also to reduce the number of atoms for which the wqo has to be checked. Unfortunately, maintaining the structure of the ancestor relation during unfolding introduces significant overhead. We propose an efficient, practical local unfolding rule based on the notion of covering ancestors which can be used in combination with a wqo and allows a stack-based implementation without losing any opportunities for specialization. Using our technique, certain nonleftmost unfoldings are allowed as long as local unfolding is performed, i.e., we cover depth-first strategies. To deal with practical programs, we propose assertion-based techniques which allow our approach to treat programs that include (Prolog) built-ins and external predicates in a very extensible manner, for the case of leftmost unfolding. Finally, we report on our implementation of these techniques embedded in a practical partial evaluator, which shows that our techniques, in addition to dealing with practical programs, are also significantly more efficient in time and somewhat more efficient in memory than traditional tree-based implementations.
引用
收藏
页码:1 / 32
页数:32
相关论文
共 50 条
  • [1] Efficient local unfolding with ancestor stacks for full Prolog
    Puebla, G
    Albert, E
    Hermenegildo, M
    LOGIC BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2005, 3573 : 149 - 165
  • [2] Efficient Contextual Unfolding
    Rodriguez, Cesar
    Schwoon, Stefan
    Baldan, Paolo
    CONCUR 2011: CONCURRENCY THEORY, 2011, 6901 : 342 - +
  • [3] Unfolding the local activity of a memristor
    Ascoli, A.
    Slesazeck, S.
    Tetzlaff, R.
    Maehne, H.
    Mikolajick, T.
    2014 14TH INTERNATIONAL WORKSHOP ON CELLULAR NANOSCALE NETWORKS AND THEIR APPLICATIONS (CNNA), 2014,
  • [4] EFFICIENT METHOD FOR STORING ANCESTOR INFORMATION IN TREES
    MAIER, D
    SIAM JOURNAL ON COMPUTING, 1979, 8 (04) : 599 - 618
  • [5] On the local quotient structure of Artin stacks
    Alper, Jarod
    JOURNAL OF PURE AND APPLIED ALGEBRA, 2010, 214 (09) : 1576 - 1591
  • [6] Determination of local temperatures in goods stacks
    Berechnung örtlicher temperaturen in gutstapeln
    1600, DIV Deutscher Industrieverlag GmbH (63):
  • [7] Note on local structure of Artin stacks
    Iwanari, Isamu
    COMPTES RENDUS MATHEMATIQUE, 2010, 348 (19-20) : 1107 - 1109
  • [8] Efficient Phase Estimation for Interferogram Stacks
    Ansari, Homa
    De Zan, Francesco
    Bamler, Richard
    IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING, 2018, 56 (07): : 4109 - 4125
  • [9] Controlling Tolerence Stacks for Efficient Manufacturing
    G. Thimm
    G.A. Britton
    F.S. Cheong
    The International Journal of Advanced Manufacturing Technology, 2001, 18 : 44 - 48
  • [10] Controlling tolerance stacks for efficient manufacturing
    Thimm, G
    Britton, GA
    Cheong, FS
    INTERNATIONAL JOURNAL OF ADVANCED MANUFACTURING TECHNOLOGY, 2001, 18 (01): : 44 - 48