47 citations found. Retrieving documents...
P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming ? Report 90/600, UCB/CSD, Berkeley, California 94720, Dec 1990.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Herbrand Constraint Solving in HAL - Demoen, Banda, Harvey, Marriott.. (1999)   (7 citations)  (Correct)

....determinism information on the performance of Prolog, but the results are quite uneven. In [4] information about type, mode and determinism is used to (manually) generate better code. Its results show up to a factor of two speedup for mode information, and the same result for type information. [5] describes Aquarius, a Prolog system in which compile time analysis information (including type, mode and determinism information) is used for optimizing the execution. In its results, analysis information had a relatively low impact on speed: on average about 50 for small programs without ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming ? Report 90/600, UCB/CSD, Berkeley, California 94720, Dec 1990.


Parallel Execution of Prolog Programs: A Survey - Gupta, Ali, Carlsson, al. (1995)   (10 citations)  (Correct)

....to sequential logic programming implementations (i.e. there should not be any slow down compared to a sequential system) Systems such as MUSE, Aurora and Prolog indeed achieve this goal. ffl The parallel system should be able to take advantage of the sequential compilation technology [141, 2, 138] that has advanced rapidly in the last decade. Experience has shown that process based system lose out on both the above counts. The process based approach is good for committed choice languages, where there is no backtracking involved, however, this is not true for non deterministic parallel ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming?. Ph.D. Thesis, University of California at Berkeley. Nov. 1990.


The BEAM: A first EAM Implementation - Lopes, Costa (1999)   (Correct)

....The high level nature of logic programs gives implementors a vast latitude in what techniques to research towards obtaining the best performance for logic programs. Advanced compilation techniques [12] have been used to obtain performance close to imperative languages for some benchmarks [11]. Parallelism [8] allows logic programs to transparently exploit the advantages of the new parallel machines that are more than ever gaining in popularity. Extensions such as co routining, constraints, and tabulation allow for substantial reductions in search space over the traditional Prolog ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming ? PhD thesis, University of California at Berkeley, November 1990.


Design and Implementation of the BEAM, an Extended Andorra.. - Lopes, Costa (2000)   (Correct)

....The high level nature of logic programs gives implementors a vast latitude in what techniques to research towards obtaining the best performance for logic programs. Advanced compilation techniques [13] have been used to obtain performance close to imperative languages for some benchmarks [12]. Parallelism [9] allows logic programs to transparently exploit the advantages of the new parallel machines that are more than ever gaining in popularity. Extensions such as co routining, constraints, and tabulation allow for substantial reductions in search space over the traditional Prolog ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California at Berkeley, November 1990.


Parallel Logic Programming With Extensions - Pereira, Cunha, Damas (1995)   (Correct)

....machine useful as a target for the compilation of Prolog because it can be implemented very efficiently in most conventional architectures. Recent efforts on the implementation of Prolog have tried to improve further the performance by using direct compilation to native code and global analysis [Van90, Tay90] Native code systems gain performance by by passing the emulator. They can also perform machine level optimisations. Global analysis provides information on how arguments are actually used during execution. Its most common uses are in the further specialisation of unification and in more ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California at Berkeley, November 1990.


Towards Native Code Generation in CLP - Tsarchopoulos (1995)   (Correct)

....of future CLP systems must be open to new algorithms. A second problem is how to efficiently implement a constraint solving algorithm in a CLP system. By efficiently implement we mean global analysis plus native code generation for RISC architectures since this is the Prolog experience [23, 27, 4] and the result of our measurements [24, 25] In this paper we concentrate on the second problem. A major obstacle concerning the implementation of CLP (but also LP) systems is the absence of a design methodology: the abstract machines (for example the WAM [28] or the CLAM [18] are presented at ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, UC Berkeley, 1990.


Parallelism in Logic Programming - Geyer, Vargas, Dutra   (Correct)

....abstract architecture. Since initial Prolog interpreters 2 were not optimised, a myth of logic programming = slow implementations developed and still survives [73] Only when Prolog compilers appeared, this myth started declining. Nowadays there are extremely fast implementations available [95] [6] Almost all compiled Prolog implementations use the (WAM ) with some extensions and or optimisations. The Prolog language is now defined by an ISO (1995) Standard [31] However, much current theoretical value comes from important extensions, modifications and experimental aspects [82] These ....

P. VAN ROY. Can Logic Programming Execute as Fast as Imperative Programming ? PhD thesis, University of California at Berkeley, November 1990.


Preference Logic Programming - Govindarajan (1995)   (17 citations)  (Correct)

....This was a genuine concern as long as Prolog was interpreted. Current Prolog systems routinely compile Prolog programs into instructions for an abstract machine, namely, Warren Abstract Machine (WAM) 4, 97] and achieve performance that is comparable to imperative languages for many programs [95]. Other logic programming systems also compile to derivatives of the WAM. For instance CLP(R) 39] set oriented languages such as SuRE [41, 42] higher order logic programming languages such as Prolog [66] all compile to an abstract machine that is a close derivative of the WAM. van Roy [95] ....

