Fast Query Evaluation with (Lazy) Control Flow Compilation

  • Remko Tronçon
  • Gerda Janssens
  • Henk Vandecasteele
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3132)


Learning algorithms such as decision tree learners dynamically generate a huge amount of large queries. Because these queries are executed often, the trade-off between meta-calling and compiling & running them has been in favor of the latter, as compiled code is faster. This paper presents a technique named control flow compilation, which improves the compilation time of the queries by an order of magnitude without reducing the performance of executing the queries. We exploit the technique further by using it in a just-in-time manner. This improves performance in two ways: it opens the way to incremental compilation of the generated queries, and also gives potentially large gains by never compiling dynamically unreachable code. Both the implementation of (lazy) control flow compilation and its experimental evaluation in a real world application are reported on.


Execution Time Inductive Logic Inductive Logic Programming Garbage Collector Inductive Logic Programming System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    The ACE data mining system,
  2. 2.
    Ait-Kaci, H.: The WAM: a (real) tutorial. Technical Report 5, DEC Paris Research Report (1990), See also
  3. 3.
    Aycock, J.: A brief history of just-in-time. ACM Computing Surveys 35(2), 97–113 (2003)CrossRefGoogle Scholar
  4. 4.
    Blockeel, H., De Raedt, L.: Top-down induction of first order logical decision trees. Artificial Intelligence 101(1-2), 285–297 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Blockeel, H., Dehaspe, L., Demoen, B., Janssens, G., Ramon, J., Vandecasteele, H.: Improving the efficiency of Inductive Logic Programming through the use of query packs. Journal of Artificial Intelligence 16, 135–166 (2002)zbMATHGoogle Scholar
  6. 6.
    De Raedt, L., Van Laer, W.: Inductive constraint logic. In: Zeugmann, T., Shinohara, T., Jantke, K.P. (eds.) ALT 1995. LNCS, vol. 997, pp. 80–94. Springer, Heidelberg (1995)Google Scholar
  7. 7.
    Dehaspe, L., Toivonen, H.: Discovery of frequent datalog patterns. Data Mining and Knowledge Discovery 3(1), 7–36 (1999)CrossRefGoogle Scholar
  8. 8.
    Kramer, S.: Structural regression trees. In: Proceedings of the Thirteenth National Conference on Artificial Intelligence, pp. 812–819. AAAI Press/MIT Press, Cambridge/Menlo Park (1996)Google Scholar
  9. 9.
    Muggleton, S.: Inverse entailment and Progol. New Generation Computing, Special issue on Inductive Logic Programming 13(3-4), 245–286 (1995)Google Scholar
  10. 10.
    Quinlan, J.: Learning logical definitions from relations. Machine Learning 5, 239–266 (1990)Google Scholar
  11. 11.
  12. 12.
    Srinivasan, A., King, R., Bristol, D.: An assessment of ILP-assisted models for toxicology and the PTE-3 experiment. In: Džeroski, S., Flach, P.A. (eds.) ILP 1999. LNCS (LNAI), vol. 1634, pp. 291–302. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  13. 13.
    Srinivasan, A., Muggleton, S., Sternberg, M., King, R.: Theories for mutagenicity: A study in first-order and feature-based induction. Artificial Intelligence 85(1,2), 277–299 (1996)CrossRefGoogle Scholar
  14. 14.
    Tronçon, R., Janssens, G., Demoen, B.: Alternatives for compile & run in the WAM. In: Proceedings of CICLOPS 2003: Colloquium on Implementation of Constraint and LOgic Programming Systems, pp. 45–58. University of Porto, 2003. Technical Report DCC-2003-05, DCC - FC & LIACC, University of Porto (December 2003),
  15. 15.
    Tronçon, R., Vandecasteele, H., Struyf, J., Demoen, B., Janssens, G.: Query optimization: Combining query packs and the once-tranformation. In: Horváth, T., Yamamoto, A. (eds.) ILP 2003. LNCS (LNAI), vol. 2835, pp. 105–115. Springer, Heidelberg (2003)Google Scholar
  16. 16.
    Vandecasteele, H., Demoen, B., Janssens, G.: Compiling large disjunctions. In: de Castro Dutra, I., Pontelli, E., Costa, V.S. (eds.) First International Conference on Computational Logic: Workshop on Parallelism and Implementation Technology for (Constraint) Logic Programming Languages, Imperial College, pp. 103–121 (2000),
  17. 17.
    Warren, D.H.D.: An abstract Prolog instruction set. Technical Report 309, SRI (1983)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Remko Tronçon
    • 1
  • Gerda Janssens
    • 1
  • Henk Vandecasteele
    • 1
  1. 1.Department of Computer ScienceK.U.Leuven 

Personalised recommendations