Embedding attribute grammars and their extensions using functional Zippers
Main Author: | |
---|---|
Publication Date: | 2014 |
Language: | eng |
Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
Download full: | http://hdl.handle.net/1822/35839 |
Summary: | Tese de doutoramento do Programa Doutoral em Informática |
id |
RCAP_e6e0ddcf2f01e9d1c36a0feb1cb01fdc |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/35839 |
network_acronym_str |
RCAP |
network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
repository_id_str |
https://opendoar.ac.uk/repository/7160 |
spelling |
Embedding attribute grammars and their extensions using functional ZippersGramáticas de atributos e as suas extenções embebidas em "Zippers" funcionais681.3Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaTese de doutoramento do Programa Doutoral em InformáticaAttribute 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,Fundação para a Ciência e Tecnologia (FCT), by the European Regional Development Fund (ERDF) through the Programme Compete, by the MIT Portugal Program, a large-scale international collaboration involving MIT and government, academia, and industry in Portugal, by the Luso-American Foundation (FLAD) and by the National Science Foundation (NSF).In particular,I received grants from the projects AMADEUS (PTD-C/EIA/70271/2006), refaBI-1PTDC/EIA/70271/2006; CROSS (FCOMP-01-0124-FEDER-010049), refª BI3-2011PTDC/EIA-CCO/108995/2008; SAVED (MIT-PT/TS-ITS/0036/2008), FATBIT (FCOMP-01-0124-FEDER-020532) and BEST CASE (NORTE-01-0124-FEDER-000058), refª BIM-2013_BestCase_RL3.2_UMINHO.Saraiva, João AlexandreFernandes, João Paulo Sousa FerreiraUniversidade do MinhoMartins, Pedro Miguel Ribeiro2014-07-222014-07-22T00:00:00Zdoctoral thesisinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://hdl.handle.net/1822/35839eng101458630info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T06:03:42Zoai:repositorium.sdum.uminho.pt:1822/35839Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T15:39:36.626156Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
dc.title.none.fl_str_mv |
Embedding attribute grammars and their extensions using functional Zippers Gramáticas de atributos e as suas extenções embebidas em "Zippers" funcionais |
title |
Embedding attribute grammars and their extensions using functional Zippers |
spellingShingle |
Embedding attribute grammars and their extensions using functional Zippers Martins, Pedro Miguel Ribeiro 681.3 Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
Embedding attribute grammars and their extensions using functional Zippers |
title_full |
Embedding attribute grammars and their extensions using functional Zippers |
title_fullStr |
Embedding attribute grammars and their extensions using functional Zippers |
title_full_unstemmed |
Embedding attribute grammars and their extensions using functional Zippers |
title_sort |
Embedding attribute grammars and their extensions using functional Zippers |
author |
Martins, Pedro Miguel Ribeiro |
author_facet |
Martins, Pedro Miguel Ribeiro |
author_role |
author |
dc.contributor.none.fl_str_mv |
Saraiva, João Alexandre Fernandes, João Paulo Sousa Ferreira Universidade do Minho |
dc.contributor.author.fl_str_mv |
Martins, Pedro Miguel Ribeiro |
dc.subject.por.fl_str_mv |
681.3 Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
681.3 Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
Tese de doutoramento do Programa Doutoral em Informática |
publishDate |
2014 |
dc.date.none.fl_str_mv |
2014-07-22 2014-07-22T00:00:00Z |
dc.type.driver.fl_str_mv |
doctoral thesis |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/1822/35839 |
url |
http://hdl.handle.net/1822/35839 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
101458630 |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
repository.mail.fl_str_mv |
info@rcaap.pt |
_version_ |
1833595456674856960 |