A high level language for specifying graph based languages and their programming environments

The authors describe a high level language for specifying programming environments for programming languages that are based on directed attributed graphs. The high level language allows the specifier to describe views of portions of a program written in such a graph-based language, the editing operations used to create the program, animations of the execution of the program, and sufficient detail of the execution semantics to support the animations. The use of the specification language is demonstrated with a simple example of a graph-based language. The automatic generation of the programming environment is described for such graph based languages from descriptions made in the specification language. The specification language is based on using a grammar to describe the components of the graph based language and using a first-order logic based language to describe state changes in editing, execution, and animation.<<ETX>>

[1]  John T. Stasko Simplifying algorithm animation with Tango , 1990, Proceedings of the 1990 IEEE Workshop on Visual Languages.

[2]  Joe Marks A syntax and semantics for network diagrams , 1990, Proceedings of the 1990 IEEE Workshop on Visual Languages.

[3]  Alexandru Nicolau,et al.  A language for conveying the aliasing properties of dynamic, pointer-based data structures , 1994, Proceedings of 8th International Parallel Processing Symposium.

[4]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[5]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[6]  John Hershberger,et al.  Animation of Geometric Algorithms: A Video Review , 1993 .

[7]  N. Hunt,et al.  IDF: A graphical data flow programming language for image processing and computer vision , 1990, 1990 IEEE International Conference on Systems, Man, and Cybernetics Conference Proceedings.

[8]  Charles N. Fischer,et al.  Crafting a Compiler , 1988 .

[9]  John Hershberger,et al.  Color and sound in algorithm animation , 1992, Computer.

[10]  Walter F. Tichy,et al.  Edge: An extendible graph editor , 1990, Softw. Pract. Exp..

[11]  Robert J. K. Jacob,et al.  A State Transition Diagram Language for Visual Programming , 1985, Computer.

[12]  Robert M. Keller,et al.  Data Flow Program Graphs , 1982, Computer.

[13]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[14]  Ioannis G. Tollis,et al.  Algorithms for automatic graph drawing: an annotated bibliography , 1994 .

[15]  B. VanVoorst,et al.  Toward visual programming languages for steering scientific computations , 1994, IEEE Computational Science and Engineering.

[16]  James C. Browne,et al.  Formulation and Programming of Parallel Computations: A Unified Approach , 1985, International Conference on Parallel Processing.

[17]  Erich Gamma,et al.  Design and Implementation of ET++, a Seamless Object-Oriented Application Framework , 1989, Struct. Program..

[18]  James J. Horning,et al.  Formal specification as a design tool , 1980, POPL '80.

[19]  Aloysius K. Mok,et al.  Modechart: A Specification Language for Real-Time Systems , 1994, IEEE Trans. Software Eng..

[20]  H. El-Rewini,et al.  Task Grapher: A Tool for Scheduling Parallel Program Tasks , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[21]  Simon Crosby,et al.  A tool for graphical network modeling and analysis , 1992, IEEE Software.

[22]  Michael Robert Levy Data types with sharing and circularity. , 1978 .

[23]  Peter Newton,et al.  A graphical retargetable parallel programming environment and its efficient implementation , 1993, UTCS publications.

[24]  David Notkin The GANDALF project , 1985, J. Syst. Softw..

[25]  James C. Spohrer,et al.  KidSim: programming agents without a programming language , 1994, CACM.

[26]  Paul R. Calder,et al.  Composing user interfaces with InterViews , 1989, Computer.

[27]  Danny B. Lange A Formal Approach to Hypertext using Post-Prototype Formal Specification , 1990, VDM Europe.

[28]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[29]  Stephen J. Mellor,et al.  Object Oriented Systems Analysis: Modeling the World in Data , 1988 .

[30]  Paul S. Barth An object-oriented approach to graphical interfaces , 1986, TOGS.

[31]  F. Jahanian,et al.  Semantics of Modechart in real time logic , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[32]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[33]  Uli H. Chi Formal Specification of User Interfaces: A Comparison and Evaluation of Four Axiomatic Approaches , 1985, IEEE Transactions on Software Engineering.

