Dark Knowledge and Graph Grammars in Automated Software Design

  • Don Batory
  • Rui Gonçalves
  • Bryan Marker
  • Janet Siegmund
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8225)


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.


Dark Matter Graph Transformation Graph Grammar Visual Language Model Drive Engineer 
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.
    Anderson, E., et al.: LAPACK Users’ Guide. SIAM, Philadelphia (1992)zbMATHGoogle Scholar
  2. 2.
    Bahcall, J., Piran, T., Weinberg, S.: Dark matter in the universe. In: 4TH Jerusalem Winter School For Theoretical Physics (1987)Google Scholar
  3. 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)CrossRefGoogle Scholar
  4. 4.
    Batory, D., Singhal, V., Sirkin, M., Thomas, J.A.: Scalable software libraries. In: SIGSOFT (1993)Google Scholar
  5. 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. 6.
    Baxter, I.D.: Design Maintenance Systems. CACM (April 1992)Google Scholar
  7. 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. 8.
    Clement, A., Kapritsos, M., Lee, S., Wang, Y., Alvisi, L., Dahlin, M., Riche, T.: Upright cluster services. In: SOSP (2009)Google Scholar
  9. 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. 10.
  11. 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)CrossRefGoogle Scholar
  12. 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. 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. 14.
    Dowling, J., Cahill, V.: Dynamic software evolution and the k-component model. In: Workshop on Software Evolution at OOPSLA (2001)Google Scholar
  15. 15.
    Ehrig, H., Pfender, M., Schneider, H.J.: Graph-grammars: An algebraic approach. In: SWAT (1973)Google Scholar
  16. 16.
  17. 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. 18.
    Felleisen, M.: Private Correspondence (January 2007)Google Scholar
  19. 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. 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)CrossRefGoogle Scholar
  21. 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. 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. 23.
    Green, C.: Private Correspondence (January 2009)Google Scholar
  24. 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. 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. 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. 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. 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. 29.
    Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2) (1998)Google Scholar
  30. 30.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6) (1994)Google Scholar
  31. 31.
    Lohman, G.M.: Grammar-like functional rules for representing query optimization alternatives. In: ACM SIGMOD (1988)Google Scholar
  32. 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)CrossRefGoogle Scholar
  33. 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)CrossRefGoogle Scholar
  34. 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. 35.
    Marker, B., Batory, D., van de Geijn, R.: DSLs, DLA, DxT, and MDE in CSE. In: SECSE (May 2013)Google Scholar
  36. 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. 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. 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)CrossRefGoogle Scholar
  39. 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. 40.
    Müller, H.: Private Correspondence (May 2013)Google Scholar
  41. 41.
    Perry, D.E.: Version control in the inscape environment. In: ICSE (1987)Google Scholar
  42. 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. 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. 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. 45.
    Rich, E.A.: Automata, Computability and Complexity: Theory and Applications. Pearson-Prentice Hall (2008)Google Scholar
  46. 46.
    Riché, T., Goncalves, R., Marker, B., Batory, D.: Pushouts in Software Architecture Design. In: GPCE (2012)Google Scholar
  47. 47.
    Rozenberg, G.: Handbook of Graph Grammars and Computing by Graph Transformation. Foundations, vol. I. World Scientific (1997)Google Scholar
  48. 48.
    Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. (2009)Google Scholar
  49. 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)CrossRefGoogle Scholar
  50. 50.
    Siegmund, J.: Framework for Measuring Program Comprehension. Ph.D. thesis, University of Magdeburg, School of Computer Science (2012)Google Scholar
  51. 51.
    Siek, J.G., Karlin, I., Jessup, E.R.: Build to order linear algebra kernels. Parallel and Distributed Processing (2008)Google Scholar
  52. 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)CrossRefGoogle Scholar
  53. 53.
    The LabVIEW Environment,
  54. 54.
    Thies, W., Karczmarek, M., Amarasinghe, S.P.: StreamIt: A language for streaming applications. In: Conference on Compiler Construction (2002)Google Scholar
  55. 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. 56.
    Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Sci. Comput. Program. (2002)Google Scholar
  57. 57.
  58. 58.
    Wikipedia: Component-based software engineering (2013),
  59. 59.
    Wittenburg, K.: Earley-style parsing for relational grammars. In: Visual Languages (1992)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Don Batory
    • 1
  • Rui Gonçalves
    • 2
  • Bryan Marker
    • 1
  • Janet Siegmund
    • 3
  1. 1.University of Texas at AustinAustinUSA
  2. 2.Universidade do MinhoBragaPortugal
  3. 3.University of PassauGermany

Personalised recommendations