| T. Lindgren, Control flow analysis of Prolog (extended remix), technical report, Uppsala University, 1995. |
....uncurrying [21] As a pragmatic issue, therefore, we are interested in ordinary first order programs: our aim is to account for interprocedural control flow in such programs in the presence of tail call optimization. To our knowledge, the only other work addressing this issue is that of Lindgren [9], who uses set based analysis for control flow analysis of Prolog. Unlike Lindgren s work, our analyses can maintain context information (see Section 6) The main contribution of this paper is to show how control flow analysis of first order programs with tail call optimization can be formulated ....
T. Lindgren, "Control Flow Analysis of Prolog", Proc. 1995 International Symposium on Logic Programming, Dec. 1995, pp. 432--446. MIT Press.
No context found.
T. Lindgren, Control flow analysis of Prolog (extended remix), technical report, Uppsala University, 1995.
.... (A; B) where B has live and defined variables Xs is rewritten into: fail cont(L[Xs] A 0 ; label(f,L,Xs) B 0 ) Explicit state save restore and frame creation operations have the benefit that the compiler can remove them when redundant as well perform limited code motion on frame creations [8]. Consider the following annotated predicate. Some non essential annotations have been removed. p(X) savecp(C) save(A) failcont(L1[A,X] save(B) failcont(L2[B,X] var(X) label(L2) restore(B) atomic(X) cut(C) psimple(X) label(L1) restore(A) pcompound(X) The ....
T. Lindgren, Control flow analysis of Prolog (extended remix), technical report, Uppsala University, 1995.
.... (A; B) where B has live and defined variables Xs is rewritten into: fail cont(L[Xs] A 0 ; label(f,L,Xs) B 0 ) Explicit state save restore and frame creation operations have the benefit that the compiler can remove them when redundant as well perform limited code motion on frame creations [87]. 3.4. Control flow analysis 43 Consider the following annotated predicate. Some non essential annotations have been removed. p(X) savecp(C) save(A) failcont(L1[A,X] save(B) failcont(L2[B,X] var(X) label(L2) restore(B) atomic(X) cut(C) psimple(X) label(L1) ....
T. Lindgren, Control flow analysis of Prolog (extended remix), Technical Report 112, Uppsala University, 1995. f42g
....could be rewritten into ( var(A) atom(A) B1 ; nonvar(A) non atom(A) B2 ) This is not done at present. The introduced tests are later used to annotate the program, but are themselves deleted from the annotated program. For some experiments we introduced explicit code to perform indexing [13], in the form of type tests and name tests. This enabled a substantial number of redundant tests to be introduced, with a consequent gain in precision. 4 Empirical results 4.1 Experimental setup We chose to study the Berkeley benchmarks, since they are well known and intended to represent a ....
T. Lindgren, Control flow analysis of Prolog (extended remix), Technical report 112, Computing Science Dept., Uppsala University, 1995.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC