Presentation is loading. Please wait.

Presentation is loading. Please wait.

Author Context Institution Presentation. The Problem Conception of a Visual Language; Development of a Processor for the Language; Idealization of the.

Similar presentations


Presentation on theme: "Author Context Institution Presentation. The Problem Conception of a Visual Language; Development of a Processor for the Language; Idealization of the."— Presentation transcript:

1 Author Context Institution Presentation

2 The Problem Conception of a Visual Language; Development of a Processor for the Language; Idealization of the Visual Language; Formalization of the language; Concretization of the initial idea;

3 After Funny Times...

4 Let’s get to Business! VisualLISA Analysis Domain Analysis VL Formal Notations VPE generators Implementation

5 VisualLISA Analysis VisualLISA – a graphical front-end for LISA (an AG-based compiler generator); Visual Edition of Attribute Grammars (production-oriented); Aims at reducing mental effort when specifying AGs; Performs syntax and semantic check of the AG model drawn; Generates code (LISA, XML, BNF) from the drawings; The environment should be automatic and systematically generated resorting to a VPE generator

6 Domain Specific Problem The knowladge about AG was not enough; Decicion: Search for AG domain knowledge until the end of the world; When I get back: Deep undertstanding about AG;

7 VL Formal Notations Two were found: MASOViLA and PLG; PLG was chosen: Is simpler than MASOViLA; Closer to BNF usual notation; TERMINAL → over ( rectangle, text) TREE_BRANCH → points_from ( points_to (line, ~TERMINAL), ~LEFT_SYMBOL) | points_from ( points_to ( line, ˜NONTERMINAL), ~LEFT SYMBOL)

8 VPE Generators Several VPE generators have been studied: DEViL VLDesk Tiger... DEViL was chosen: Based on Modular Symbol Oriented AG Specifications; Generated environment is complete but extensible; Stand-alone environment for the most important SOs;...

9 Implementation The Development Process Abstract Syntax Definition; Interaction and Layout Definition; Semantics Verification Implementation; Code Generation.

10 Systematic Development Abstract Syntax Definition Interaction&Layout Definition Semantics Implementation Code Generation Systematization VisualLISA TG module TW

11 Scene 1 The Development Process Abstract Syntax Definition; Interaction and Layout Definition; Semantics Verification Implementation; Code Generation.

12 Abstract Syntax Definition Abstract Syntax Definition PLG Structure Definition CLASS Root { name: VAL VLString; semprods: SUB Semprod*; definitions: SUB Definitions!; library: SUB Library?; }... TERMINAL → over ( rectangle, text) (…) Join&Transform Tree Grammar (TG)

13 Systematic Development (2) Abstract Syntax Definition Interaction&Layout Definition Semantics Implementation Code Generation Systematization VisualLISA TG module TW

14 Scene 2 The Development Process Abstract Syntax Definition; Interaction and Layout Definition; Semantics Verification Implementation; Code Generation.

15 Interaction & Layout Definition Interaction&Layout Definition Views Definition Symbols Definition TG module VIEW rootView ROOT Root { BUTTON IMAGE "img::btnSemprod” INSERTS Semprod INFO "Inserts a new Production"; } SYMBOL rootView_Root INHERITS VPRootElement, VPForm COMPUTE SYNT.drawing = ADDROF(rootViewDrawing); END; SYMBOL rootView_Root_semprods INHERITS VPFormElement, VPSimpleList COMPUTE SYNT.formElementName = "productions"; END; Join&Transform

16 Systematic Development (3) Abstract Syntax Definition Interaction&Layout Definition Semantics Implementation Code Generation Systematization VisualLISA TG module TW DEViL

17 Scene 3 The Development Process Abstract Syntax Definition; Interaction and Layout Definition; Semantics Verification Implementation; Code Generation.

18 Semantics Implementation Semantics Implementation Formal Constraints TW module TCL_programming TG -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 ”” } =>

19 Scene 4 The Development Process Abstract Syntax Definition; Interaction and Layout Definition; Semantics Verification Implementation; Code Generation.

20 Code Generation Auxiliary Functions TG module Templates LISA, XAGra, BNF Translation Join&Transform bnfProd(lhs, rhs): [lhs] -> [rhs] 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;

21 Systematic Development (4) Abstract Syntax Definition Interaction&Layout Definition Semantics Implementation Code Generation Systematization VisualLISA TG module TW DEViL

22

23 Example Generation of Code From the AG Drawn – LISA – Generates XAGra LISA XAG ra

24 One Step More Requirements Analysis Domain Analysis VL Formal Notations VPE generators Implementation Dissemination

25 Dissemination Website developed : www.di.uminho.pt/~gepl/VisualLISAwww.di.uminho.pt/~gepl/VisualLISA Complete Technical Report written Papers submited to International Conferences Several Talks were given.

26 Conclusion and Future Work VisualLISA really works! The use of an environment generator allows a systematic development; Maintaining and evolving the modules is easy; It lacks an usability test to confirm whether VisualLISA eases or not the specification of AG;

27


Download ppt "Author Context Institution Presentation. The Problem Conception of a Visual Language; Development of a Processor for the Language; Idealization of the."

Similar presentations


Ads by Google