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.

Crie sua Linguagem de Programação com XText

333 views

Published on

Apresentação utilizada no minicurso ministrado na Semana Acadêmica de Informática (SALIN 2015), UTFPR, campus de Francisco Beltrão.

Published in: Education
  • Be the first to comment

Crie sua Linguagem de Programação com XText

  1. 1. Crie sua Linguagem de Programação com XText Michel Albonico UTFPR - Francisco Beltrão
  2. 2. Roteiro ● Domain Specific Language (DSL) ● Introdução ao XText ● Tutorial
  3. 3. Domain Specific Language (DSL) ● Passado: linguagem generalista ● Atualidade: linguagem para cada domínio ● Fácil de aprender ● Acelera o desenvolvimento ● Menos propenso a erros: restrito ao metamodelo
  4. 4. Introdução ao XText ● Projeto open-source ● Framework DSL baseado no Eclipse ● Integração com Eclipse Modeling Framework (EMF) ● É usado como gerador de código: ○ Java, C, C++, etc.
  5. 5. Tutorial ● Eclipse ● File > New > Project > XText Project
  6. 6. Tutorial
  7. 7. Tutorial
  8. 8. Tutorial ● Run As > Eclipse Application ● File > New > Project > Java Project ● New > File ○ File.mydsl
  9. 9. Tutorial ● Gramática Básica https://eclipse.org/Xtext/documentation/301_grammarlanguage.html Elemento : syntaxe do elemento var = sub-elemento var += sub-elemento ;
  10. 10. Tutorial ● Gramática Básica - Operadores de Cardinalidade exatamente um ? um ou nenhum * zero ou mais + um ou mais
  11. 11. Tutorial ● Gramática Básica - Operadores de Cardinalidade ○ Exemplo: var+=STRING? (var+=STRING)? STRING INT ID (‘a’..’z’) (‘A’..’Z’) (‘0’..’9’)
  12. 12. Tutorial ● Gramática Básica - Exemplo Elemento : ‘elemento’ name=STRING ‘{‘ codigo+=STRING ‘}’;
  13. 13. Tutorial ● Exercício: criar a sintaxe para o código abaixo. principal { um { comando } dois { comando } ... }
  14. 14. Tutorial ● Como executar? ○ Transformar em uma linguagem de programação. ○ Link: https://eclipse.org/Xtext/documentation/103_domainmodelnextsteps.html

×