On addition schemes

  • Srećko Brlek
  • Pierre Castéran
  • Robert Strandh
CCPSD Colloquium On Combining Paradigms For Software Development
Part of the Lecture Notes in Computer Science book series (LNCS, volume 494)


We review a class of addition chains that are suboptimal but close to optimal. Addition chains in this class are generated by a very efficient algorithm. We present evidence that traditional algorithms for exponentiation may in fact be slower than a method where an addition chain is first constructed, then applied and finally discarded. Experimental evidence definitely indicates this to be true for slightly more complex domains than the integers.

To achieve such a result, we define an interpretation of addition chains as sequences of function applications using continuation passing style which can be compiled by transformation into sequences of simple “combinators”. Finally, we propose optimization techniques for addition chains in this representation.


addition chains continuations programming languages semantics compilation of functional languages Scheme programming language semi-numerical algorithms 


  1. [1]
    F. Bergeron, J. Berstel, S. Brlek, A Unifying Approach to the Generation of Addition Chains, Proceedings of the XV Latino-American Conference on Informatics, 10–14 July (1989) 29—38.Google Scholar
  2. [2]
    F. Bergeron, J. Berstel, S. Brlek, Efficient Computation of Addition Chains, Submitted.Google Scholar
  3. [3]
    F. Bergeron, J. Berstel, S. Brlek, C. Duboc, Addition Chains using Continued Fractions, Journal of Algorithms (1988) 403–412.Google Scholar
  4. [4]
    D. Bjørner, A.P. Ershov, N.D. Jones (eds.) Partial Evaluation and Mixed Computation, North Holland, (1988).Google Scholar
  5. [5]
    F. Bergeron, J. Olivos, Vectorial Addition Chains Using Euclid's Algorithm, (1989) Submitted.Google Scholar
  6. [6]
    A. Brauer, On Addition Chains, Bull.Amer.Math.Soc. 45, (1939) 736–739.Google Scholar
  7. [7]
    S. Brlek, P. Castéran, R. Strandh, Chaînes d'additions et structures de contrôle, Journées JFLA 91, Gresse-en-Vercors, France, January 28–29, (1991).Google Scholar
  8. [8]
    M. Castan, M.-H. Durand, M. Lemaître, A Set of Combinators for Abstraction in Linear Space, Information Processing Letter 24, (1987) 183–188Google Scholar
  9. [9]
    H.B. Curry, R. Feys, Combinatory Logic, North Holland (1974).Google Scholar
  10. [10]
    P. Downey, B. Leong, R. Sethi, Computing Sequences with Additions Chains, SIAM J.Computing 3, (1974) 1–10.Google Scholar
  11. [11]
    R.K. Dybvig, The Scheme Programming Language, Prentice Hall (1987).Google Scholar
  12. [12]
    P. Fradet, D. Le Metayer, Compilation of Functional Languages by Program Transformation, INRIA Research, Report 1040 (1989).Google Scholar
  13. [13]
    D.E. Knuth, The Art of Computer Programming, vol.2, Addison Wesley (1981).Google Scholar
  14. [14]
    D. Kranz, R. Kelsey, J.A. Rees, P. Hudak, J. Philbin, N.I. Adams, Orbit: An Optimizing Compiler for Scheme, Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, July 1986.Google Scholar
  15. [15]
    A. Scholz, Jahresbericht, Deutsche Math.-Verein. 47, (1937) 41.Google Scholar
  16. [16]
    J.E. Stoy, The Scott-Strachey Approach to Programming Language Theory, MIT Press, Cambridge (1977).Google Scholar
  17. [17]
    G.L. Steele, G.J. Sussman, Scheme: an Interpreter for the Extended Lambdacalculus, Memo 349, MIT Artificial Intelligence Laboratory (1975).Google Scholar
  18. [18]
    M. Wand, Continuation-Based Program Transformation Strategies, J. of Computer Languages, (1978) 241–263.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Srećko Brlek
    • 1
  • Pierre Castéran
    • 2
  • Robert Strandh
    • 2
  1. 1.LACIM, Dépt. de Math. et Info.Univ. du Québec à MontréalMontréalCanada
  2. 2.LABRI, U.F.R Math. et Info.Université Bordeaux ITalence CedexFrance

Personalised recommendations