@inproceedings{CrLe04_16,
  author     = {Stephen Craig and Michael Leuschel},
  title      = {{Lix}: An Effective Self-applicable Partial Evaluator for {Prolog}},
  booktitle  = {FLOPS},
  abstract   = {This paper presents a self-applicable partial evaluator for a
    considerable subset of full Prolog. The partial evaluator is shown to
    achieve non-trivial specialisation and be effectively self-applied.
    The attempts to self-apply partial evaluators for logic programs have,
    of yet, not been all that successful. Compared to earlier attempts,
    our LIX system is practically usable in terms of efficiency and can
    handle natural logic programming examples with partially static data
    structures, built-ins, side-effects, and some higher-order and
    meta-level features such as call and findall.
      The LIX system is derived from the development of the LOGEN compiler
    generator system. It achieves a similar kind of efficiency and
    specialisation, but can be used for other applications. Notably, we
    show first attempts at using the system for deforestation and tupling
    in an offline fashion. We will demonstrate that, contrary to earlier
    beliefs, declarativeness and the use of the ground representation is
    not the best way to achieve self-applicable partial evaluators.},
  editor     = {Yukiyoshi Kameyama and Peter J. Stuckey},
  publisher  = {Springer-Verlag},
  pages      = {85--99},
  year       = {2004},
}
