Efficiency of difference-list programming

  • The difference-list technique is described in literature as effective method for extending lists to the right without using calls of append/3. There exist some proposals for automatic transformation of list programs into differencelist programs. However, we are interested in construction of difference-list programs by the programmer, avoiding the need of a transformation step. In [GG09] it was demonstrated, how left-recursive procedures with a dangling call of append/3 can be transformed into right-recursion using the unfolding technique. For simplification of writing difference-list programs using a new cons/2 procedure was introduced. In the present paper, we investigate how efficieny is influenced using cons/2. We measure the efficiency of procedures using accumulator technique, cons/2, DCG’s, and difference lists and compute the resulting speedup in respect to the simple procedure definition using append/3. Four Prolog systems were investigated and we found different behaviour concerning the speedup by difference lists. A result oThe difference-list technique is described in literature as effective method for extending lists to the right without using calls of append/3. There exist some proposals for automatic transformation of list programs into differencelist programs. However, we are interested in construction of difference-list programs by the programmer, avoiding the need of a transformation step. In [GG09] it was demonstrated, how left-recursive procedures with a dangling call of append/3 can be transformed into right-recursion using the unfolding technique. For simplification of writing difference-list programs using a new cons/2 procedure was introduced. In the present paper, we investigate how efficieny is influenced using cons/2. We measure the efficiency of procedures using accumulator technique, cons/2, DCG’s, and difference lists and compute the resulting speedup in respect to the simple procedure definition using append/3. Four Prolog systems were investigated and we found different behaviour concerning the speedup by difference lists. A result of our investigations is, that an often advice given in the literature for avoiding calls append/3 could not be confirmed in this strong formulation.show moreshow less

Download full text files

Export metadata

  • Export Bibtex
  • Export RIS
  • Export XML

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Ulrich Geske, Hans-Joachim Goltz
URN:urn:nbn:de:kobv:517-opus-41563
Document Type:Conference Proceeding
Language:English
Date of Publication (online):2010/03/04
Year of Completion:2010
Publishing Institution:Universität Potsdam
Contributing Corporation:Gesellschaft für Logische Programmierung e.V.
Release Date:2010/03/04
Source:Proceedings of the 23rd Workshop on (Constraint) Logic Programming 2009 / Geske, Ulrich; Wolf, Armin (Hrsg.). - Potsdam : Universitätsverlag, 2010. - S. 177 - 186
Organizational units:Mathematisch-Naturwissenschaftliche Fakultät / Institut für Informatik
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
Collections:Universität Potsdam / Tagungen / Proceedings of the 23rd Workshop on (Constraint) Logic Programming 2009 / Practice of Logic Programming
Licence (German):License LogoKeine Nutzungslizenz vergeben - es gilt das deutsche Urheberrecht