Designing arithmetic circuits by refinement in Ruby

  • Geraint Jones
  • Mary Sheeran
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 669)


This paper presents in some detail the systematic derivation of a static bit-level parallel algorithm to implement multiplication of integers, that is to say one which might be implemented as an electronic circuit. The circuit is well known, but the derivation shows that its design can be seen as the consequence of decisions made (and explained) in terms of the abstract algorithm. The systematic derivation serves both as an explanation of the circuit, and as a demonstration that it is correct ‘by construction’. We believe that the technique is applicable to a wide range of similar algorithms.


Representation Changer Binary Number Parallel Composition Functional Programming Full Adder 
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.
    R. C. Backhouse, P. J. de Bruin, P. Hoogendijk, G. Malcolm, E. Voermans and J. C. S. P. van der Woude, A relational theory of datatypes, unpublished.Google Scholar
  2. 2.
    Richard Bird, Ain Introduction to the Theory of Lists, in M. Broy (ed.), Logic of programming and calculi of discrete design, NATO advanced study institutes, Series F: Computer and systems sciences, Springer-Verlag, 1987. pp. 5–42.Google Scholar
  3. 3.
    Richard Bird, Lectures on constructive functional programming, in M. Broy (ed.), Constructive methods in computing science, NATO advanced study institutes, Series F: Computer and systems sciences, Springer-Verlag, 1989.Google Scholar
  4. 4.
    D. Borrione and A. Salem, Proving an on-line multiplier with OBJ and TACHE: a practical experience, in [6].Google Scholar
  5. 5.
    S-K. Chin, Verified synthesis functions for negabinary arithmetic hardware, in [6].Google Scholar
  6. 6.
    L. J. M. Claesen, Applied formal methods for correct VLSI design, North-Holland, 1989.Google Scholar
  7. 7.
    Rogardt Heldal, Carsten Kehler Holst, Phil Wadler (eds.), Functional programming, Glasgow 1991, Springer-Verlag (Workshops in Computing), 1992.Google Scholar
  8. 8.
    Graham Hutton and Ed Voermans, A calculational theory of pers as types, in [7].Google Scholar
  9. 9.
    Geraint Jones and Mary Sheeran, Relations and Refinement in Circuit Design in Carroll Morgan and J. C. P. Woodcock (eds.), Proceedings of the 3rd Refinement Workshop, 9–11 January 1990, Springer-Verlag (Workshops in Computing), 1991. pp. 133–152.Google Scholar
  10. 10.
    Geraint Jones and Mary Sheeran, Circuit design in Ruby, in J0rgen Staunstrup (ed.), Formal methods for VLSI design, North-Holland, 1990. pp. 13–70.Google Scholar
  11. 11.
    Mark B. Josephs, Rudolph H. Mak, Jan Timen Udding, Tom Verhoeff and Jelio T. Yantchev, High-level design of an asynchronous packet routing chip, in [16].Google Scholar
  12. 12.
    L. G. L. T. Meertens, Constructing a calculus of programs, in J. L. A. van de Snepscheut (ed.), Mathematics of program construction, Springer-Verlag LNCS 375, 1989.Google Scholar
  13. 13.
    Mary Sheeran, Designing regular array architectures using higher-order functions, in J.-P. Jouannaud (ed.), Functional programming languages and computer architecture, Springer-Verlag LNCS 201, 1985. pp. 220–237.Google Scholar
  14. 14.
    Mary Sheeran, A note on abstraction in Ruby, in [7].Google Scholar
  15. 15.
    M. Simonis, Formal verification of multipliers in [6].Google Scholar
  16. 16.
    Jørgen Staunstrup and R. Sharp (eds.), Designing Correct Circuits, Lyngby 1992, IFIP Transactions A, Volume 5, North-Holland, 1992.Google Scholar
  17. 17.
    D. Verkest, L. Claesen and H. De Man, A proof of the non-restoring division algorithm and its implementation on the Cathedral-II ALU, in [16].Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Geraint Jones
    • 1
  • Mary Sheeran
    • 2
  1. 1.Programming Research GroupOxford University Computing LaboratoryOxfordEngland
  2. 2.InformationsbehandlingChalmers Tekniska HögskolaGöteborgSweden

Personalised recommendations