Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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

0 views

Published on

Demo Camp Bucharest 2011

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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 />

×