[34]  Gerd Szwillus GEGS - A System For Generating Graphical Editors , 1987 .

[35]  Jonathan P. Bowen Formal Specification of Window Systems , 1989 .

[36]  Jonathan Schaeffer,et al.  The Enterprise Distributed Programming Model , 1992, Programming Environments for Parallel Computing.

[37]  Herbert Göttler,et al.  Graph Grammars, a new Paradigm for Implementing Visual Languages , 1989, ESEC.

[38]  Tim Teitelbaum The Cornell Program Synthesizer: a syntax-directed programming environment , 1979, SIGP.

[39]  F. Burton,et al.  Manipulation Multilinked Data Structures in a Pure Functional Language , 1990, Software, Practice & Experience.

[40]  Gruia-Catalin Roman,et al.  A declarative approach to visualizing concurrent computations , 1989, Computer.

[41]  Stephen S. Yau,et al.  An Integrated Life-Cycle Model for Software Maintenance , 1988, IEEE Trans. Software Eng..

[42]  Sten Minör,et al.  Interacting with Structure-Oriented Editors , 1992, Int. J. Man Mach. Stud..

[43]  Daniel D. Hils,et al.  Visual languages and computing survey: Data flow visual programming languages , 1992, J. Vis. Lang. Comput..

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

[45]  Walt Scacchi,et al.  Requirements for an extensible object-oriented tree/graph editor , 1990, UIST '90.

[46]  Thomas J. Leblanc,et al.  Analyzing Parallel Program Executions Using Multiple Views , 1990, J. Parallel Distributed Comput..

[47]  Walter F. Tichy,et al.  Edge: An extendible graph editor , 1990, Softw. Pract. Exp..

[48]  P. David Stotts The PFG Language: Visual Programming for Concurrent Computation , 1988, ICPP.

[49]  Carlo Batini,et al.  Automatic graph drawing and readability of diagrams , 1988, IEEE Trans. Syst. Man Cybern..

[50]  Dipayan Gangopadhyay,et al.  A Formal System for Network Databases and Its Applications to IntegrityRelated Issues , 1984 .

[51]  John T. Stasko The path-transition paradigm: a practical methodology for adding animation to program interfaces , 1990, J. Vis. Lang. Comput..

[52]  Michael T. Heath,et al.  Visualizing the performance of parallel programs , 1991, IEEE Software.

[53]  James D. Foley,et al.  A second generation user interface design environment: the model and the runtime architecture , 1993, INTERCHI.

[54]  Marc H. Brown,et al.  Zeus: a system for algorithm animation and multi-view editing , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[55]  Ephraim P. Glinert,et al.  Visual tools and languages: directions for the '90s , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[56]  Gabriel Robins,et al.  The isi grapher: a portable tool for displaying graphs pictorially , 1987 .

[57]  Philip T. Cox,et al.  Prograph: a step towards liberating programming from textual conditioning , 1989, [Proceedings] 1989 IEEE Workshop on Visual Languages.

[58]  Bowen Alpern,et al.  Graph attribution as a specification paradigm , 1989, SDE 3.

[59]  Gary J. Nutt,et al.  A simulation system architecture for graph models , 1991, Applications and Theory of Petri Nets.

[60]  J.T. Stasko,et al.  Tango: a framework and system for algorithm animation , 1990, Computer.

[61]  David Jablonowski,et al.  GMB: A tool for manipulating and animating graph data structures , 1989, Softw. Pract. Exp..

[62]  Joseph P. Loyall Specification of concurrent systems using graph grammars , 1992 .

[63]  P. David Stotts Expressing high-level visual concurrency structures in the PFG kernel language , 1988, [Proceedings] 1988 IEEE Workshop on Visual Languages.

[64]  Bertrand Meyer,et al.  Introduction to the Theory of Programming Languages , 1990 .

[65]  Manfred Nagl,et al.  Building integrated software development environments. Part I: tool specification , 1992, TSEM.

[66]  Jack J. Dongarra,et al.  Graphical development tools for network-based concurrent supercomputing , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[67]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1982, Lecture Notes in Computer Science.

