The PROGRES approach: language and environment

Graphs play an important role within many areas of computer science. Rule-based languages, on the other hand, are well-suited for the description of transformation or inference processes on complex data structures. Why not combining two successful principles in one formalism? This is the common vision of the graph transformation community and the main motivation behind the development of PROGRES, a visual language that supports PROgramming with Graph REwriting Systems. The language PROGRES was developed having the following three design goals in mind: (1) Distinguish between data deenition and manipulation activities and use graph schemata to type-check graph transformation rules. (2) Do not rely on the rule-oriented paradigm for all purposes, but support also imperative programming with control structures. (3) Refrain users from the task to guarantee connuence of deened rules by keeping track of rewriting connicts and backtracking out of dead-end derivations. Its accompanying programming environment ooers assistance for creating, analyzing , compiling, and debugging graph transformations as well as for rapid prototyp-ing activities. Being an integrated set of tools with support for intertwining these activities, it combines the exibility of interpreted languages with the safeness of compiled and statically typed languages.

[1]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[2]  Andy Schürr,et al.  Formal Definition and Refinement of UML's Module/Package Concept , 1997, ECOOP Workshops.

[3]  Jan Van den Bussche,et al.  An overview of GOOD , 1992, SGMD.

[4]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[5]  Ramez Elmasri,et al.  GORDAS: A Formal High-Level Query Language for the Entity-Relationship Model , 1981, ER.

[6]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[7]  Andreas J. Winter,et al.  Modules and Updatable Graph Views for PROgrammed Graph REwriting Systems , 1997 .

[8]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[9]  Stuart Kent,et al.  Semantics Through Pictures: towards a diagrammatic semantics for object-oriented modelling notations , 1997 .

[10]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[11]  Ernst-Erich Doberkat,et al.  Software Prototyping mit SETL , 1989 .

[12]  Jennifer Widom,et al.  Active Database Systems: Triggers and Rules For Advanced Database Processing , 1994 .

[13]  Derek J. Hatley,et al.  Strategies for Real-Time System Specification , 1987 .

[14]  Gregor Engels,et al.  Syntax and Semantics of Hybrid Database Languages , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[15]  Andy Schürr,et al.  Rapid Programming with Graph Rewrite Rules , 1994 .

[16]  Katja Cremer,et al.  A tool supporting the re-design of legacy applications , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[17]  Manfred Nagl,et al.  A Tutorial and Bibliographical Survey on Graph Grammars , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[18]  Coln Atkinson,et al.  Object-oriented development: The fusion method , 1996 .

[19]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[20]  Andy Schürr,et al.  Visual programming with graph rewriting systems , 1995, Proceedings of Symposium on Visual Languages.

[21]  Roger King,et al.  Semantic database modeling: survey, applications, and research issues , 1987, CSUR.

[22]  Reiko Heckel,et al.  Ensuring consistency of conditional graph rewriting - a constructive approach , 1995, SEGRAGRA.

[23]  Horst Bunke Attributed Programmed Graph Grammars and Their Application to Schematic Diagram Interpretation , 1982, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[24]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[25]  Richard Wiener,et al.  Software Engineering with MODULA-2 and ADA , 1984 .

[26]  Andy Schürr,et al.  Graph Grammar Engineering with PROGRES , 1995, ESEC.

[27]  Andy Schürr,et al.  GRAS, a Graph-Oriented (Software) Engineering Database System , 1995, Inf. Syst..

[28]  C. M. Woodside,et al.  Trace-based load characterization for the automated development of software performance models , 1998 .

[29]  John Daniels,et al.  Designing Object Systems , 1994 .

[30]  Christoph Beierle Concepts, Implementation, and Applications of a Typed Logic Programming Language , 1995, Logic Programming: Formal Methods and Practical Applications.

[31]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[32]  Peter J. Robinson Hierarchical object-oriented design , 1992 .

[33]  Andy Schürr,et al.  GRAS, a Graph-Oriented (Software) Engineering Database System , 1995, Inf. Syst..

[34]  Gregor Engels,et al.  Graph Grammar Engineering: A Software Specification Method , 1986, Graph-Grammars and Their Application to Computer Science.

[35]  A. Schfürr,et al.  Programmed graph replacement systems , 1997 .

[36]  Gregor Snelting,et al.  The PSG system: from formal language definitions to interactive programming environments , 1986, TOPL.

[37]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[38]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[39]  Edward Yourdon,et al.  Modern structured analysis , 1989 .

[40]  Tiziana Catarci,et al.  QBD*: A Graphical Query Language with Recursion , 1989, IEEE Trans. Software Eng..

[41]  Alan Cameron Wills,et al.  Extending fusion: practical rigor and refinement , 1995 .

[42]  Andreas Zamperoni,et al.  GRIDS-GRaph-based, integrated development of software: integrating different perspectives of software engineering , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[43]  Gabriele Taentzer,et al.  Amalgamated Graph Transformations and Their Use for Specifying AGG - an Algebraic Graph Grammar System , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[44]  Antoni Diller,et al.  Z - an introduction to formal methods , 1990 .