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.
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.
Podem entrar em contato pelo meu email que responderei assim que possível.
Última Atualização: 2017-06-05 01:40