Generating Diagram Editors Providing Free-Hand Editing as well as Syntax-Directed Editing

Size: px
Start display at page:

Download "Generating Diagram Editors Providing Free-Hand Editing as well as Syntax-Directed Editing"

Transcription

1 Generating Diagram Editors Providing Free-Hand Editing as well as Syntax-Directed Editing Oliver Köth and Mark Minas Lehrstuhl für Programmiersprachen Universität Erlangen-Nürnberg Martensstr. 3, Erlangen, Germany Abstract. Diagram editors which are tailored to a specific diagram language typically support either syntax-directed editing or free-hand editing, i.e., the user is either restricted to a collection of predefined editing operations, or he is not restricted at all, but misses the convenience of such complex editing operations. This paper proposes a concept for incorporating both modes into one editor in order to get the combined advantages. This proposal extends work on free-hand editors which are generated from a formal hypergraph grammar specification by the diagram editor generator DiaGen. 1 Introduction Diagram editors are graphical editors which are tailored to a specific diagram language; they can be distinguished from pure drawing tools by the capability of understanding edited diagrams to some extent. Current diagram editors support either syntax-directed editing or free-hand editing. Syntax-directed editors provide a set of editing operations. Each of these operations is geared to modify the meaning of the diagram. This editing mode requires an internal diagram model that is primarily modified by the operations; diagrams are then updated according to their modified model. These models are most commonly described by some kind of graph; editing operations are then represented by graph transformations (e.g. [2, 5]). Diagram editors providing free-hand editing are low-level graphics editors which allow the user to directly manipulate the diagram. The graphics editor becomes a diagram editor by offering only pictorial objects which are used by the visual language and by combining it with a parser. A parser is necessary for checking the correctness of diagrams and analyzing as well as recognizing the syntactic structure of the diagram. There are grammar formalisms and parsers that do not require an internal diagram model as an intermediate diagram representation, but operate directly on the diagram (e.g., constraint multiset grammars [3]). Other approaches use an internal model which is analyzed by the parser. Again, graphs are the most common means for describing such a model.

2 Oliver Köth and Mark Minas The advantage of free-hand editing over syntax-directed editing is that a diagram language can be defined by a concise (graph) grammar only; editing operations can be omitted. The editor does not force the user to edit diagrams in a certain way since there is no restriction to predefined editing operations. However, this may turn out to be a disadvantage since editors permit to create any diagram; they do not offer explicit guidance to the user. Furthermore, freehand editing requires a parser and is thus restricted to diagrams and (graph) grammars which offer efficient parsers. So far, diagram editors either support syntax-directed editing or free-hand editing. An editor that supports both editing modes at the same time would combine the positive aspects of both editing modes and reduce their negative ones. Despite this observation, there is only one such approach known to us: Rekers and Schürr propose to use two kinds of graphs as internal representations of diagrams [10]:the spatial relationship graph (SRG) abstracts from the physical diagram layout and represents higher level spatial relations. Additionally, an abstract syntax graph (ASG) that represents the logical structure of the diagram is kept up-to-date with the SRG. Context-sensitive graph grammars are used to define the syntax of both graphs. Free editing of diagrams is planned to modify the first graph, syntax-directed editing is going to modify the second. In each case, the other graph is modified accordingly. Therefore, a kind of diagram semantics is available by the ASG. However, this approach requires almost a oneto-one relationship between SRG and ASG. This is not required in the approach of this paper. We will come back to this approach in the conclusions (cf. Sect. 6). This paper describes another, but related, concept for automatically generating diagram editors that support both editing modes at the same time. This concept extends DiaGen, the Diagram editor Generator for pure free-hand editors, which has been described in [7]: It uses an internal hypergraph model which is parsed according to some hypergraph grammar in order to analyze the syntactic structure of the hypergraph (and thus of the diagram). Attribute evaluation based on this structure is then used for creating a user-specified semantic representation of the diagram. This paper makes two new contributions: it describes how such a free-hand editor is extended by an additional syntax-directed editing mode, which also requires an automatic layout mechanism for diagrams. Such a constraint-based layout mechanism which is used for both syntax-directed editing and free-hand editing is briefly outlined, too. The next section briefly introduces sequential function charts as the running example of this paper. Section 3 outlines our existing work on free-hand diagram editors, which is extended by syntax-directed editing in Sec. 4. An automatic layout mechanism, which is required by syntax-directed editing, is outlined in Sec. 5. Section 6 concludes the paper. 2 Example: Sequential Function Charts Throughout this paper, we will use sequential function charts (SFC) as running example. SFC is a visual programming language for Programmable Logic Con-

3 Generating Diagram Editors Providing Free-Hand Editing... Start Stop (b) trans (a) (c) Fig. 1. Two SFC diagrams (a) and (b) the first one shown as screenshot of the generated SFC editor and the spatial relationship hypergraph (c) of the diagram in (b). trollers (PLCs), which are widespread devices for controlling machines in nearly every application domain. SFC as a language has become part of the IEC 1131 standard [1] and is quite similar to Petri nets: an SFC mainly consists of steps and transitions which build a bipartite graph: Steps may be ed to transitions and transitions to steps. A step becomes active if its predecessor transition fires, and it becomes inactive again if its successor transition fires. Steps of SFC represent a certain part of a PLC program which is active if and only if the step is active. Transitions carry boolean conditions which define when a transition fires. SFC diagrams are thus used to structure a PLC program on a very high level. Figure 1a and b show two sample SFC diagrams. Please note that transitions and steps are ed by vertical lines from top to bottom. Alternatives are represented by plain horizontal lines, the initial step by a fat borderline. SFC also offers additional language constructs which are omitted here. 3 Free-Hand Editing This section describes the idea of free-hand editing as it has been presented in [7]. Free-hand editors for a specific diagram language are generated from a specification which describes the diagram language and the translation process

