Abstract
GP (for Graph Programs) is a rule-based, nondeterministic programming language for solving graph problems at a high level of abstraction, freeing programmers from handling low-level data structures. The core of GP consists of four constructs: single-step application of a set of conditional graph-transformation rules, sequential composition, branching and iteration. This paper gives an overview on the GP project. We introduce the language by discussing a sequence of small programming case studies, formally explain conditional rule schemata which are the building blocks of programs, and present a semantics for GP in the style of structural operational semantics. A special feature of the semantics is how it uses the notion of finitely failing programs to define powerful branching and iteration commands. We also describe GP’s prototype implementation.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aït-Kaci, H.: Warren’s Abstract Machine: A Tutorial Reconstruction. MIT Press, Cambridge (1991)
Bang-Jensen, J., Gutin, G.: Digraphs: Theory, Algorithms and Applications. Springer, Heidelberg (2000)
Clark, K.L.: Negation as failure. In: Gallaire, H., Minker, J. (eds.) Logic and Data Bases, pp. 293–322. Plenum Press (1978)
Duffin, R.J.: Topology of series-parallel networks. Journal of Mathematical Analysis and Applications 10, 303–318 (1965)
Ehrig, H., Habel, A.: Graph grammars with application conditions. In: Rozenberg, G., Salomaa, A. (eds.) The Book of L, pp. 87–100. Springer, Heidelberg (1986)
Ermel, C., Rudolf, M., Taentzer, G.: The AGG approach: Language and environment. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) Handbook of Graph Grammars and Computing by Graph Transformation, vol. 2, ch. 14, pp. 551–603. World Scientific, Singapore (1999)
Garey, M.R., Johnson, D.S.: Computers and Intractability. W.H. Freeman and Company, New York (1979)
Geiß, R., Batz, G.V., Grund, D., Hack, S., Szalkowski, A.: GrGen: A fast SPO-based graph rewriting tool. In: Corradini, A., Ehrig, H., Montanari, U., Ribeiro, L., Rozenberg, G. (eds.) ICGT 2006. LNCS, vol. 4178, pp. 383–397. Springer, Heidelberg (2006)
Habel, A., Plump, D.: Computational completeness of programming languages based on graph transformation. In: Honsell, F., Miculan, M. (eds.) FOSSACS 2001. LNCS, vol. 2030, pp. 230–245. Springer, Heidelberg (2001)
Habel, A., Plump, D.: Relabelling in graph transformation. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 135–147. Springer, Heidelberg (2002)
Heer, J., Card, S.K., Landay, J.A.: Prefuse: A toolkit for interactive information visualization. In: Proc. SIGCHI Conference on Human Factors in Computing Systems (CHI 2005), pp. 421–430. ACM Press, New York (2005)
Kleinberg, J., Tardos, É.: Algorithm Design. Addison Wesley, Reading (2006)
Manning, G., Plump, D.: The GP programming system. In: Proc. Graph Transformation and Visual Modelling Techniques (GT-VMT 2008). Electronic Communications of the EASST, vol. 10 (2008)
Manning, G., Plump, D.: The York abstract machine. In: Proc. Graph Transformation and Visual Modelling Techniques (GT-VMT 2006). Electronic Notes in Theoretical Computer Science, vol. 211, pp. 231–240. Elsevier, Amsterdam (2008)
Nickel, U., Niere, J., Zündorf, A.: The FUJABA environment. In: Proc. International Conference on Software Engineering (ICSE 2000), pp. 742–745. ACM Press, New York (2000)
Nielson, H.R., Nielson, F.: Semantics with Applications: An Appetizer. Springer, Heidelberg (2007)
Peitgen, H.-O., Jürgens, H., Saupe, D.: Chaos and Fractals, 2nd edn. Springer, Heidelberg (2004)
Plotkin, G.D.: A structural approach to operational semantics. Journal of Logic and Algebraic Programming 60–61, 17–139 (2004)
Plump, D., Steinert, S.: Towards graph programs for graph algorithms. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) ICGT 2004. LNCS, vol. 3256, pp. 128–143. Springer, Heidelberg (2004)
Plump, D., Steinert, S.: The semantics of graph programs (submitted for publication, 2009)
Rensink, A.: The GROOVE simulator: A tool for state space generation. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 479–485. Springer, Heidelberg (2004)
Reynolds, J.C.: Theories of Programming Languages. Cambridge University Press, Cambridge (1998)
Schürr, A.: Operationales Spezifizieren mit programmierten Graphersetzungssystemen. Deutscher Universitäts-Verlag (1991) (in German)
Schürr, A., Winter, A., Zündorf, A.: The PROGRES approach: Language and environment. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) Handbook of Graph Grammars and Computing by Graph Transformation, vol. 2, ch. 13, pp. 487–550. World Scientific, Singapore (1999)
Steinert, S.: The Graph Programming Language GP. PhD thesis, The University of York (2007)
Taentzer, G., et al.: Generation of Sierpinski triangles: A case study for graph transformation tools. In: Schürr, A., Nagl, M., Zündorf, A. (eds.) AGTIVE 2007. LNCS, vol. 5088, pp. 514–539. Springer, Heidelberg (2008)
Winter, A.J., Kullbach, B., Riediger, V.: An overview of the GXL graph exchange language. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 324–336. Springer, Heidelberg (2002)
Zündorf, A.: Graph pattern matching in PROGRES. In: Cuny, J., Engels, G., Ehrig, H., Rozenberg, G. (eds.) Graph Grammars 1994. LNCS, vol. 1073, pp. 454–468. Springer, Heidelberg (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Plump, D. (2009). The Graph Programming Language GP. In: Bozapalidis, S., Rahonis, G. (eds) Algebraic Informatics. CAI 2009. Lecture Notes in Computer Science, vol 5725. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03564-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-03564-7_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03563-0
Online ISBN: 978-3-642-03564-7
eBook Packages: Computer ScienceComputer Science (R0)