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

Contato

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


Última Atualização: 2016-05-18 10:58