Linguagens de Domínio Específico

Apresentação

Está é a página da disciplina de Tópicos Especiais em Sistemas de Informação (Linguagens de Domínio Específico), do professor Fabio Mascarenhas, para 2017.1. As aulas da disciplina são às segundas e quartas, das 8 às 10 horas, no Anfiteatro Newton Faller, dentro do NCE (os alunos que não têm crachá do NCE precisarão pedir um crachá de visitante na portaria do NCE. O Newton Faller fica no térreo, e não é difícil de achar).

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.

13/03 - Slides, projeto Eclipse

20/03 - Slides

22/03 - Slides

27/03 - Slides, projeto Eclipse

29/03 - Slides, projeto Eclipse

05/04 - Slides, projeto Eclipse

10/04 - Slides, projeto Eclipse

12/04 - Slides, projeto Eclipse

17/04 - Slides, projeto Eclipse

19/04 - Slides, projeto Eclipse

26/04 - Slides, projeto Eclipse

03/05 - Slides, projeto Eclipse

08/05 - projeto Eclipse

10/05 - Slides, projeto Eclipse

15/05 - Slides, projeto Eclipse

17/05 - Slides, projeto Eclipse

22/05 - Slides, projeto Eclipse

24/05 - Slides, projeto Eclipse

29/05 - projeto Eclipse

31/05 - Slides, projeto Eclipse

05/06 - projeto Eclipse

Contato

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


Última Atualização: 2017-06-05 01:40