....[95] Other logic programming systems also compile to derivatives of the WAM. For instance CLP(R) 39] set oriented languages such as SuRE [41, 42] higher order logic programming languages such as Prolog [66] all compile to an abstract machine that is a close derivative of the WAM. van Roy [95] suggests that compilation of unification, the granularity of the instruction set, exploiting determinism and dataflow analysis are all very crucial ingredients of an efficient implementation. Any serious implementation of preference logic programming will not be complete until we have a ....

P. L. van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California, Berkeley, 1990.


Generating lattice code for Prolog analyzers - Nordin, Lindgren (1996)   (Correct)

.... linearity [20] J L, Jacobs s and Langen s sharing domain [15] Str, a simple depth k structure domain; Deb, one of Debray s substitution closed type domains [8] Dep, Debray s mode and dependency domain [7] The set of programs analyzed in the evaluation is a subset of the Berkeley benchmarks [19]. Comparison of hand coded domains and generated domains Program Prolog Sund ratio Reform Dep ratio boyer 6.82 2.93 0.43 4.49 2.26 0.50 browse 5.33 30.86 5.79 1.06 1.81 1.71 chatparser 23.10 57.92 2.51 crypt 1.84 0.83 0.45 0.39 1.37 3.51 divide 3.17 0.26 0.08 0.13 0.56 4.31 fastmu ....

P.L. van Roy, Can Logic Programming Execute as Fast as Imperative Programming ?, Ph.D. Thesis, UCB/CSD 90/600, Computer Science Division (EECS), University of California, Berkeley, 1990.


Call Forwarding: A Simple Interprocedural.. - De Bosschere.. (1994)   (7 citations)  (Correct)

....code motion algorithms handle only the intra procedural case. The idea of compiling functions with multiple entry points is not new: many Lisp systems do this, Yale Haskell generates dual entry points for its functions, and Aquarius Prolog generates multiple entry points for primitive operations [20]. However, we do not know of any system that attempts to order the entry actions carefully in order to maximize the savings from bypassing entry actions. Chambers and Ungar consider compile time optimization techniques to reduce runtime type checking in dynamically typed object oriented languages ....

P. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, PhD Dissertation, University of California, Berkeley, Nov. 1990.


Call Forwarding: A Simple Interprocedural.. - De Bosschere.. (1994)   (7 citations)  (Correct)

....handle only the intra procedural case. The idea of compiling functions with multiple entry points is not new: many Lisp systems do this, Standard ML of New Jersey and Yale Haskell generate dual entry points for functions, and Aquarius Prolog generates multiple entry points for primitive operations [18]. However, we do not know of any system that attempts to order the entry actions carefully in order to maximize the savings from bypassing entry actions. Some optimizations used in statically typed languages can also be thought of in terms of call forwarding. For example, Standard ML of New Jersey ....

P. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, PhD Dissertation, University of California, Berkeley, Nov. 1990.


A Continuation-Passing Style for Prolog - Lindgren (1994)   (2 citations)  (Correct)

