2011 fsr democamp_xtext

  • 449 views
Uploaded on

Demo Camp Bucharest 2011

Demo Camp Bucharest 2011

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
449
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Suport IDE in Eclipse pentrulimbajul tau (DSL) folosindXtext
    Dorin Florian Ciuca
    dorin.ciuca at freescale.com
    June 2011
    Eclipse DemoCamp Bucharest
  • 2. Ce este un DSL?
    DSL (Domain-Specific Language) reprezinta un limbaj de programare minimal orientatpe un anumitdomeniu. Ex: SQL, limbaje XML cum e ANT etc
    GPL (General Purpose Language) limbaj de programare general Ex: Java, C, C++ etc
    Folosireaunui GPL pentrurezolvareauneiproblemedintr-un anumitdomeniuesteposibila, dar nu e neaparatceamaiindicatasolutie. Un DSL pentruaceldomeniuartrebuisaajute la: crestereaproductivitatii, claritatiicodului, mentineresimodificarimaiusoare etc.
    XML poatefifolositpentrudefinirea de DSL-uri, dar are ca dezavantaj major sintaxageneralizata care nu e usor de urmarit de catreoameni
  • 3. Ce este Xtext?
    Conform http://www.eclipse.org/Xtexteste:
    un framework pentrudezvoltarea de limbaje conform
    folositpentru
    a crea un limbajnou
    a adaugasuportpentru un limbaj existent
    un mic DSL
    un GPL complex
    Xtextpermiteadaugarea de IDE support in Eclipse pentru un limbaj, asemanator cu suportul existent dejapentru Java in Eclipse IDE.
  • 4. Cum functioneaza?
  • 5. Cum functioneaza? (continuare)
    Porneste de la gramaticalimbajului care trebuiedefinita de user
    Foloseste ANTLR pentru a genera un parser conform gramaticii (http://www.antlr.org)
    Genereazametamodelulpentru abstract syntax tree (AST) bazatpeecore (de fapteste un graf, darilnumim traditional AST)
    Genereaza un eclipse plug-in care vacontinesuportulpentru IDE bazatpe AST siParseTree
    Genereaza optional un eclipse plug-in care contine un generator pentrulimbajuldefinit
  • 6. Cum functioneaza? (continuare)
    La runtime, parserulpopuleazacele 2 modele AST siParseTreeactivandsuportul in IDE.
  • 7. Alte detalii
    AST-ulrezultatfiind un model EMF, se poateusorinterconecta cu alte framework-uribazatepe EMF ca GMF
    Xtext se poatefolosisi ca aplicatie java standalone, nu e bazatpe Eclipse OSGI.
  • 8. Gramatica
    GramaticaesteinimaXtext-ului
    Format EBNF
    Reguli
    terminale
    de parsare
    Gramaticaasigura:
    lexing
    parsing
    linking
    validation
  • 9. Demo – mem files - grammar
  • 10. Demo – mem files - editor