Suport IDE in Eclipse pentrulimbajul tau (DSL) folosindXtext<br />Dorin Florian Ciuca<br />dorin.ciuca at freescale.com<br...
Ce este un DSL?<br />DSL (Domain-Specific Language) reprezinta un limbaj de programare minimal orientatpe un anumitdomeniu...
Ce este Xtext?<br />Conform http://www.eclipse.org/Xtexteste:<br />un framework pentrudezvoltarea de limbaje conform <br /...
Cum functioneaza?<br />
Cum functioneaza? (continuare) <br />Porneste de la gramaticalimbajului care trebuiedefinita de user<br />Foloseste ANTLR ...
Cum functioneaza? (continuare)<br />La runtime, parserulpopuleazacele 2 modele AST siParseTreeactivandsuportul in IDE.<br />
Alte detalii <br />AST-ulrezultatfiind un model EMF, se poateusorinterconecta cu alte framework-uribazatepe EMF ca GMF<br ...
Gramatica<br />GramaticaesteinimaXtext-ului<br />Format EBNF<br />Reguli<br />terminale<br />de parsare<br />Gramaticaasig...
Demo – mem files - grammar<br />
Demo – mem files - editor<br />
2011 fsr democamp_xtext
Upcoming SlideShare
Loading in …5
×

2011 fsr democamp_xtext

615 views

Published on

Demo Camp Bucharest 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
615
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2011 fsr democamp_xtext

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

×