Skip to main content

Dark Knowledge and Graph Grammars in Automated Software Design

  • Conference paper
Software Language Engineering (SLE 2013)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8225))

Included in the following conference series:

Abstract

Mechanizing the development of hard-to-write and costly-to-maintain software is the core problem of automated software design. Encoding expert knowledge (a.k.a. dark knowledge) about a software domain is central to its solution. We assert that a solution can be cast in terms of the ideas of language design and engineering. Graph grammars can be a foundation for modern automated software development. The sentences of a grammar are designs of complex dataflow systems. We explain how graph grammars provide a framework to encode expert knowledge, produce correct-by-construction derivations of dataflow applications, enable the generation of high-performance code, and improve how software design of dataflow applications can be taught to undergraduates.

As this paper transcribes a keynote presentation, “I” refers to Batory’s personal experience and “We” refers to the experience of all authors.

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. Anderson, E., et al.: LAPACK Users’ Guide. SIAM, Philadelphia (1992)

    MATH  Google Scholar 

  2. Bahcall, J., Piran, T., Weinberg, S.: Dark matter in the universe. In: 4TH Jerusalem Winter School For Theoretical Physics (1987)

    Google Scholar 

  3. Batory, D., Azanza, M., Saraiva, J.: The Objects and Arrows of Computational Design. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 1–20. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  4. Batory, D., Singhal, V., Sirkin, M., Thomas, J.A.: Scalable software libraries. In: SIGSOFT (1993)

    Google Scholar 

  5. Baumgartner, G., et al.: Synthesis of high-performance parallel programs for a class of ab initio quantum chemistry models. Proceedings of the IEEE (2005)

    Google Scholar 

  6. Baxter, I.D.: Design Maintenance Systems. CACM (April 1992)

    Google Scholar 

  7. Blackford, L.S., et al.: ScaLAPACK: a portable linear algebra library for distributed memory computers - design issues and performance. In: SC (1996)

    Google Scholar 

  8. Clement, A., Kapritsos, M., Lee, S., Wang, Y., Alvisi, L., Dahlin, M., Riche, T.: Upright cluster services. In: SOSP (2009)

    Google Scholar 

  9. Curtis, B., Krasner, H., Iscoe, N.: A field study of the software design process for large systems. Comm. ACM (November 1988)

    Google Scholar 

  10. D’Antonio, F.: (October 2003), http://www.docstoc.com/docs/123006845/Introduction-to-Graph-Grammars-DAntonio

  11. Derk, M., DeBrunner, L.: Reconfiguration graph grammar for massively parallel, fault tolerant computers. In: Cuny, J., Engels, G., Ehrig, H., Rozenberg, G. (eds.) Graph Grammars 1994. LNCS, vol. 1073, pp. 185–195. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  12. Dewitt, D.J., Ghandeharizadeh, S., Schneider, D., Hsiao, A.B.H., Rasmussen, R.: The Gamma Database Machine Project. IEEE ToKaDE 2(1) (1990)

    Google Scholar 

  13. Dongarra, J.J., Du Croz, J., Hammarling, S., Duff, I.: A set of level 3 basic linear algebra subprograms. ACM Trans. Math. Software 16(1) (March 1990)

    Google Scholar 

  14. Dowling, J., Cahill, V.: Dynamic software evolution and the k-component model. In: Workshop on Software Evolution at OOPSLA (2001)

    Google Scholar 

  15. Ehrig, H., Pfender, M., Schneider, H.J.: Graph-grammars: An algebraic approach. In: SWAT (1973)

    Google Scholar 

  16. Elemental Team, http://libelemental.org/about/team.html

  17. Feigenspan, J., Batory, D., Riché, T.L.: Is the derivation of a model easier to understand than the model itself? In: ICPC (2012)

    Google Scholar 

  18. Felleisen, M.: Private Correspondence (January 2007)

    Google Scholar 

  19. Ferrucci, F., Tortora, G., Tucci, M., Vitiello, G.: A predictive parser for visual languages specified by relation grammars. In: VL (1994)

    Google Scholar 

  20. Giese, H., Wagner, R.: Incremental model synchronization with triple graph grammars. In: Wang, J., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 543–557. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  21. Gonçalves, R.C., Batory, D., Sobral, J.: ReFlO: An interactive tool for pipe-and-filter domain specification and program generation (submitted 2013)

    Google Scholar 

  22. Green, C., Luckham, D., Balzer, R., Cheatham, T., Rich, C.: Report on a knowledge-based software assistant. Tech. rep., Kestrel Institute (1983)

    Google Scholar 

  23. Green, C.: Private Correspondence (January 2009)

    Google Scholar 

  24. Green, C., Luckham, D., Balzer, R., Cheatham, T., Rich, C.: Report on a knowledge-based software assistant. Kestrel Institute Technical Report KES.U.83.2 (1983)

    Google Scholar 

  25. Grunske, L., Geiger, L., Zündorf, A., Van Eetvelde, N., Van Gorp, P., Varro, D.: Using graph transformation for practical model driven software engineering. In: Model-Driven Software Development. Springer, Heidelberg (2005)

    Google Scholar 

  26. Gunnels, J.A., Gustavson, F.G., Henry, G.M., van de Geijn, R.A.: FLAME: Formal Linear Algebra Methods Environment. ACM Trans. on Math. Softw. (December 2001)

    Google Scholar 

  27. Jones, S.L.P., Santos, A.L.M.: A transformation-based optimiser for haskell. Science of Computer Programming 32(1-3) (1998)

    Google Scholar 

  28. Königs, A., Schürr, A.: Tool integration with triple graph grammars - a survey. Electronic Notes in Theoretical Computer Science 148(1) (2006)

    Google Scholar 

  29. Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2) (1998)

    Google Scholar 

  30. Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6) (1994)

    Google Scholar 

  31. Lohman, G.M.: Grammar-like functional rules for representing query optimization alternatives. In: ACM SIGMOD (1988)

    Google Scholar 

  32. Lowry, M., Philpot, A., Pressburger, T., Underwood, I.: Amphion: Automatic programming for scientific subroutine libraries. In: Raś, Z.W., Zemankova, M. (eds.) ISMIS 1994. LNCS, vol. 869, pp. 326–335. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  33. Maggiolo-Schettini, A., Peron, A.: A graph rewriting framework for statecharts semantics. In: Cuny, J., Engels, G., Ehrig, H., Rozenberg, G. (eds.) Graph Grammars 1994. LNCS, vol. 1073, pp. 107–121. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  34. Marker, B., Batory, D., Shepherd, C.: Dxter: A dense linear algebra program synthesizer. Computer Science report TR-12-17, Univ. of Texas at Austin (2012)

    Google Scholar 

  35. Marker, B., Batory, D., van de Geijn, R.: DSLs, DLA, DxT, and MDE in CSE. In: SECSE (May 2013)

    Google Scholar 

  36. Marker, B., Batory, D., van de Geijn, R.: A case study in mechanically deriving dense linear algebra code. International Journal of High Performance Computing Applications (to appear)

    Google Scholar 

  37. Marker, B., Batory, D.S., van de Geijn, R.A.: Code generation and optimization of distributed-memory dense linear algebra kernels. In: ICCS (2013)

    Google Scholar 

  38. Marker, B., Poulson, J., Batory, D., van de Geijn, R.: Designing linear algebra algorithms by transformation: Mechanizing the expert developer. In: Daydé, M., Marques, O., Nakajima, K. (eds.) VECPAR. LNCS, vol. 7851, pp. 362–378. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  39. Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A language and environment for architecture-based software development and evolution. In: ICSE (1999)

    Google Scholar 

  40. Müller, H.: Private Correspondence (May 2013)

    Google Scholar 

  41. Perry, D.E.: Version control in the inscape environment. In: ICSE (1987)

    Google Scholar 

  42. Poulson, J., Marker, B., van de Geijn, R.A., Hammond, J.R., Romero, N.A.: Elemental: A new framework for distributed memory dense matrix computations. ACM Trans. on Math. Softw. 39(2) (February 2013)

    Google Scholar 

  43. Püschel, M., et al.: SPIRAL: Code generation for DSP transforms. In: Proceedings of the IEEE, special issue on “Program Generation, Optimization, and Adaptation” (2005)

    Google Scholar 

  44. Rekers, J., Schürr, A.: Defining and parsing visual languages with layered graph grammars. Journal of Visual Languages & Computing 8(1) (1997)

    Google Scholar 

  45. Rich, E.A.: Automata, Computability and Complexity: Theory and Applications. Pearson-Prentice Hall (2008)

    Google Scholar 

  46. Riché, T., Goncalves, R., Marker, B., Batory, D.: Pushouts in Software Architecture Design. In: GPCE (2012)

    Google Scholar 

  47. Rozenberg, G.: Handbook of Graph Grammars and Computing by Graph Transformation. Foundations, vol. I. World Scientific (1997)

    Google Scholar 

  48. Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. (2009)

    Google Scholar 

  49. Schürr, A.: Introduction to progress, an attribute graph grammar based specification language. In: Nagl, M. (ed.) WG 1989. LNCS, vol. 411, pp. 151–165. Springer, Heidelberg (1990)

    Chapter  Google Scholar 

  50. Siegmund, J.: Framework for Measuring Program Comprehension. Ph.D. thesis, University of Magdeburg, School of Computer Science (2012)

    Google Scholar 

  51. Siek, J.G., Karlin, I., Jessup, E.R.: Build to order linear algebra kernels. Parallel and Distributed Processing (2008)

    Google Scholar 

  52. Taentzer, G.: AGG: A graph transformation environment for modeling and validation of software. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 446–453. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  53. The LabVIEW Environment, http://www.ni.com/labview/

  54. Thies, W., Karczmarek, M., Amarasinghe, S.P.: StreamIt: A language for streaming applications. In: Conference on Compiler Construction (2002)

    Google Scholar 

  55. Tichy, M., Henkler, S., Holtmann, J., Oberthür, S.: Component story diagrams: A transformation language for component structures in mechatronic systems. In: Workshop on Object-oriented Modeling of Embedded Real-Time Systems, Paderborn, Germany (2008)

    Google Scholar 

  56. Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Sci. Comput. Program. (2002)

    Google Scholar 

  57. Wikipedia: Graph rewriting, http://en.wikipedia.org/wiki/Graph_rewriting

  58. Wikipedia: Component-based software engineering (2013), http://en.wikipedia.org/wiki/Component-based_software_engineering

  59. Wittenburg, K.: Earley-style parsing for relational grammars. In: Visual Languages (1992)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer International Publishing Switzerland

About this paper

Cite this paper

Batory, D., Gonçalves, R., Marker, B., Siegmund, J. (2013). Dark Knowledge and Graph Grammars in Automated Software Design. In: Erwig, M., Paige, R.F., Van Wyk, E. (eds) Software Language Engineering. SLE 2013. Lecture Notes in Computer Science, vol 8225. Springer, Cham. https://doi.org/10.1007/978-3-319-02654-1_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-02654-1_1

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-02653-4

  • Online ISBN: 978-3-319-02654-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics