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.
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.
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).
Temos um grupo no Facebook para perguntas e avisos sobre a matéria. Acessem aqui.
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.
As notas de aula serão publicadas aqui no decorrer do semestre.
#### 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
Podem entrar em contato pelo meu email que responderei assim que possível.
Última Atualização: 2016-05-18 10:58