Skip to main content

Generating Spreadsheet-Like Tools from Strong Attribute Grammars

  • Conference paper
Generative Programming and Component Engineering (GPCE 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2830))

Abstract

This paper presents techniques for the formal specification and efficient incremental implementation of spreadsheet-like tools. The spreadsheets are specified by strong attribute grammars. In this style of attribute grammar programming every single inductive computation is expressed within the attribute grammar formalism. Well-known attribute grammar techniques are used to reason about such grammars. For example, ordered scheduling algorithms can be used to statically guarantee termination of the attribute grammars and to derive efficient implementations. A strong attribute grammar for a spreadsheet is defined and the first incremental results are presented.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bradley, N.: The XML Companion. Addison Wesley, Reading (1998)

    Google Scholar 

  2. Cockett, R., Fukushima, T.: About Charity. Yellow Series Report No. 92/480/18, Department of Computer Science, University of Calgary (June 1992)

    Google Scholar 

  3. Carle, A., Pollock, L.: On the Optimality of Change Propagation for Incremental Evaluation of Hierarchical Attribute Grammars. ACM Transactions on Programming Languages and Systems 18(1), 16–29 (1996)

    Article  Google Scholar 

  4. de Moor, O., Backhouse, K., Swierstra, D.: 1st-Class Attribute Grammars. In: Parigot, D., Mernik, M. (eds.) 3rd Workshop on Attribute Grammars and their Applications,WAGA 1999, Ponte de Lima, Portugal, July 2000, pp. 1–20 (2000) INRIA Rocquencourt

    Google Scholar 

  5. de Moor, O., Peyton-Jones, S., van Wyk, E.: Aspect-Oriented Compilers. In: Czarnecki, K., Eisenecker, U.W. (eds.) GCSE 1999. LNCS, vol. 1799, p. 121. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  6. W3CWorking Draft. XQuery 1.0: An XML Query Language (April 2002)

    Google Scholar 

  7. Gray, R.W., Heuring, V.P., Levi, S.P., Sloane, A.M., Waite, W.M.: Eli: A Complete, Flexible Compiler Construction System. Communications of the ACM 35(2), 121–131 (1992)

    Article  Google Scholar 

  8. Hedin, G.: Reference Attributed Grammars. In: Parigot, D., Mernik, M. (eds.) 2nd Workshop on Attribute Grammars and their Applications,WAGA 1999, Amsterdam, The Netherlands, March 1999, pp. 153–172 (1999) INRIA rocquencourt

    Google Scholar 

  9. Johnsson, T.: Attribute grammars as a functional programming paradigm. In: Kahn, G. (ed.) FPCA 1987. LNCS, vol. 274, pp. 154–173. Springer, Heidelberg (1987)

    Google Scholar 

  10. Jourdan, M., Parigot, D., Julié, C., Durin, O., Le Bellec, C.: Design, implementation and evaluation of the FNC-2 attribute grammar system. In: ACM SIGPLAN 1990 Conference on Programming Languages Design and Implementation, vol. 25, pp. 209–222. ACM, New York (1990)

    Chapter  Google Scholar 

  11. Kastens, U.: Ordered attribute grammars. Acta Informatica 13, 229–256 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  12. MatthijsKuiper, D.S.: Using attribute grammars to derive efficient functional programs. In: Computing Science in the Netherlands CSN 1987 (November 1987)

    Google Scholar 

  13. Kuiper, M., Saraiva, J.: Lrc - A Generator for Incremental Language Oriented Tools. In: Koskimies, K. (ed.) CC 1998. LNCS, vol. 1383, pp. 298–301. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  14. Kastens, U., Waite, W.: Modularity and reusability in attribute grammars. Acta Informatica 31, 601–627 (1994)

    Article  MATH  Google Scholar 

  15. Mernik, M., Lenič, M., Avdičaušević, E., Žumer, V.: Lisa: An interactive environment for programming language development. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 1–4. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  16. Paakki, J.: Attribute Grammar Paradigms - A High-Level Methodology in Language Implementation. ACM Computing Surveys 27(2), 196–255 (1995)

    Article  Google Scholar 

  17. Reps, T., Teitelbaum, T.: The Synthesizer Generator. Springer, Heidelberg (1989)

    Google Scholar 

  18. Reps, T., Teitelbaum, T., Demers, A.: Incremental context-dependent analysis for language-based editors. ACM Transactions on Programming Languages and Systems 5(3), 449–477 (1983)

    Article  Google Scholar 

  19. Swierstra, S.D., Azero, P.: Attribute Grammars in a Functional Style. In: Systems Implementation 2000, Berlin. Chapman & Hall, Boca Raton (1998)

    Google Scholar 

  20. Saraiva, J.: Purely Functional Implementation of Attribute Grammars. PhD thesis, Department of Computer Science, Utrecht University, The Netherlands (December 1999)

    Google Scholar 

  21. Saraiva, J.: Component-based Programming for Higher-Order Attribute Grammars. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 268–282. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  22. Swierstra, D., Azero, P., Saraiva, J.: Designing and Implementing Combinator Languages. In: Swierstra, S.D., Oliveira, J.N. (eds.) AFP 1998. LNCS, vol. 1608, pp. 150–206. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  23. Saraiva, J., Swierstra, D., Kuiper, M.: Functional Incremental Attribute Evaluation. In: Watt, D.A. (ed.) CC 2000. LNCS, vol. 1781, pp. 279–294. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  24. Turner, D.A.: Elementary strong functional programming. In: Hartel, P.H., Plasmeijer, R. (eds.) FPLE 1995. LNCS, vol. 1022, pp. 1–13. Springer, Heidelberg (1996)

    Google Scholar 

  25. Vogt, H., Swierstra, D., Kuiper, M.: Higher order attribute grammars. In: ACM SIGPLAN 1989 Conference on Programming Language Design and Implementation, July 1989, vol. 24, pp. 131–145. ACM, New York (1989)

    Chapter  Google Scholar 

  26. Van Wyk, E., de Moor, O., Backhouse, K., Kwiatkowsk, P.: Forwarding in attribute grammars for modular language design. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 128–142. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  27. Wadler, P.: Deforestation: transforming programs to eliminate trees. Theoretical Computer Science 73, 231–248 (1990)

    Article  MATH  MathSciNet  Google Scholar 

  28. Swierstra, D., Azero, P., Saraiva, J.: Designing and Implementing Combinator Languages. In: Swierstra, S.D., Oliveira, J.N. (eds.) AFP 1998. LNCS, vol. 1608, pp. 150–206. Springer, Heidelberg (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Saraiva, J., Swierstra, D. (2003). Generating Spreadsheet-Like Tools from Strong Attribute Grammars. In: Pfenning, F., Smaragdakis, Y. (eds) Generative Programming and Component Engineering. GPCE 2003. Lecture Notes in Computer Science, vol 2830. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39815-8_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39815-8_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20102-1

  • Online ISBN: 978-3-540-39815-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics