Linguagens de Domínio Específico

Apresentação

Está é a página da disciplina MAI 716 - Tópicos Especiais em Sistemas de Informação (Linguagens de Domínio Específico), do professor Fabio Mascarenhas, para o trimestre de 2016.1. As aulas da disciplina são às quartas e sextas, das 10 às 12 horas, no Anfiteatro Maria Irene. As aulas começarão na quarta-feira dia 16/03.

Linguagens de Domínio Específico são linguagens projetadas com uma aplicação específica em mente, como uma maneira de expressar soluções para problemas de maneira mais simples e direta que a combinação de uma linguagem de programação de propósito geral e uma biblioteca. O objetivo desse curso é mostrar técnicas úteis na implementação de linguagens de domínio específico textuais, incluindo sua integração com linguagens de programação de propósito geral, e ambientes de desenvolvimento.

Os alunos precisam ter uma boa desenvoltura com programação, em especial com estruturas de dados e funções recursivas. Não é necessário conhecimento da teoria de linguagens formais, ou de técnicas de compilação e implementação de linguagens.

Ementa

Padrões de análise sintática: tokenização, análise recursiva, combinadores, PEGs; construindo e processando árvores sintáticas abstratas; escopo, nomes e tabelas de símbolos; análise de tipos; construção de interpretadores simples; tradução para linguagens de alto nível; integração com editores de texto: colorização de código, mensagens de erro.

Avaliação

Trabalho prático de implementação de uma linguagem de domínio específico de escolha livre do aluno (com a aprovação do professor).

Lista de Discussão

Temos um grupo no Facebook para perguntas e avisos sobre a matéria. Acessem aqui.

Livros

Martin Fowler (2012). Linguagens de Domínio Específico. Bookman Companhia Editora Ltda. Brasil.

Terence Parr (2009). Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages. Pragmatic Bookshelf. USA.

Notas de Aula

As notas de aula serão publicadas aqui no decorrer do semestre.

16/03 - Slides, projeto Eclipse

18/03 - Slides, exemplo de gramática

23/03 - Slides, projeto Eclipse

30/03 - Slides, projeto Eclipse

13/04 - Slides, projeto Eclipse

15/04 - Slides, projeto Eclipse

20/04 - Slides, projeto Eclipse

27/04 - Slides, projeto Eclipse

29/04 - Slides, projeto Eclipse

04/05 - Slides, projeto Eclipse

06/05 - Slides, projeto Eclipse

11/05 - Slides, projeto Eclipse

13/05 - Slides, projeto Eclipse

18/05 - Slides, projeto Eclipse

20/05 - Slides, projeto Eclipse

25/05 - Slides, projeto Eclipse

01/06 - Slides, projeto Eclipse

03/06 - Slides, projeto Eclipse

08/06 - Slides, projeto Eclipse

Contato

Podem entrar em contato pelo meu email que responderei assim que possível.


Última Atualização: 2016-06-08 23:49