Unification of Arrays in Spreadsheets with Logic Programming

  • Philip T. Cox
  • Patrick Nicholson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4902)


Unification, one of the key processes underlying logic programming (LP), provides a powerful mechanism for assembling and disassembling structures, lists in particular, by matching patterns. In recent work, we showed how spreadsheets can be enhanced by adding a visual form of LP in which lists, the fundamental structures of LP, are replaced by rectangular arrays, the fundamental structures of spreadsheets. The benefits include enhanced programmability and a way to specify high level templates for spreadsheet structures. Here, we focus on the structure of arrays, and describe the array unification algorithm underlying our current implementation.


Spreadsheet logic programming array unification 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abraham, R., Erwig, M.: Inferring templates from spreadsheets. In: 28th ACM International Conference on Software Engineering, Shanghai, China, pp. 182–191 (May 2006)Google Scholar
  2. 2.
    Bricklin, D., Frankston, R.: VisiCalc: Information from its creators (July 2007),
  3. 3.
    Burnett, M., Atwood, J., Djang, R., Gottfried, H., Reichwein, J., Yang, S.: Forms/3: A First-Order Visual Language to Explore the Boundaries of the Spreadsheet Paradigm. Journal of Functional Programming 11(2), 155–206 (2001)zbMATHGoogle Scholar
  4. 4.
    Cervesato, I.: A Spreadsheet for Everyday Symbolic Reasoning. In: AAAI Fall Symposium on Integrating Reasoning into Everyday Applications, Arlington VA, pp. 1–8 (October 2006)Google Scholar
  5. 5.
    Chamberlin, D.D.: The “single-assignment” approach to parallel processing. In: Proc. AFIPS Fall Joint Computer Conference, Las Vegas NV, pp. 263–270. AFIPS Press, Montvale, N.J (1971)Google Scholar
  6. 6.
    Cox, P.T.: Enhancing the Programmability of Spreadsheets with Logic Programming. In: Proc. IEEE Symposium on Visual Languages and Human-Centric Computing, Coeur d’Alène ID (to appear, 2007)Google Scholar
  7. 7.
    Erwig, M., Abraham, R., Cooperstein, I., Kollmansberger, S.: Gencel: A Program Generator for Correct Spreadsheets. Journal of Functional Programming 16(3), 293–325 (2006)zbMATHCrossRefGoogle Scholar
  8. 8.
    Erwig, M., Burnett, M.: Adding Apples and Oranges. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 173–191. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  9. 9.
    Farkas, Z.: LISTLOG - A Prolog Extension for List Processing. In: Ehrig, H., Levi, G., Montanari, U. (eds.) TAPSOFT 1987 and CFLP 1987. LNCS, vol. 250, pp. 82–95. Springer, Heidelberg (1987)Google Scholar
  10. 10.
    Gupta, G., Akhter, S.: Knowledgesheet: A graphical spreadsheet interface for interactively developing a class of constraint programs. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 308–323. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  11. 11.
    Paine, J.: Excelsior: Bringing the benefits of modularisation to Excel. In: Proc. EuSpRIG 2005, Greenwich UK (July 2005)Google Scholar
  12. 12.
    Panko, R.R.: Spreadsheets and Sarbanes-Oxley: Regulations, Risks, and Control Frameworks. Communications of the Association for Information Systems 17(29), 647–676 (2006)Google Scholar
  13. 13.
    Peyton Jones, S., Blackwell, A., Burnett, M.: A user-centred approach to functions in Excel. In: 8th ACM SIGPLAN International Conference on Functional Programming, Uppsala, Sweden, pp. 165–176 (August 2003)Google Scholar
  14. 14.
    Ramakrishnan, C.R., Ramakrishnan, I.V., Warren, D.S.: Deductive Spreadsheets Using Tabled Logic Programming. In: Etalle, S., Truszczyński, M. (eds.) ICLP 2006. LNCS, vol. 4079, pp. 391–405. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Ruthruff, J.R., Prabhakararao, S., Reichwein, J., Cook, C., Creswic, E., Burnett, M.: Interactive, visual fault localization support for end-user programmers. Journal of Visual Languages & Computing 16(1-2), 3–40 (2005)CrossRefGoogle Scholar
  16. 16.
    Spenke, M., Beilken, C.: A spreadsheet interface for logic programming. In: ACM Conference on Human Factors in Computing Systems, Austin TX, pp. 75–80 (1991)Google Scholar
  17. 17.
    Swedish Institute of Computer Science, SICStus Prolog,
  18. 18.
    van Emden, M.H., Ohki, M., Takeuchi, A.: Spreadsheets with Incremental Queries as a User Interface for Logic Programming, ICOT Technical Report, TR-44 (October 1985)Google Scholar
  19. 19.
    Wilson, S.: Building a Visual Programming Language, MacTech 13(4) (July 2007),

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Philip T. Cox
    • 1
  • Patrick Nicholson
    • 1
  1. 1.Faculty of Computer ScienceDalhousie UniversityHalifaxCanada

Personalised recommendations