Download presentation
Presentation is loading. Please wait.
Published byImogene Barrett Modified over 9 years ago
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
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;
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.