....2 B) can be simplified into B. exec(X N, B1(S) exec(X = N, B2(S) F) A compiler could also infer that the test X N will always fail when entered from B 1 and always succeed when X N fails. Hence, we can generate the desired code. exec(X N, cut(F,B1(S) B2(S,F) The Aquarius compiler [24] performs this optimization by collecting test sets and checking whether the sets are mutually exclusive. In our example, we split this into two parts: motion of save restore operations, and finding mutually exclusive tests. Continuation representation. The BCS representation gives us freedom to ....

P.L. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, Ph.D. Thesis, Report UCB/CSD-90-600, UC Berkeley, 1990.


Abstractions of Uniform Proofs - Volpe   (Correct)

....not easily apply. Think for example of higher order terms, dynamic modules and private names of Prolog or the managing of communication and multiple head clauses of LO or Forum. Indeed already per se the classical WAM based compilation have problems as regards the efficiency of the produced code [16]. In fact not always the compiler can manage to reduce the full generality of the proof search and simplify the unification algorithm, eliminate useless creation, copying of data structures, or recognize the inherent determinism of a procedure, etc. To optimize, it is necessary to know some ....

....of the results. In standard logic programming (having a clean and simple semantics) there have been many results on the subject that have established the benefits of the approach. Indeed static analysis of programs can be very useful to devise new compiling techniques and optimization algorithms [16]. We think that the interest in a project aimed at studying the abstract interpretation of uniform proof based logic programming is twofold. In the field of extended logic programming languages, it addresses the problem of devising the tools to make more efficient their implementations. As regards ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming ? PhD thesis, Department of Computer Science, UC Berkeley, 1990. Report UCB/CSD 90/600.


Detection And Optimization Of Suspension-Free Logic Programs - Debray, Gudeman, Bigot (1996)   (12 citations)  (Correct)

....(or program fragments) that do not exhibit any suspension, effectively penalizing good programmers and carefully crafted programs. For example, it has been shown that significant improvements in performance can be obtained by returning output values of procedures in registers instead of in memory [1, 21], or with knowledge of lengths of dereference chains [17] However, in a language with delay mechanisms, there is always the possibility that normal execution may be pre empted by a newly awakened goal that may overwrite a register containing an output value or change the length of a dereference ....

.... For example, Marien et al. show that significant performance improvements are possible for Prolog programs if the lengths of dereference chains can be statically predicted [17] while Van Roy shows that execution speed can be improved significantly if the initialization of variables can be avoided [21]. All of these optimizations become applicable for (strongly) non suspending programs in logic programming languages with delay mechanisms. 7. Discussion While delay mechanisms can be very convenient for programming purposes, they make control flow difficult to predict and thereby render many low ....

P. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California at Berkeley, 1990.


Control flow analysis of Prolog (extended remix) - Lindgren (1995)   (Correct)

....control information substantially, by a factor of two or more for 11 of 26 programs and by 50 or more for 7 of the remaining 15 programs. We close with noting that the choice of indexing algorithm influenced these numbers heavily at times. More sophisticated indexing algorithms, e.g. Refs. [2, 17], could be used to further improve the precision of the control flow analysis. Future work. Future work involves extending the analysis to handle exceptions and dynamic scheduling, improving the precision of the CFA, developing optimizations based on the ideas developed in this paper [10] and ....

....work. Future work involves extending the analysis to handle exceptions and dynamic scheduling, improving the precision of the CFA, developing optimizations based on the ideas developed in this paper [10] and using the CFG for native code compilation. We expect previously developed techniques [17, 14] to be useful in the latter regard. Acknowledgements. I would like to thank Per Mildner and Hakan Millroth for valuable discussions and their comments on this paper, and Saumya Debray for valuable comments. I am grateful to the anonymous referees for suggestions that improved the presentation and ....

P.L. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, Ph.D. Thesis, Report UCB/CSD-90-600, UC Berkeley, 1990.


Multiple Specialization through Local Analysis - Ferreira, Damas (1998)   (Correct)

....comparable to native code Prolog compilers. Keywords: Prolog Compilation, Code Specialization, Program Analysis. 1 Introduction The efficiency of a Prolog compiler is normally associated with two aspects: a program analyzer and the generation of native code. Parma [Tay91] and Aquarius [Van90] are two of the most efficient Prolog compilers and both generate native code and have a program analysis phase. The analysis phase is normally done by applying a technique named abstract interpretation [CC92] to the source program. This analysis generates information about modes and types of ....

....This analysis generates information about modes and types of arguments [DW88, BJ88] variable aliasing [JL89] determinism [Mel86] etc. This information is then used to generate specialized code, normally in the form of some low level abstract machine, like the BAM (Berkeley Abstract Machine) [Van90] in Aquarius. The WAM (Warren Abstract Machine) War83] is much too high level to use the information of the analysis. The code specialization results from knowing that the activation patterns from procedure calls have certain properties, like, for instance, having dereferenced arguments, ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California at Berkeley, November 1990.


The BEAM: A first EAM Implementation - Lopes, Costa (1999)   (Correct)

....The high level nature of logic programs gives implementors a vast latitude in what techniques to research towards obtaining the best performance for logic programs. Advanced compilation techniques [12] have been used to obtain performance close to imperative languages for some benchmarks [11]. Parallelism [8] allows logic programs to transparently exploit the advantages of the new parallel machines that are more than ever gaining in popularity. Extensions such as co routining, constraints, and tabulation allow for substantial reductions in search space over the traditional Prolog ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California at Berkeley, November 1990.


A comparison of some schemes for translating logic to C. - Demoen, Maris (1994)   (4 citations)  (Correct)

....has often been implemented starting from the WAM [10] for which either an emulator, threaded code interpreter or a native code generator has been written. Even implementations that do not adhere directly to the WAM instruction set, should often be classified as belonging to the WAM family, like [11, 12] and many implementations of languages that differ substantially from Prolog, are based on WAM [1] So, the choice of Prolog as the red thread through the paper is by no means an unfortunate accident or a serious limitation, as the implementation of Prolog has modelled the implementation of many ....

....a proper stack as soon as backtracking comes into the picture: this imposes some painful and inefficient work arounds . it is difficult for a garbage collector to find active environment variables in older register windows . most important however: the penalty of window overflows is very high; in [12], it is reported that Aquarius is faster for the tak benchmark than C; this is due to the fact that in Aquarius no register window overflows occur during execution of the benchmark: Aquarius does indeed not map the environments to the C stack So without provisions to avoid register window ....

P. Van Roy, `Can Logic Programming Execute as Fast as Imperative Programming ?' Report No. UCB/CSD 90/600 Dec 1990, Berkeley, California 94720


IGOR: A tool for developing Prolog dataflow analyzers - Nordin, Lindgren, Millroth (1995)   (Correct)

.... and linearity [17] J L, Jacobs s and Langen s sharing domain [13] Str, a simple depth k structure domain; Deb, one of Debray s substitution closed type domains [8] Dep, Debray s mode and dependency domain [7] The set of programs analyzed in the evaluation is a subset of the Berkeley benchmarks [16]. 5.1 Domain and compilation statistics The size of the specifications of domains we have implemented range between 1 to 3 pages of non commented code. These specifications include basic domain operations, abstract unification, abstract interpretation of 30 built in predicates, and the code to ....

....domains to obtain a more sophisticated domain. This method is succesfully used in Igor specifications. Cousot and Cousot [6] proposed methods for systematic design of new abstract domains out of old ones, by combinations of domains and application of various transformations on domains. Van Roy [16] notes that the use of analysis results is less well researched, as compared to generic analysis frameworks or abstract domains. Getzinger Set representation, bit vectors vs ordered lists Sund J L Str Deb Dep Program bits lists bits lists bits lists bits lists bits lists boyer 2.93 2.94 2.77 ....

P.L. van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, Ph.D. Thesis, UCB/CSD 90/600, Computer Science Division (EECS), University of California, Berkeley, 1990.


The Compilation and Execution of Recursion-Parallel Prolog on.. - Lindgren (1993)   (5 citations)  (Correct)

....for a Prolog program in the same time as for analysing a Fortran or C program performing the same task. What Fortran and C lose for analysis purposes, they regain at the compilation stage. Compilers for imperative languages generally produce superior code to even such efforts as Aquarius Prolog [74] or Parma [68] which define the state ofthe art at the time of writing. The compilation of Prolog must be taken to the level where competitive code is produced for large Prolog programs written in a natural programming style by a knowledgeable Prolog programmer. 92 Conclusion 6.4 ....

P.L. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming ?, Ph.D. Thesis, UCB/CSD 90/600, Computer Science Division (EECS), University of California, Berkeley, 1990. f91g


Control flow analysis of Prolog - Lindgren (1995)   (1 citation)  (Correct)

....control information substantially, by a factor of two or more for 11 of 26 programs and by 50 or more for 7 of the remaining 15 programs. We close with noting that the choice of indexing algorithm influenced these numbers heavily at times. More sophisticated indexing algorithms, e.g. Refs. [2, 16], could be used to further improve the precision of the control flow analysis. Future work. Future work involves extending the analysis to handle exceptions and dynamic scheduling, improving the precision of the CFA, developing optimizations based on the ideas developed in this paper [9] and ....

....work. Future work involves extending the analysis to handle exceptions and dynamic scheduling, improving the precision of the CFA, developing optimizations based on the ideas developed in this paper [9] and using the CFG for native code compilation. We expect previously developed techniques [16, 13] to be useful in the latter regard. Acknowledgements. I would like to thank Per Mildner and Hakan Millroth for valuable discussions and their comments on this paper, and Saumya Debray for valuable comments. I am grateful to the anonymous referees for suggestions that improved the presentation and ....

P.L. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, Ph.D. Thesis, Report UCB/CSD-90-600, UC Berkeley, 1990.


Technical Annex for the ACCLAIM Project (PE7195) - Haridi (1992)   (Correct)

....been shown that such tools can efficiently be implemented [33, 166] This makes them not only useful but also practical. Moreover, recent work on static analysis of concurrent logic programs indicates that certain aspects of concurrent execution of logic programs are amenable to static analysis [41, 43, 145]. This suggests quite strongly that similar tools for compile time reasoning about program behavior can successfully be developed for concurrent constraint languages, and that such tools can be quite effective in improving the performance of programs. However, it is not obvious that algorithms for ....

....a significant extension of previous research on cost analysis of logic programs. Baseline There has been a great deal of research, in recent years, on dataflow analysis and abstract interpretation of logic programs, with applications to program optimization and parallelization (see, for example, [75, 137, 145]) Recently, there has been some work on analysis of constraint logic programs, by Marriott and S ndergaard [127] and by Garcia de la Banda and Hermenegildo [59] and of concurrent logic programs by Codish et al. 41] and Codognet et al. 43] Experimental work evaluating dataflow analysis ....

[Article contains additional citation context not shown here]

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming ? PhD thesis, University of California, Berkeley, 1990.


Distributing And- and Or-Work in the Andorra-I Parallel Logic.. - Dutra (1995)   (3 citations)  (Correct)

....language processing, planning, genetics, networking, etc. All these contribute to the popularity of logic programming. Logic programming brings together clarity, expressiveness and declarativeness, very important aspects of a programming paradigm. Faster compilers for Prolog have been built [133, 131, 42], and this also contributes to the spreading of the language. Van Roy in a recent article [132] gives a very good overview of the wonder years of sequential Prolog implementations. The most recentcompilers use many techniques to improve sequential execution of Prolog. Many compilers use global ....

P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? PhD thesis, University of California at Berkeley, November 1990.


Compilation Techniques for Prolog - Lindgren (1996)   (Correct)

....dereferenced or trailed. ffl Whether variables are aliased. The analysis information can be used to improve clause indexing (e.g. by deleting type tests that are statically determined) or by improving unifications (e.g. if the involved variables are bound or free, or may be bound efficiently) [154, 142]. Compilation based on global analysis yields good or excellent speedups over systems lacking analysis [155, 143] See also Van Roy s excellent survey of the implementation work for Prolog and logic programming [156] Compilation of parallel Prolog As multiprocessor computers become increasingly ....

....when created and modified during execution when unifications and similar operations occurred. He found that a large portion of the dynamically occurring variables actually were uninitialized. On a set of benchmarks, he found that dereferencing and trailing could be substantially reduced. Van Roy [154] defined a static analysis that (among other things) derived uninitialized arguments. Our monovariant transformation in essence mimics 18 Summary the uninitializedness subset of Van Roy s analyzer and achieves approximately the same precision [155] Our work thus shows that this part of Van ....

[Article contains additional citation context not shown here]

P.L. Van Roy, Can Logic Programming Execute as Fast as Imperative Programming?, Ph.D. Thesis, UCB/CSD 90/600, Computer Science Division (EECS), University of California, Berkeley, 1990. f3, 17, 18, 23, 36, 52, 56, 57, 60, 69g


Parameter Passing and Control Stack Management in Prolog.. - Zhou (1994)   (4 citations)  (Correct)

....Unfortunately, due to the parameter passing and control stack management schemes adopted in the WAM, both a choice point and an environment have to be created and discarded each time the loop is executed, and the argument register storing S2 has to be saved in both frames. By using the factoring [Van Roy 1990] and flattening techniques used in KL1 programming [Ueda and Chikayama 1990] the procedure can be translated into: intersect( S, intersect( X Xs] S2,S3) membchkaux(X,S2,Ok) intersectaux(Xs,S2,S3,X,Ok) intersectaux(S1,S2,S3,X,Ok) Ok= 1, S3= X S4] intersect(S1,S2,S4) ....

....calls, and OP is a choice operator. If OP is : and Q is determinate, then the generated code would have the following skeleton: allocate a frame . code for P and G . code for : pass arguments of Q call Q rearrange arguments of R 2 In many recent systems such as Aquarius Prolog [Van Roy 1990], BinWAM [Tarau 1991] and VAM [Krall and Berger 1995] unbound variables are stored on the heap. This new scheme makes it unnecessary to globalize unbound stack variables in the move value and build value instructions. In addition, it also makes a trailing check cheaper. We retain the WAM s ....

[Article contains additional citation context not shown here]

Van Roy, P. 1990. Can logic programming executes as fast as imperative programming? Ph.D.

First 50 documents

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