4 Oliver Köth and Mark Minas from the diagram to some user-specified semantic representation. The editor performs a sequence of three steps after each editing operation: the scanning, the reduction, and the parsing step. Scanning step: Diagram components (e.g., es and vertical lines in SFC) have attachment areas, i.e., the parts of the components that are allowed to to other components (e.g., top and bottom of a, which are ed to vertical lines). The most general and yet simple formal description of such a component is a hyperedge which s to the nodes which represent the attachment areas 1 of the diagram components. These nodes and hyperedges first make up an uned hypergraph. The scanner s nodes by additional edges if the corresponding attachment areas are related in a specified way, which is described in the specification. The result of this scanning step is the spatial relationship hypergraph (SRHG) of the diagram. Figure 1c shows the SRHG of the SFC diagram shown in Fig. 1b. Nodes are represented by black dots, hyperedges either by gray arrows (relationships between attachment areas) or by rectangles (diagram components) that are ed to their nodes ( attachment areas ) by small arrows. Reduction step: SRHGs tend to be quite large even for small diagrams (see Fig. 1c). In order to allow for efficient parsing, a reduced hypergraph model (HGM) is created from the SRHG first. The reducer is specified by some transformations that identify those sub-hypergraphs of the SRHG which carry the information of the diagram and build the HGM accordingly. This step is similar to the lexical analysis step of traditional compilers. Parsing step: The syntax of the hypergraph models of the diagram language and thus the syntax of the language is defined by a hypergraph grammar. DiaGen supports context-free hypergraph grammars with embeddings, i.e., productions are either context-free ones with a single nonterminal hyperedge on the LHS of the production, or they are embeddings where the RHS of the production is the same as its LHS, but with an additional hyperedge. 4 Syntax-directed Editing As discussed in the introduction, syntax-directed editing has several important benefits. Other approaches for free-hand editing which do not make use of abstract internal models (e.g., the Penguins system based on constraint multiset grammars [3, 4]) cannot extend free-hand editing by syntax-directed editing, which requires such an abstract model. But since our approach is based on such a model (the SRHG), it is quite obvious to offer syntax-directed editing, too. However, free-hand editing using a parser requires that the hypergraph grammar remains the only syntax description of the HGM and thus the diagram language. Syntax-directed editing operations must not change the syntax of the 1 Plain edges instead of hyperedges are in general not sufficient: E.g., in SFC, lines can to other lines at their end points or with some inner point. Those situations have to be well distinguished in SFC.

5 Generating Diagram Editors Providing Free-Hand Editing... diagram language; they can only offer some additional support to the user. This requirement has two immediate consequences: (1) It is possible to specify editing rules that deliberately transform a correct diagram into an incorrect one with respect to the hypergraph grammar. This might appear to be an undesired feature; but consider the process of creating a complex diagram: the intermediate drawings need not, and generally do not make up a correct diagram, only the final drawing. In order to support those intermediate incorrect results, syntax-directed editing operations have to allow for such disimprovements, too. (2) Editing operations are quite similar to macros in off-the-shelf text and graphics editors; they combine several actions, which can also be performed by free-hand editing, into one complex editing operation. However, syntax-directed editing rules are actually much more powerful than such macros which offer only recording of editing operations and their playback as a complex operation: syntax-directed editing operations also take care of providing a valid diagram layout where this is possible (incorrect diagrams have no valid layout in general.) Furthermore, editing operations can take into account context information, and they may have rather complex application conditions. This makes use of graph transformation an obvious choice for adding syntaxdirected editing to the free-hand editing mode: Editing operations are specified by hypergraph transformations on the SRHG. Whenever the SRHG has been changed by some transformation, it has to be (re)parsed. The results of the parser are then used to indicate correct (sub)diagrams and to create a valid layout for them (see Sec. 5). Please note that the SRHG is directly modified by the transformation rules; the scanning step, which is necessary for free-hand editing, does not take place. Figure 2 shows an example of a syntax-directed editing operation for SFC: a part of a chart, which is identified by its top-most step and its last transition (indicated by the dark gray background in Fig. 2), is inserted between a transition and a step. This editing operation is easily specified by a hypergraph transformation rule on the SRHG of the diagram as shown in Fig. 2: Corresponding nodes of the LHS and RHS have the same labels, the dark gray lines between the SFC situation and the LHS of the rule indicate which hyperedge of the LHS corresponds to which part of the diagram. The parts of the LHS and RHS of the rule which are contained in an? -marked oval are optional parts which might be missing. When the rule is applied, the ion between the transition and the step at the target position is removed (the -edge from node c to d), the sub-chart that is going to be moved to its new position is cut off from its context (the optional -edges between nodes f and g resp. j and i are removed), and then inserted into its new context (a line-component together with its hyperedge is added at nodes m, n, ando along with the new -edges). Please note that the application of this rule does not yet alter the position of any diagram component. This is the task of the automatic layout which takes place after the resulting SRHG has been analyzed syntactically.

6 Oliver Köth and Mark Minas a b f? a b c g c g h h d e i trans i l k trans i m o d i l n e k?? Fig. 2. A syntax-directed editing operation for SFC: A sub-chart is inserted between a transition and a step which is represented by a transformation on the SRHG. In DiaGen, syntax directed editing operations are specified in terms of simple rules and complex operations quite similar to rules and transformation units in GRACE [6]. Rules are specified as pairs of LHS and RHS with optional application conditions which may consist of negative context or path-expressions which have to be satisfied when a rule is going to be applied. Operations are defined in terms of rules 2 ; control conditions describe valid sequences of rule applications. Each syntax-directed editing operation is specified by such a complex operation. An important issue of syntax-directed editing is the question how to select those parts of the diagram that are affected by the application of an editing operation. In DiaGen, this has been solved by adding parameters to complex operations. When the user selects an editing operation for application, the editor requests that the user has to specify a single diagram component for each of the parameters of the operation. The hyperedges that internally represent these components specify a partial match which is then used to select where the operation and its rules have to be applied. 5 Automatic Layout Transformations on the SRHG modify the structure of the internal model, but they do not describe their effects on the position or the size of the diagram components; an automatic layout mechanism is needed. Since a correct layout also reflects the syntax of a diagram, it is quite obvious to make use of the syntactic structure as it is analyzed by the reduction step and the parsing step. For this purpose, we can refer to previous work of ours on automatic layout based on the syntactic structure of the diagram [9]: The main idea is to describe a diagram layout in terms of values which are assigned to the attributes of the diagram components (e.g., their position). A valid diagram layout is specified by a set of constraints on these attributes; the constraint set is determined by the syntactic structure of the diagram. This works as follows: Hyperedges of the SRHG and terminal as well as nonterminal hyperedges of the HGM carry 2 The current implementation does not allow to invoke operations from an operation.

7 Generating Diagram Editors Providing Free-Hand Editing... attributes, reduction step rules and grammar productions are augmented by constraints on their accessible attributes. These constraints are added to the set of constraints which specify a diagram layout whenever the corresponding rule or production is instantiated during the reduction step or parsing process. It is important to define layout constraints not only in the hypergraph grammar which is used during the parsing step, but also in the rule set which specifies the reduction step. This is so because the reduction step may reduce away the explicit representation of some specific diagram components (e.g., lines in our SFC example). If we had restricted specification of layout constraints to the hypergraph grammar, we would not be able to describe the layout of those diagram components. This layout mechanism is not restricted to syntax-directed editing. The same information is also available during free-hand editing. Editors specified and generated by DiaGen therefore offer an intelligent diagram mode where diagram components may be modified arbitrarily, but the other components, especially their position, may be affected by these modifications, too. The constraints take care of modifying the overall appearance of the diagram such that its syntax is preserved and the layout beautified. This work on intelligent diagrams is similar to the approach by Chok, Marriott, and Paton [4]. 6 Conclusions This paper has outlined work on graphical diagram editors that support freehand editing as well as syntax-directed editing. By supporting both editing modes in one editor, we hope to combine the positive aspects of both modes, i.e, unrestricted editing capabilities and convenient syntax-directed editing. The approach which has been presented in this paper appears to be quite similar to the approachof Rekers and Schürr [10] which has already been outlined in Sec. 1. Both approaches make use of two hypergraphs resp. graphs. The spatial relationship graph (SRG) in Reker s and Schürr s approach is quite similar to our SRHG. But their abstract syntax graph (ASG) has been introduced for a different reason than our HGM: SRHGs (and also SRGs) are generally quite complicated such that there is no hypergraph parser which can analyze an SRHG. Therefore, we preprocess the SRHG and parse the much simpler HGM instead of the SRHG. As we have demonstrated, parsing of the HGM can be performed efficiently. However in Reker s and Schürr s approach, SRG and ASG are always strongly coupled since they use triple graph grammars for defining the syntax of the SRG and the ASG with one formalism; the ASG has not been introduced for reducing complexity. Instead, a graph grammar parser has to analyze the SRG directly; the ASG is not parsed, it is created as a side-effect of the parsing of the SRG during free-hand editing. The requirement for a graph parser for the SRG imposes a strong restriction on this approach. The concepts of this paper have been implemented in DiaGen 3 with constraint-based automatic layout based on the constraint solver QOCA by 3 DiaGen can be downloaded from

8 Oliver Köth and Mark Minas Chok and Marriott [4]. Their Penguins system also allows to generate free-hand editors, however they do not generate an internal model, but use constraint multiset grammars (CMGs) [3]. However, our hypergraph grammar approach appears to be better suited to the problem since they report a performance that is about two orders of magnitude worse than the performance of DiaGen editors on comparable computers. Furthermore, their system cannot support syntax-directed editing since they do not use an intermediate internal model. On the conceptual level, it is unsatisfactory to some extent to specify syntaxdirected editing operations on the less abstract spatial relationship hypergraph instead of the hypergraph model which appears to be better suited for syntaxdirected editing (cf. Reker s and Schürr s approach [10]). However, since the mapping from the SRHG to the HGM is non-injective, the approach which has been presented in this paper does not leave much choice if expressiveness should not be sacrificed. However, future work will investigate where specifying syntaxdirected editing operations on the more abstract hypergraph model is sufficient. References 1. Deutsche Norm DIN EN Teil 3 Speicherprogrammierbare Steuerungen Programmiersprachen. Beuth Verlag, Berlin, In German. 2. R. Bardohl. GenGEd: A generic graphical editor for visual languages based on algebraic graph grammars. In 1998 IEEE Symp. on Visual Languages, Halifax, Canada. Sept. 1998, pp S. S. Chok and K. Marriott. Automatic construction of user interfaces from constraint multiset grammars. In 1995 IEEE Symp. on Visual Languages, Darmstadt, Germany. Sept. 1995, pp S. S. Chok, K. Marriott, and T. Paton. Constraint-based diagram beautification. In 1999 IEEE Symp. on Visual Languages, Tokyo, Japan. Sept H. Göttler. Graph grammars and diagram editing. In Graph Grammars and Their Application to Computer Science, LNCS 291, pp , H.-J. Kreowski and S. Kuske. Graph Transformation Units and Modules. In H. Ehrig, G. Engels, H.-J. Kreowski, and G. Rozenberg, editors, Handbook of Graph Grammars and Computing by Graph Transformation, vol. II: Applications, Languages and Tools, pp World Scientific, M. Minas. Creating semantic representations of diagrams. In Proc.oftheInt. Workshop on Applications of Graph Transformation with Industrial Relevance (AGTIVE 99) at Monastery Rolduc, NL, To appear in LNCS, April M. Minas and G. Viehstaedt. DiaGen: A generator for diagram editors providing direct manipulation and execution of diagrams. In 1995 IEEE Symp. on Visual Languages, Darmstadt, Germany. Sept. 1995, pp M. Minas and G. Viehstaedt. Specification of diagram editors providing layout adjustment with minimal change. In 1993 IEEE Symp. on Visual Languages, Bergen, Norway. Aug. 1993, pp J. Rekers and A. Schürr. A graph based framework for the implementation of visual environments. In 1996 IEEE Symp. on Visual Languages, Boulder, CO. Sept. 1996, pp

Generating Diagram Editors with DiaGen

Generating Diagram Editors with DiaGen Generating Diagram Editors with DiaGen Mark Minas and Oliver Köth Lehrstuhl für Programmiersprachen Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen, Germany minas@informatik.uni-erlangen.de

More information

Hypergraphs as a Uniform Diagram Representation Model

Hypergraphs as a Uniform Diagram Representation Model In Proc. 6th International Workshop on Theory and Application of Graph Transformations (TAGT 98) at Paderborn, Germany, Nov. 998. Appears in LNCS, 000 c Springer-Verlag Hypergraphs as a Uniform Diagram

More information

Structure, Abstraction and Direct Manipulation in Diagram Editors

Structure, Abstraction and Direct Manipulation in Diagram Editors Structure, Abstraction and Direct Manipulation in Diagram Editors Oliver Köth and Mark Minas Lehrstuhl für Programmiersprachen Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen, Germany minas@informatik.uni-erlangen.de

More information

AGG: A Graph Transformation Environment for Modeling and Validation of Software

AGG: A Graph Transformation Environment for Modeling and Validation of Software AGG: A Graph Transformation Environment for Modeling and Validation of Software Gabriele Taentzer Technische Universität Berlin, Germany gabi@cs.tu-berlin.de Abstract. AGG is a general development environment

More information

Internet-based development of logic controllers using Signal Interpreted Petri Nets and IEC 61131

Internet-based development of logic controllers using Signal Interpreted Petri Nets and IEC 61131 Internet-based development of logic controllers using Signal Interpreted Petri Nets and IEC 61131 Georg Frey Lehrstuhl für Automatisierungstechnik Universität Kaiserslautern Postfach 3049, 67653 Kaiserslautern,

More information

Compiled Visual Programs by VisPro

Compiled Visual Programs by VisPro Compiled Visual Programs by VisPro Ke -Bing Zhang 1 Mehmet A. Orgun 1 Kang Zhang 2 1 Department of Computing, ICS, Macquarie University, Sydney, NSW 2109, Australia {kebing, mehmet}@ics.mq.edu.au 2 Department

More information

XML-based Specification of Diagram Editors

XML-based Specification of Diagram Editors Electronic Notes in Theoretical Computer Science 82 No. 7 (2003) URL: http://www.elsevier.nl/locate/entcs/volume82.html 15 pages XML-based Specification of Diagram Editors Mark Minas 1 Institute Software

More information

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework Enrico Biermann, Claudia Ermel, Frank Hermann and Tony Modica Technische Universität Berlin, Germany {enrico,lieske,frank,modica}@cs.tu-berlin.de

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

Customer. Sales Department. order product. send notification. product in stock? order received. yes prepare order. ship order

Customer. Sales Department. order product. send notification. product in stock? order received. yes prepare order. ship order Customer order product Sales Department order received no product in stock? yes prepare order send notification ship order Correction and completion (of processes) Example (process) generation Correctness-preserving

More information

A Matching Algorithm and AGG Overview

A Matching Algorithm and AGG Overview A Matching Algorithm and AGG Overview Marc Provost McGill University marc.provost@mail.mcgill.ca March 29, 2004 Abstract This presentation go over the basic features of agg for graph rewriting. Typeset

More information

Exploiting Visual Languages Generation and UML Meta Modeling to Construct Meta-CASE Workbenches

Exploiting Visual Languages Generation and UML Meta Modeling to Construct Meta-CASE Workbenches Electronic Notes in Theoretical Computer Science 72 No. 3 (2003) URL: http://www.elsevier.nl/locate/entcs/volume72.html 11 pages Exploiting Visual Languages Generation and UML Meta Modeling to Construct

More information

Examples of attributes: values of evaluated subtrees, type information, source file coordinates,

Examples of attributes: values of evaluated subtrees, type information, source file coordinates, 1 2 3 Attributes can be added to the grammar symbols, and program fragments can be added as semantic actions to the grammar, to form a syntax-directed translation scheme. Some attributes may be set by

More information

Chapter 2 The Foundation - Graph Grammars

Chapter 2 The Foundation - Graph Grammars Chapter 2 he Foundation - Graph Grammars 2.1 Introduction In the implementation of textual languages, formal grammars are commonly used to facilitate the language understanding and the parser creation.

More information

Integration of P-NET into IEC 1131

Integration of P-NET into IEC 1131 Integration of P-NET into IEC 1131 Martin Wollschlaeger Abstract The international standard IEC1131 is widely used in programming of PLC-based automation systems. While a PLC mostly is a concentrated device,

More information

A graphical user interface for service adaptation

A graphical user interface for service adaptation A graphical user interface for service adaptation Christian Gierds 1 and Niels Lohmann 2 1 Humboldt-Universität zu Berlin, Institut für Informatik, Unter den Linden 6, 10099 Berlin, Germany gierds@informatik.hu-berlin.de

More information

Discrete-event simulation of railway systems with hybrid models