[68]  RepsThomas,et al.  The Cornell program synthesizer , 1981 .

[69]  Doreen Y. Cheng A survey of parallel programming tools , 1991 .

[70]  Mary Beth Rosson,et al.  Survey on user interface programming , 1992, CHI.

[71]  Charles Petzold Programming Windows 3.1 , 1992 .

[72]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

[73]  Thomas W. Reps,et al.  Generating Language-Based Environments , 1982 .

[74]  David Harel,et al.  On visual formalisms , 1988, CACM.

[75]  David Notkin,et al.  Voyeur: graphical views of parallel programs , 1988, PADD '88.

[76]  William Roberts Mallgren Formal Specification of Interactive Graphics Programming Languages , 1983 .

[77]  Gerd Szwillus,et al.  Introduction: Structure-Based Editors and Environments , 1992, Int. J. Man Mach. Stud..

[78]  Randy Shepherd,et al.  Object-Oriented Programming , 1994, Lecture Notes in Computer Science.

[79]  Lawrence A. Rowe,et al.  A browser for directed graphs , 1987, Softw. Pract. Exp..

[80]  Mark A. Linton,et al.  Unidraw: a framework for building domain-specific graphical editors , 1990, TOIS.

[81]  Elaine Kant,et al.  Automated program synthesis , 1990 .

[82]  Charles E. Hughes,et al.  Automatically generating visual syntax-directed editors , 1990, CACM.

[83]  Frances Paulisch,et al.  The Design of an Extendible Graph Editor , 1993, Lecture Notes in Computer Science.

[84]  R. Akscyn,et al.  The data model is the heart of interface design , 1988, CHI '88.

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

[86]  Naranker Dulay,et al.  MP: A Programming Environment for Multicomputers , 1992, Programming Environments for Parallel Computing.

[87]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[88]  Janice E. Cuny,et al.  Perspective Views: A Technique for Enhancing Parallel Program Visualization , 1990, ICPP.

[89]  Marc H. Brown,et al.  Algorithm animation , 1988 .

[90]  James C. Browne,et al.  The CODE 2.0 graphical parallel programming language , 1992, ICS '92.

[91]  Bernard Sufrin Formal Specification of a Display-Oriented Text Editor , 1982, Sci. Comput. Program..

[92]  Thomas Reps,et al.  Cps - the cornell program synthesizer , 1981 .

[93]  Michael F. Kleyn,et al.  GraphTrace - Understanding Object-Oriented Systems Using Concurrently Animated Views , 1988, OOPSLA.

[94]  Reid G. Smith,et al.  A Substrate for Object-Oriented Interface Design , 1987, Research Directions in Object-Oriented Programming.

[95]  C. Edward Chow,et al.  PROSPEC: An Interactive Programming Environment for Designing and Verifying Communication Protocols , 1988, IEEE Trans. Software Eng..

[96]  Robert Duisberg,et al.  Animating Programs Using Smalltalk , 1985, Computer.

[97]  K. P. Vo,et al.  DAG—a program that draws directed graphs , 1988, Softw. Pract. Exp..

[98]  R. Jain,et al.  The Interaction of the Formal and the Practical in Parallel Programming Environment Development: CODE , 1991, LCPC.

[99]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[100]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[101]  Russell Turpin,et al.  Programming Data Structures in Logic , 1992 .

[102]  Frances Paulisch An interface description language for graph editors , 1988, VL.

[103]  Hany H. Ammar,et al.  Time Scale Decomposition of a Class of Generalized Stochastic Petri Net Models , 1989, IEEE Trans. Software Eng..

[104]  Janice E. Cuny,et al.  Initial experiences with a pattern-oriented parallel debugger , 1988, PADD '88.

[105]  Mark Levene,et al.  A nested-graph model for the representation and manipulation of complex objects , 1994, TOIS.

[106]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[107]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[108]  Herbert Göttler Diagram Editors = Graphs + Attributes + Graph Grammars , 1992, Int. J. Man Mach. Stud..

[109]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .