Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/35839

TítuloEmbedding attribute grammars and their extensions using functional Zippers
Outro(s) título(s)Gramáticas de atributos e as suas extenções embebidas em "Zippers" funcionais
Autor(es)Martins, Pedro Miguel Ribeiro
Orientador(es)Saraiva, João Alexandre
Fernandes, João Paulo Sousa Ferreira
Data22-Jul-2014
Resumo(s)Attribute grammars are a suitable formalism to express complex software language analysis and manipulation algorithms, which rely on multiple traversals of the underlying syntax tree. Attribute Grammars have been extended with mechanisms such as references, higher order and circular attributes. Such extensions provide a powerful modular mechanism and allow the speci cation of complex computations. In this work we de ned an elegant and simple, zipper-based embedding of attribute grammars and their extensions as rst class citizens. In this setting, language speci cations are de ned as a set of independent, o -theshelf components that can easily be composed into a powerful, executable language processor. We have also developed techniques to describe automatic bidirectional transformations between grammars. We de ne a method to de ne transformation speci cations which, through our automatic mechanisms, are inverted and expanded and generate attribute grammars that specify a bidirectional environment. We have implemented several real examples of language speci cation and processing in our setting, some of which are presented in this work. We have also developed and implemented a DSL using our technique for embedding attribute grammars, which we have deployed in a web portal for software analysis.
Gramáticas de atributos são um formalismo que permite exprimir algoritmos complexos de análise e transformação de programas, que tipicamente requerem várias travessias às árvores abstractas que os representam. As gramáticas de atributos foram estendidas com mecanismos que permitem referências, ordem superior e circularidade em atributos. Estas extensões permitem a implementação de mecanismos complexos e modulares de computações em linguagens. Neste trabalho embebemos gramáticas de atributos e as suas extensões de forma elegante e simples, através de uma técnica chamada "zippers". Na nossa técnica, especificações de linguagens são definidas com um conjunto de componentes independentes de primeira ordem, que podem ser facilmente compostos para formar poderosos ambientes de processamento de linguagens. Também desenvolvemos técnicas que descrevem transformações bidirecionais entre gramáticas. Definimos métodos de especificar transformações que, através de mecanismos completamente automáticos, são invertidas e estendidas e geram gramáticas de atributos que especificam o nosso ambiente bidirecional. Com esta técnica foram implementados vários exemplos de especificação e processamento de linguagens, alguns dos quais estão definidos e explicados neste documento. Da mesma forma, criamos e desenvolvemos uma linguagem de domí nio específico usando a nossa técnica; linguagem essa que integramos,
TipoTese de doutoramento
DescriçãoTese de doutoramento do Programa Doutoral em Informática
URIhttps://hdl.handle.net/1822/35839
AcessoAcesso aberto
Aparece nas coleções:BUM - Teses de Doutoramento
DI/CCTC - Teses de Doutoramento (phd thesis)

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Pedro Miguel Ribeiro Martins.pdf2,42 MBAdobe PDFVer/Abrir

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID