1 / 35

AUTOMATIC GENERATION OF VISUAL PROGRAMMING ENVIRONMENTS

AUTOMATIC GENERATION OF VISUAL PROGRAMMING ENVIRONMENTS. A workflow. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009. Context. Textual Programming Languages: Require fine knowledge about their syntax; Small errors can make programming activity boring;

jasper
Download Presentation

AUTOMATIC GENERATION OF VISUAL PROGRAMMING ENVIRONMENTS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AUTOMATIC GENERATION OF VISUAL PROGRAMMING ENVIRONMENTS A workflow Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  2. Context • Textual Programming Languages: • Require fine knowledge about their syntax; • Small errors can make programming activity boring; • Comprehension is very hard. • Visual Programming Languages: • Are intended to have a much simpler syntax, easier to recall and understand; • Comprehesion should be easier; • Require a sophisticated programming Env. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  3. Context • Visual Programming Environments • Usually are developed from scratch, without systematization ; • Code written for their development is (most of the times) hard to maintain/evolve; • But the environments are efficient and support large scale specifications. 3 Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  4. MOTIVATION Systematize the development of Visual Programming Environments, using Generators based on the Attribute Grammar of the underlying Visual Language. (work developed as a 2nd year MSc project (UCE-15)) 4 Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  5. OUTLINE • The Generator Chosen: DEViL (an overview) • The Case-Study: VisualLISA • VPE Development: Workflow • Attribute Grammar Specification • Interaction Definition • Semantic Analyzer Implementation • Code Generation • Generated Environment • Conclusion 5 Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  6. DEViL OVERVIEW • Visual Programming Environment generator; • AG-based; • The AG spec is modular and symbol-oriented rather then production-oriented; • Generates a simple and intuitive interface. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  7. DEViL – DEVELOPMENT ENVIRONMENT FOR VISUAL LANGUAGES Cons Pros • Complex Installation; • Disperse documen-tation and written in German; • Generated Editor is only compatible with the SO where it was developed; • Very good support; • Many examples, addressing several DEViL features; • Exists for MacOS, Windows and Linux; • Allows programmers to extend capabilities. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  8. Case-Study: VisualLISA • Is a graphical front-end for LISA (an AG-based compiler generator). • Used to visually edit LISA specifications: AGs; • Aims at reducing mental effort when specifying AGs. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  9. VisualLISA – The Environment • Should verify syntactical and semantically the visual specification of the AG; • Should translate the same specification into one of: • Simple BNF notation; • Textual LISA specification; • An XML notation designed to support AG specifications; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  10. VisualLISA – The Visual Language Language should be production-oriented and incremental; LHS symbol’s shape should be highlighted; Connection between LHS and RHS symbols should exist; Attributes should connect to LHS and RHS symbols; 10 Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  11. VisualLISA – The Visual Language (2) • Semantic rules should be declared: • over derivation rules (productions); • separated from each others; • reusing the production’s structure; • Functions, Lexemes and other base definitions should be allowed; • The VL must hold all the generic AG’s semantic constraints. 11 Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  12. VL Requirements VPE Generator Workflow Visual ProgrammingEnvironment 12 Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  13. WORKFLOW Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  14. ATTRIBUTE GRAMMAR • Modular definition of symbols; • Object Oriented Approach: • Grammar symbols can be seen as classes; • Symbol attributes can be seen as class attributes. • Syntax is defined by relations between the classes; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  15. ModelRepresentation CLASS Root { name: VAL VLString; semprods: SUB Semprod*; definitions: SUB Definitions!; library: SUB Library?; } A TreeGrammarisproduced

  16. ATTRIBUTE GRAMMAR • Abstract classes are used to group symbols and refine syntactic aspects; • Coupling of grammar symbols used to replicate structures. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  17. WORKFLOW Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  18. INTERACTION DEFINITION • Development of several files where: • Views of the VL are defined; • Dock Buttons are created; • L&F of buttons is declared (p.e. using images); • The behavior of a button is defined; • Tooltips can be added; • Events can be programmed to add extra behavior to the button’s actions. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  19. INTERACTION DEFINITION A VIEW DECLARATION VIEW rootView ROOT Root { BUTTON IMAGE "img::btnSemprod" INSERTS Semprod INFO "Inserts a new Grammar Production"; } Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  20. INTERACTION DEFINITION • Definition of canvas’ L&F: • Visual Patterns are associated to tree-grammar symbols to define their basic appearence; • Computations are declared to implement the VPs; • Icons are associated to symbols (SYNT.drawing); • Semantic rules can be declare to assign values to the attributes of the symbols. Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  21. INTERACTION DEFINITION A VIEW SYNTHESIS SYMBOL rootView_Root INHERITS VPRootElement, VPForm COMPUTE SYNT.drawing = ADDROF(rootViewDrawing); END; SYMBOL rootView_Root_semprods INHERITS VPFormElement, VPSimpleList COMPUTE SYNT.formElementName = "productions"; END; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  22. WORKFLOW Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  23. SEMANTIC ANALYZER IMPLEMENTATION • DEViL offers tree-walker (function) named addCheck; • Tree-walker executes in a given context; • A tree-context is a symbol or attribute in the tree-grammar; • Id-Tables, Lists, etc. can be implemented with ease; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  24. SEMANTIC ANALYZER IMPLEMENTATION Contextual Condition: A production must have one and only one root symbol checkutil::addCheck Semprod { set n [llength [c::getList {$obj.grammarElements.CHILDREN[LeftSymbol]}]] set symbName [c::get {$obj.name.VALUE}] if { $n == 0 } { eturn "Production '$symbName' must have one Root symbol!” } elseif {$n > 1} { return "Production '$symbName' must have only one Root symbol!” } return ”” } Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  25. WORKFLOW Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  26. CODE GENERATION • Templates for structuring the output are used (IPTG/PTG Files); • Typical AG approach: • Attributes can be associated to symbols of the tree-grammar; • Semantic rules are declared to compute value for these attributes; • Attributes can be referenced outside the context of the symbol; • Auxiliary functions can be defined to aid the computations; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  27. bnfProd(lhs, rhs): [lhs] -> [rhs] SYMBOL bnfgen_Semprod: bnfLHS : PTGNode; SYMBOL bnfgen_Semprod: bnfRHS : PTGNode; SYMBOL bnfgen_Semprod: bnfCode : PTGNode; SYMBOL bnfgen_Semprod COMPUTE SYNT.bnfLHS = CONSTITUENTS bnfgen_LeftSymbol.pers_symbolName WITH(PTGNode, PTGNewLineSeq, PTGAsIs, PTGNull); SYNT.bnfRHS = PTGAsIs(VLString(SELECT(vlList( "printBNFOrderedRHSElements",THIS.objId),eval()))); SYNT.bnfCode = PTGbnfProd(THIS.bnfLHS, THIS.bnfRHS); END; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  28. FILE REPRESENTATION OF THE WORKFLOW

  29. File Dependencies Symbols.GIF Viag.XMODEL images.GDR Buttons.PNG View.LIDO Sync.TCL Edit.TCL Semantics.TCL View.MODEL Code.IPTG Viag.DEFS Code.SPECS Code.LIDO Code.HEAD Code.MODEL Aux.TCL Template.RES

  30. THE GENERATED ENVIRONMENT

  31. THE GENERATED ENVIRONMENT

  32. CONCLUSIONS • Systematization is achieved using generators; • Separation of concerns (with DEViL): • Syntax; • Interaction; • Semantics; • Code Generation; • Less code produced; • Ease on maintaining or evolving the code; Universidade do Minho, Departamento de Informática Nuno Oliveira, 2009

  33. VisualLISA www.di.uminho.pt/~gepl/VisualLISA

More Related