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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Anderson, E., et al.: LAPACK Users’ Guide. SIAM, Philadelphia (1992)
Bahcall, J., Piran, T., Weinberg, S.: Dark matter in the universe. In: 4TH Jerusalem Winter School For Theoretical Physics (1987)
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)
Batory, D., Singhal, V., Sirkin, M., Thomas, J.A.: Scalable software libraries. In: SIGSOFT (1993)
Baumgartner, G., et al.: Synthesis of high-performance parallel programs for a class of ab initio quantum chemistry models. Proceedings of the IEEE (2005)
Baxter, I.D.: Design Maintenance Systems. CACM (April 1992)
Blackford, L.S., et al.: ScaLAPACK: a portable linear algebra library for distributed memory computers - design issues and performance. In: SC (1996)
Clement, A., Kapritsos, M., Lee, S., Wang, Y., Alvisi, L., Dahlin, M., Riche, T.: Upright cluster services. In: SOSP (2009)
Curtis, B., Krasner, H., Iscoe, N.: A field study of the software design process for large systems. Comm. ACM (November 1988)
D’Antonio, F.: (October 2003), http://www.docstoc.com/docs/123006845/Introduction-to-Graph-Grammars-DAntonio
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)
Dewitt, D.J., Ghandeharizadeh, S., Schneider, D., Hsiao, A.B.H., Rasmussen, R.: The Gamma Database Machine Project. IEEE ToKaDE 2(1) (1990)
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)
Dowling, J., Cahill, V.: Dynamic software evolution and the k-component model. In: Workshop on Software Evolution at OOPSLA (2001)
Ehrig, H., Pfender, M., Schneider, H.J.: Graph-grammars: An algebraic approach. In: SWAT (1973)
Elemental Team, http://libelemental.org/about/team.html
Feigenspan, J., Batory, D., Riché, T.L.: Is the derivation of a model easier to understand than the model itself? In: ICPC (2012)
Felleisen, M.: Private Correspondence (January 2007)
Ferrucci, F., Tortora, G., Tucci, M., Vitiello, G.: A predictive parser for visual languages specified by relation grammars. In: VL (1994)
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)
Gonçalves, R.C., Batory, D., Sobral, J.: ReFlO: An interactive tool for pipe-and-filter domain specification and program generation (submitted 2013)
Green, C., Luckham, D., Balzer, R., Cheatham, T., Rich, C.: Report on a knowledge-based software assistant. Tech. rep., Kestrel Institute (1983)
Green, C.: Private Correspondence (January 2009)
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)
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)
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)
Jones, S.L.P., Santos, A.L.M.: A transformation-based optimiser for haskell. Science of Computer Programming 32(1-3) (1998)
Königs, A., Schürr, A.: Tool integration with triple graph grammars - a survey. Electronic Notes in Theoretical Computer Science 148(1) (2006)
Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2) (1998)
Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6) (1994)
Lohman, G.M.: Grammar-like functional rules for representing query optimization alternatives. In: ACM SIGMOD (1988)
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)
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)
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)
Marker, B., Batory, D., van de Geijn, R.: DSLs, DLA, DxT, and MDE in CSE. In: SECSE (May 2013)
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)
Marker, B., Batory, D.S., van de Geijn, R.A.: Code generation and optimization of distributed-memory dense linear algebra kernels. In: ICCS (2013)
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)
Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A language and environment for architecture-based software development and evolution. In: ICSE (1999)
Müller, H.: Private Correspondence (May 2013)
Perry, D.E.: Version control in the inscape environment. In: ICSE (1987)
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)
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)
Rekers, J., Schürr, A.: Defining and parsing visual languages with layered graph grammars. Journal of Visual Languages & Computing 8(1) (1997)
Rich, E.A.: Automata, Computability and Complexity: Theory and Applications. Pearson-Prentice Hall (2008)
Riché, T., Goncalves, R., Marker, B., Batory, D.: Pushouts in Software Architecture Design. In: GPCE (2012)
Rozenberg, G.: Handbook of Graph Grammars and Computing by Graph Transformation. Foundations, vol. I. World Scientific (1997)
Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. (2009)
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)
Siegmund, J.: Framework for Measuring Program Comprehension. Ph.D. thesis, University of Magdeburg, School of Computer Science (2012)
Siek, J.G., Karlin, I., Jessup, E.R.: Build to order linear algebra kernels. Parallel and Distributed Processing (2008)
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)
The LabVIEW Environment, http://www.ni.com/labview/
Thies, W., Karczmarek, M., Amarasinghe, S.P.: StreamIt: A language for streaming applications. In: Conference on Compiler Construction (2002)
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)
Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Sci. Comput. Program. (2002)
Wikipedia: Graph rewriting, http://en.wikipedia.org/wiki/Graph_rewriting
Wikipedia: Component-based software engineering (2013), http://en.wikipedia.org/wiki/Component-based_software_engineering
Wittenburg, K.: Earley-style parsing for relational grammars. In: Visual Languages (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)