Discrete-event simulation of railway systems with hybrid models Discrete-event simulation of railway systems with hybrid models G. Decknatel & E. Schnieder Imtitutfur Regelungs- undautomatisierungstechnik, Technische Universitat Braunschweig, Braunschweig, Germany.

More information

Parallel Graph Transformation for Model Simulation applied to Timed Transition Petri Nets

Parallel Graph Transformation for Model Simulation applied to Timed Transition Petri Nets Electronic Notes in Theoretical Computer Science 109 (2004) 17 29 www.elsevier.com/locate/entcs Parallel Graph Transformation for Model Simulation applied to Timed Transition Petri Nets J. de Lara a,1,

More information

Constructing a Bidirectional Transformation between BPMN and BPEL with Functional-logic Graph Parser Combinators

Constructing a Bidirectional Transformation between BPMN and BPEL with Functional-logic Graph Parser Combinators Constructing a Bidirectional Transformation between BPMN and BPEL with Functional-logic Graph Parser Combinators Steffen Mazanek and Mark Minas Universität der Bundeswehr München, Germany, {steffen.mazanek

More information

Pattern composition in graph transformation rules

Pattern composition in graph transformation rules Pattern composition in graph transformation rules András Balogh and Dániel Varró Department of Measurement and Information Systems Budapest University of Technology and Economics H-1117 Magyar tudosok

More information

A Modelling and Analysis Environment for LARES

A Modelling and Analysis Environment for LARES A Modelling and Analysis Environment for LARES Alexander Gouberman, Martin Riedl, Johann Schuster, and Markus Siegle Institut für Technische Informatik, Universität der Bundeswehr München, {firstname.lastname@unibw.de

More information

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table COMPILER CONSTRUCTION Lab 2 Symbol table LABS Lab 3 LR parsing and abstract syntax tree construction using ''bison' Lab 4 Semantic analysis (type checking) PHASES OF A COMPILER Source Program Lab 2 Symtab

More information

Downloaded from Page 1. LR Parsing

Downloaded from  Page 1. LR Parsing Downloaded from http://himadri.cmsdu.org Page 1 LR Parsing We first understand Context Free Grammars. Consider the input string: x+2*y When scanned by a scanner, it produces the following stream of tokens:

More information

Rule-Based Programming with Diaplan

Rule-Based Programming with Diaplan Electronic Notes in heoretical Computer Science 27 (2005) 5 26 www.elsevier.comlocateentcs Rule-Based Programming with iaplan Frank rewes Institutionen för datavetenskap Umeå universitet S-9087 Umeå, Sweden

More information

Overview of Formal Concepts for Model Transformations Based on Typed Attributed Graph Transformation

Overview of Formal Concepts for Model Transformations Based on Typed Attributed Graph Transformation Electronic Notes in Theoretical Computer Science 152 (2006) 3 22 www.elsevier.com/locate/entcs Overview of Formal Concepts for Model Transformations Based on Typed Attributed Graph Transformation Hartmut

More information

Compiling Regular Expressions COMP360

Compiling Regular Expressions COMP360 Compiling Regular Expressions COMP360 Logic is the beginning of wisdom, not the end. Leonard Nimoy Compiler s Purpose The compiler converts the program source code into a form that can be executed by the

More information

Spatial Graph Grammars for Graphical User Interfaces

Spatial Graph Grammars for Graphical User Interfaces Spatial Graph Grammars for Graphical User Interfaces JUN KONG The North Dakota State University and KANG ZHANG and XIAOQIN ZENG The University of Texas at Dallas In a graphical user interface, physical

More information

Theory of Graph Transformations

Theory of Graph Transformations Theory of Graph Transformations Helge Wiemann University of Bremen studies of computer science hwiemann@tzi.de Abstract This paper shall give an introduction into the theory of rule-based graph transformation

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

Using Meta-Modelling and Graph Grammars to create Modelling Environments

Using Meta-Modelling and Graph Grammars to create Modelling Environments Electronic Notes in Theoretical Computer Science 72 No. 3 (2002) URL: http://www.elsevier.nl/locate/entcs/volume72.html 15 pages Using Meta-Modelling and Graph Grammars to create Modelling Environments

More information

Structure of Abstract Syntax trees for Colored Nets in PNML

Structure of Abstract Syntax trees for Colored Nets in PNML Structure of Abstract Syntax trees for Colored Nets in PNML F. Kordon & L. Petrucci Fabrice.Kordon@lip6.fr Laure.Petrucci@lipn.univ-paris13.fr version 0.2 (draft) June 26, 2004 Abstract Formalising the

More information

Constraint-based Diagram Beautification

Constraint-based Diagram Beautification Constraint-based Diagram Beautification Sitt Sen Chok, Kim Marriott and Tom Paton School of Computer Science and Software Engineering Monash University, Victoria, Australia {css,marriott,tomp@csse.monash.edu.au

More information

Context-Free Grammar. Concepts Introduced in Chapter 2. Parse Trees. Example Grammar and Derivation

Context-Free Grammar. Concepts Introduced in Chapter 2. Parse Trees. Example Grammar and Derivation Concepts Introduced in Chapter 2 A more detailed overview of the compilation process. Parsing Scanning Semantic Analysis Syntax-Directed Translation Intermediate Code Generation Context-Free Grammar A

More information

Lexical Scanning COMP360

Lexical Scanning COMP360 Lexical Scanning COMP360 Captain, we re being scanned. Spock Reading Read sections 2.1 3.2 in the textbook Regular Expression and FSA Assignment A new assignment has been posted on Blackboard It is due

More information

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios Technical Report tr-ri-07-284 Ekkart Kindler and Robert Wagner Department of Computer Science University of Paderborn

More information

UNIT -1 1.1 OVERVIEW OF LANGUAGE PROCESSING SYSTEM 1.2 Preprocessor A preprocessor produce input to compilers. They may perform the following functions. 1. Macro processing: A preprocessor may allow a

More information

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach Science of Computer Programming 75 (2010) 689 725 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Aspect-oriented model-driven

More information

Generation of Interactive Visual Interfaces for Resource Management

Generation of Interactive Visual Interfaces for Resource Management Generation of Interactive Visual Interfaces for Resource Management Andreas Dangberg, Wolfgang Mueller C LAB, Fuerstenallee 11, 33102 Paderborn, Germany Abstract This paper introduces the VIVID (Visual

More information

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors Compiler Design Subject Code: 6CS63/06IS662 Part A UNIT 1 Chapter 1 1. Introduction 1.1 Language Processors A compiler is a program that can read a program in one language (source language) and translate

More information

Syntax-Directed Translation. Lecture 14

Syntax-Directed Translation. Lecture 14 Syntax-Directed Translation Lecture 14 (adapted from slides by R. Bodik) 9/27/2006 Prof. Hilfinger, Lecture 14 1 Motivation: parser as a translator syntax-directed translation stream of tokens parser ASTs,

More information

1. Explain the input buffer scheme for scanning the source program. How the use of sentinels can improve its performance? Describe in detail.

1. Explain the input buffer scheme for scanning the source program. How the use of sentinels can improve its performance? Describe in detail. Code No: R05320502 Set No. 1 1. Explain the input buffer scheme for scanning the source program. How the use of sentinels can improve its performance? Describe in detail. 2. Construct predictive parsing

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 INSTRUCTIONS

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 INSTRUCTIONS RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 STUDENT ID: INSTRUCTIONS Please write your student ID on this page. Do not write it or your name

More information

Managing Application Configuration Data with CIM

Managing Application Configuration Data with CIM Managing Application Configuration Data with CIM Viktor Mihajlovski IBM Linux Technology Center, Systems Management Introduction The configuration of software, regardless whether

More information

Program Analysis ( 软件源代码分析技术 ) ZHENG LI ( 李征 )

Program Analysis ( 软件源代码分析技术 ) ZHENG LI ( 李征 ) Program Analysis ( 软件源代码分析技术 ) ZHENG LI ( 李征 ) lizheng@mail.buct.edu.cn Lexical and Syntax Analysis Topic Covered Today Compilation Lexical Analysis Semantic Analysis Compilation Translating from high-level

More information

Statechart Modeling with Fujaba

Statechart Modeling with Fujaba GraBaTs 04 Preliminary Version Statechart Modeling with Fujaba Leif Geiger Albert Zündorf University of Kassel, Software Engineering Research Group, Wilhelmshöher Allee 73, 34121 Kassel, Germany {leif.geiger

More information

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Subject Name: CS2352 Principles of Compiler Design Year/Sem : III/VI

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Subject Name: CS2352 Principles of Compiler Design Year/Sem : III/VI DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Subject Name: CS2352 Principles of Compiler Design Year/Sem : III/VI UNIT I - LEXICAL ANALYSIS 1. What is the role of Lexical Analyzer? [NOV 2014] 2. Write

More information

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis SETra 2004 Preliminary Version Detecting Structural Refactoring Conflicts Using Critical Pair Analysis Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut B-7000 Mons, Belgium Gabriele Taentzer

More information

Compilers. Prerequisites

Compilers. Prerequisites Compilers Prerequisites Data structures & algorithms Linked lists, dictionaries, trees, hash tables Formal languages & automata Regular expressions, finite automata, context-free grammars Machine organization

More information

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Somayeh Azizi 1, Vahid Panahi 2 Computer science department, Sama Technical and vocational, Training

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Visual Definition of Virtual Documents for the World-Wide Web

Visual Definition of Virtual Documents for the World-Wide Web Visual Definition of Virtual Documents for the World-Wide Web Mark Minas and Leon Shklar * Abstract. Trying to support the presentation of large amounts of heterogeneous data on the World-Wide Web normally

More information

CS 4201 Compilers 2014/2015 Handout: Lab 1

CS 4201 Compilers 2014/2015 Handout: Lab 1 CS 4201 Compilers 2014/2015 Handout: Lab 1 Lab Content: - What is compiler? - What is compilation? - Features of compiler - Compiler structure - Phases of compiler - Programs related to compilers - Some

More information

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation.

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation. UNIT III PROBLEM SOLVING AND OFFICE AUTOMATION Planning the Computer Program Purpose Algorithm Flow Charts Pseudo code -Application Software Packages- Introduction to Office Packages (not detailed commands

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

Alternatives for semantic processing

Alternatives for semantic processing Semantic Processing Copyright c 2000 by Antony L. Hosking. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies

More information

VIVA QUESTIONS WITH ANSWERS

VIVA QUESTIONS WITH ANSWERS VIVA QUESTIONS WITH ANSWERS 1. What is a compiler? A compiler is a program that reads a program written in one language the source language and translates it into an equivalent program in another language-the

More information

Debugging Abstract State Machine Specifications: An Extension of CoreASM

Debugging Abstract State Machine Specifications: An Extension of CoreASM Debugging Abstract State Machine Specifications: An Extension of CoreASM Marcel Dausend, Michael Stegmaier and Alexander Raschke Institute of Software Engineering and Compiler Construction, University

More information

Compiler Construction Lecture 1: Introduction Winter Semester 2018/19 Thomas Noll Software Modeling and Verification Group RWTH Aachen University

Compiler Construction Lecture 1: Introduction Winter Semester 2018/19 Thomas Noll Software Modeling and Verification Group RWTH Aachen University Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1819/cc/ Preliminaries Outline of Lecture 1 Preliminaries What

More information

Simulation of Petri Nets in Rule-Based Expert System Shell McESE

Simulation of Petri Nets in Rule-Based Expert System Shell McESE Abstract Simulation of Petri Nets in Rule-Based Expert System Shell McESE F. Franek and I. Bruha Dept of Computer Science and Systems, McMaster University Hamilton, Ont., Canada, L8S4K1 Email: {franya

More information

Optimizing Finite Automata

Optimizing Finite Automata Optimizing Finite Automata We can improve the DFA created by MakeDeterministic. Sometimes a DFA will have more states than necessary. For every DFA there is a unique smallest equivalent DFA (fewest states

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Syntax-Directed Translation. Introduction

Syntax-Directed Translation. Introduction Syntax-Directed Translation Introduction Translation of languages guided by context-free grammars Attach attributes to the grammar symbols Values of the attributes are computed by semantic rules associated

More information

Chapter 4 :: Semantic Analysis

Chapter 4 :: Semantic Analysis Chapter 4 :: Semantic Analysis Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter04_Semantic_Analysis_4e - Tue November 21, 2017 Role of Semantic Analysis

More information

PETRI NET ANALYSIS OF BATCH RECIPES

PETRI NET ANALYSIS OF BATCH RECIPES Presented at FOCAPO 98, Snowbird, USA. PETRI NET ANALYSIS OF BATCH RECIPES STRUCTURED WITH GRAFCHART Charlotta Johnsson and Karl-Erik Årzén Department of Automatic Control, Lund Institute of Technology,

More information

Business Activity. predecessor Activity Description. from * successor * to. Performer is performer has attribute.

Business Activity. predecessor Activity Description. from * successor * to. Performer is performer has attribute. Editor Definition Language and Its Implementation Audris Kalnins, Karlis Podnieks, Andris Zarins, Edgars Celms, and Janis Barzdins Institute of Mathematics and Computer Science, University of Latvia Raina

More information

What is a compiler? var a var b mov 3 a mov 4 r1 cmpi a r1 jge l_e mov 2 b jmp l_d l_e: mov 3 b l_d: ;done

What is a compiler? var a var b mov 3 a mov 4 r1 cmpi a r1 jge l_e mov 2 b jmp l_d l_e: mov 3 b l_d: ;done What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g., C++) to low-level assembly language that can be executed by hardware int a,

More information

Programming Languages

Programming Languages Programming Languages Tevfik Koşar Lecture - IX February 14 th, 2006 1 Roadmap Semantic Analysis Role of Semantic Analysis Static vs Dynamic Analysis Attribute Grammars Evaluating Attributes Decoration

More information

Fast prototyping of visual languages using local context-based specifications

Fast prototyping of visual languages using local context-based specifications Fast prototyping of visual languages using local context-based specifications Gennaro Costagliola, Mattia De Rosa, Vittorio Fuccella Dipartimento di Informatica, University of Salerno Via Giovanni Paolo

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILING

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILING PRINCIPLES OF COMPILER DESIGN 2 MARKS UNIT I INTRODUCTION TO COMPILING 1. Define compiler? A compiler is a program that reads a program written in one language (source language) and translates it into

More information

Composability Test of BOM based models using Petri Nets

Composability Test of BOM based models using Petri Nets I. Mahmood, R. Ayani, V. Vlassov and F. Moradi 7 Composability Test of BOM based models using Petri Nets Imran Mahmood 1, Rassul Ayani 1, Vladimir Vlassov 1, and Farshad Moradi 2 1 Royal Institute of Technology

More information

Syntax and Grammars 1 / 21

Syntax and Grammars 1 / 21 Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?

More information

COP4020 Spring 2011 Midterm Exam

COP4020 Spring 2011 Midterm Exam COP4020 Spring 2011 Midterm Exam Name: (Please print Put the answers on these sheets. Use additional sheets when necessary or write on the back. Show how you derived your answer (this is required for full

More information

Model Transformation by Graph Transformation: A Comparative Study

Model Transformation by Graph Transformation: A Comparative Study Model Transformation by Graph Transformation: A Comparative Study Karsten Ehrig 1, Esther Guerra 2, Juan de Lara 3, Laszlo Lengyel 4, Tihamer Levendovszky 4, Ulrike Prange 1, Gabriele Taentzer 1, Daniel

More information

Structure of a compiler. More detailed overview of compiler front end. Today we ll take a quick look at typical parts of a compiler.

Structure of a compiler. More detailed overview of compiler front end. Today we ll take a quick look at typical parts of a compiler. More detailed overview of compiler front end Structure of a compiler Today we ll take a quick look at typical parts of a compiler. This is to give a feeling for the overall structure. source program lexical

More information

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Any questions about the syllabus?! Course Material available at www.cs.unic.ac.cy/ioanna! Next time reading assignment [ALSU07]

More information

Towards a UML Profile for Service-Oriented Architectures 1

Towards a UML Profile for Service-Oriented Architectures 1 Towards a UML Profile for Service-Oriented Architectures 1 Reiko Heckel, Marc Lohmann, and Sebastian Thöne Faculty of Computer Science, Electrical Engineering and Mathematics University of Paderborn, Germany

More information

Building a Parser Part III

Building a Parser Part III COMP 506 Rice University Spring 2018 Building a Parser Part III With Practical Application To Lab One source code IR Front End Optimizer Back End IR target code Copyright 2018, Keith D. Cooper & Linda

More information

A Survey of Control Structures for Reconfigurable Petri Nets

A Survey of Control Structures for Reconfigurable Petri Nets Journal of Computer and Communications, 2015, 3, 20-28 Published Online February 2015 in SciRes. http://www.scirp.org/journal/jcc http://dx.doi.org/10.4236/jcc.2015.32002 A Survey of Control Structures

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1: Introduction Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de http://moves.rwth-aachen.de/teaching/ss-14/cc14/ Summer

More information

Full file at Chapter 2: Foundation Concepts

Full file at   Chapter 2: Foundation Concepts Chapter 2: Foundation Concepts TRUE/FALSE 1. The input source for the conceptual modeling phase is the business rules culled out from the requirements specification supplied by the user community. T PTS:

More information

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Language Processing Systems Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Semantic Analysis Compiler Architecture Front End Back End Source language Scanner (lexical analysis)

More information

Proceedings of the Third International Workshop on Graph Based Tools (GraBaTs 2006)

Proceedings of the Third International Workshop on Graph Based Tools (GraBaTs 2006) Electronic Communications of the EASST Volume 1 (2006) Proceedings of the Third International Workshop on Graph Based Tools (GraBaTs 2006) Object Oriented and Rule-based Design of Visual Languages using

More information

Summary: Semantic Analysis

Summary: Semantic Analysis Summary: Semantic Analysis 1 Basic Concepts When SA is performed: Semantic Analysis may be performed: In a two-pass compiler: after syntactic analysis is finished, the semantic analyser if called with

More information

COMPUTER AUTOMATED MULTI-PARADIGM MODELLING: META-MODELLING AND GRAPH TRANSFORMATION

COMPUTER AUTOMATED MULTI-PARADIGM MODELLING: META-MODELLING AND GRAPH TRANSFORMATION Proceedings of the 00 Winter Simulation Conference S. Chick, P. J. Sánchez, D. Ferrin, and D. J. Morrice, eds. COMPUTER AUTOMATED MULTI-PARADIGM MODELLING: META-MODELLING AND GRAPH TRANSFORMATION Hans

More information

Appendix A: Syntax Diagrams

Appendix A: Syntax Diagrams A. Syntax Diagrams A-1 Appendix A: Syntax Diagrams References: Kathleen Jensen/Niklaus Wirth: PASCAL User Manual and Report, 4th Edition. Springer, 1991. Niklaus Wirth: Compilerbau (in German). Teubner,

More information

MIT Specifying Languages with Regular Expressions and Context-Free Grammars

MIT Specifying Languages with Regular Expressions and Context-Free Grammars MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Language Definition Problem How to precisely

More information

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Massachusetts Institute of Technology Language Definition Problem How to precisely define language Layered structure

More information

IEC Why the IEC standard was developed, The languages and concepts defined in the standard, How to obtain further information

IEC Why the IEC standard was developed, The languages and concepts defined in the standard, How to obtain further information IEC61131-3 This article gives a brief overview the PLC Software IEC1131-3 (also referred to as through this document by its full title IEC61131-3) and covers the following: Why the IEC 61131-3 standard

More information

PSD3A Principles of Compiler Design Unit : I-V. PSD3A- Principles of Compiler Design

PSD3A Principles of Compiler Design Unit : I-V. PSD3A- Principles of Compiler Design PSD3A Principles of Compiler Design Unit : I-V 1 UNIT I - SYLLABUS Compiler Assembler Language Processing System Phases of Compiler Lexical Analyser Finite Automata NFA DFA Compiler Tools 2 Compiler -

More information

CSE450 Translation of Programming Languages. Lecture 4: Syntax Analysis

CSE450 Translation of Programming Languages. Lecture 4: Syntax Analysis CSE450 Translation of Programming Languages Lecture 4: Syntax Analysis http://xkcd.com/859 Structure of a Today! Compiler Source Language Lexical Analyzer Syntax Analyzer Semantic Analyzer Int. Code Generator

More information

Theory and Compiling COMP360

Theory and Compiling COMP360 Theory and Compiling COMP360 It has been said that man is a rational animal. All my life I have been searching for evidence which could support this. Bertrand Russell Reading Read sections 2.1 3.2 in the

More information

process in which the rules in the language specification define which elements have to be present and how to reduce them towards obtaining a language

process in which the rules in the language specification define which elements have to be present and how to reduce them towards obtaining a language URL: http://www.elsevier.nl/locate/entcs/volume82.html 13 pages Dynamic aspects of visual modelling languages? Paolo Bottoni a a Dipartimento di Informatica - Universit a di Roma La Sapienza" - Italy Abstract

More information

Module 4. Programmable Logic Control Systems. Version 2 EE IIT, Kharagpur 1

Module 4. Programmable Logic Control Systems. Version 2 EE IIT, Kharagpur 1 Module 4 Programmable Logic Control Systems Version 2 EE IIT, Kharagpur 1 Lesson 21 Programming of PLCs: Sequential Function Charts Version 2 EE IIT, Kharagpur 2 Instructional Objectives After learning

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target

More information

3D-Visualization of Petri Net Models: Concept and Realization

3D-Visualization of Petri Net Models: Concept and Realization 3D-Visualization of Petri Net Models: Concept and Realization Ekkart Kindler and Csaba Páles Department of Computer Science, University of Paderborn {kindler,cpales}@upb.de Abstract. We present a simple

More information

Managing test suites for services

Managing test suites for services Managing test suites for services Kathrin Kaschner Universität Rostock, Institut für Informatik, 18051 Rostock, Germany kathrin.kaschner@uni-rostock.de Abstract. When developing an existing service further,

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

More information

Designing a Semantic Ground Truth for Mathematical Formulas

Designing a Semantic Ground Truth for Mathematical Formulas Designing a Semantic Ground Truth for Mathematical Formulas Alan Sexton 1, Volker Sorge 1, and Masakazu Suzuki 2 1 School of Computer Science, University of Birmingham, UK, A.P.Sexton V.Sorge@cs.bham.ac.uk,

More information

Compiler Code Generation COMP360

Compiler Code Generation COMP360 Compiler Code Generation COMP360 Students who acquire large debts putting themselves through school are unlikely to think about changing society. When you trap people in a system of debt, they can t afford

More information