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

Slides:



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

Universidade do Minho, Departamento de Informática Nuno Oliveira, 2008.
CS7100 (Prasad)L16-7AG1 Attribute Grammars Attribute Grammar is a Framework for specifying semantics and enables Modular specification.
Translator Architecture Code Generator ParserTokenizer string of characters (source code) string of tokens abstract program string of integers (object.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
VisualLISA A Quick and Simple Demonstration. The default aspect of an attribute grammar specification on VisualLISA. In this view we can add a new production.
ISBN Chapter 3 Describing Syntax and Semantics.
ISBN Chapter 3 More Syntax –BNF –Derivations –Practice.
CS 330 Programming Languages 09 / 13 / 2007 Instructor: Michael Eckmann.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Slide 1 Chapter 3 Attribute Grammars. Slide 2 Attribute Grammars Certain language structures cannot be described using EBNF. Attribute grammars are extensions.
XML for Information Management – Day 3: Formal and Natural Languages in XML Airi Salminen XML for Information Management University of Erlangen-Nuremberg.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Dr. Muhammed Al-Mulhem 1ICS ICS 535 Design and Implementation of Programming Languages Part 1 Fundamentals (Chapter 4) Compilers and Syntax.
BİL744 Derleyici Gerçekleştirimi (Compiler Design)1.
Use of Attribute Grammars to Construct XML translators Supervisor: Prof. John Hurst Presenter: Nishan Jayasinghe.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Introduction to Programming Lecture Number:. What is Programming Programming is to instruct the computer on what it has to do in a language that the computer.
The College of Saint Rose CIS 433 – Programming Languages David Goldschmidt, Ph.D. from Concepts of Programming Languages, 9th edition by Robert W. Sebesta,
2.2 A Simple Syntax-Directed Translator Syntax-Directed Translation 2.4 Parsing 2.5 A Translator for Simple Expressions 2.6 Lexical Analysis.
Xactium xDSLs Run Models Not Code Tony Clark
Syntax & Semantic Introduction Organization of Language Description Abstract Syntax Formal Syntax The Way of Writing Grammars Formal Semantic.
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
Winter 2007SEG2101 Chapter 71 Chapter 7 Introduction to Languages and Compiler.
CS Describing Syntax CS 3360 Spring 2012 Sec Adapted from Addison Wesley’s lecture notes (Copyright © 2004 Pearson Addison Wesley)
3-1 Chapter 3: Describing Syntax and Semantics Introduction Terminology Formal Methods of Describing Syntax Attribute Grammars – Static Semantics Describing.
Chapter Twenty-ThreeModern Programming Languages1 Formal Semantics.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
TextBook Concepts of Programming Languages, Robert W. Sebesta, (10th edition), Addison-Wesley Publishing Company CSCI18 - Concepts of Programming languages.
CS 363 Comparative Programming Languages Semantics.
Bernd Fischer RW713: Compiler and Software Language Engineering.
CSE 3341 Principles of Programming Languages Neelam Soundarajan Computer Sc. & Eng. Dreese Labs 579
Chapter 2. Design of a Simple Compiler J. H. Wang Sep. 21, 2015.
Introduction to Language Processing Technology Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University.
ISBN Chapter 3 Describing Semantics.
Chapter 3 Part II Describing Syntax and Semantics.
ISBN Chapter 3 Describing Syntax and Semantics.
Copyright © 2006 Addison-Wesley. All rights reserved. Ambiguity in Grammars A grammar is ambiguous if and only if it generates a sentential form that has.
Program Comprehension for Domain-Specific Languages Maria João Varanda 1, Marjan Mernik 2, Daniela da Cruz 3, Pedro Henriques 3 1 Polytechnic Institute.
The Interpreter Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
Syntax and Semantics Form and Meaning of Programming Languages Copyright © by Curt Hill.
 Fall Chart 2  Translators and Compilers  Textbook o Programming Language Processors in Java, Authors: David A. Watts & Deryck F. Brown, 2000,
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 2 Syntax A language that is simple to parse.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Programming Languages and Design Lecture 2 Syntax Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
C H A P T E R T W O Linking Syntax And Semantics Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Overview of Previous Lesson(s) Over View 3 Model of a Compiler Front End.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
C H A P T E R T W O Syntax and Semantic. 2 Introduction Who must use language definitions? Other language designers Implementors Programmers (the users.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Syntax.
CS416 Compiler Design1. 2 Course Information Instructor : Dr. Ilyas Cicekli –Office: EA504, –Phone: , – Course Web.
Advanced programming language theory. week 2. Attribute grammars and semantics.
PZ03CX Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ03CX - Language semantics Programming Language Design.
Chapter 3 – Describing Syntax CSCE 343. Syntax vs. Semantics Syntax: The form or structure of the expressions, statements, and program units. Semantics:
LECTURE 10 Semantic Analysis. REVIEW So far, we’ve covered the following: Compilation methods: compilation vs. interpretation. The overall compilation.
Describing Syntax and Semantics
A Simple Syntax-Directed Translator
Chapter 3 Context-Free Grammar and Parsing
International Research and Development Institute Uyo
IDE and Visualisation of Abstract Syntax Trees for Coco/R
Implementing Language Extensions with Model Transformations
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Chapter 10: Compilers and Language Translation
Implementing Language Extensions with Model Transformations
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Visual Programming Languages ICS 539 Icon System Visual Languages & Visual Programming, Chapter 1, Editor Chang, 1990 ICS Department KFUPM Sept. 1,
Presentation transcript:

Author Context Institution Presentation

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;

After Funny Times...

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

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

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;

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)

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;...

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

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

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

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)

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

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

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

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

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

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 ”” } =>

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

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;

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

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

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

Dissemination Website developed : Complete Technical Report written Papers submited to International Conferences Several Talks were given.

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;