pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python
Autor(a) principal: | |
---|---|
Data de Publicação: | 2024 |
Outros Autores: | , , |
Idioma: | eng |
Título da fonte: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
Texto Completo: | https://hdl.handle.net/1822/95663 |
Resumo: | This paper presents pyZtrategic: a library that embeds strategic term rewriting and attribute grammars in the Python programming language. Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering: The former relies on strategies to apply term rewrite rules in defining large-scale language transformations, while the latter is suitable to express context-dependent language processing algorithms. Thus, pyZtrategic offers Python programmers recursion schemes (strategies) which apply term rewrite rules in defining large scale language transformations. It also offers attribute grammars to express context-dependent language processing algorithms. PyZtrategic offers the best of those two worlds, thus providing powerful abstractions to express software maintenance and evolution tasks. Moreover, we developed several language engineering problems in pyZtrategic, and we compare it to well established strategic programming and attribute grammar systems. Our preliminary results show that our library offers similar expressiveness as such systems, but, unfortunately, it does suffer from the current poor runtime performance of the Python language. |
id |
RCAP_6b3bcc0432e730b9e145ecfaa2c41b7a |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/95663 |
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 |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in PythonAttribute grammarsStrategic term rewritingSoftware analysis and evolutionEvolutionSoftware AnalysisThis paper presents pyZtrategic: a library that embeds strategic term rewriting and attribute grammars in the Python programming language. Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering: The former relies on strategies to apply term rewrite rules in defining large-scale language transformations, while the latter is suitable to express context-dependent language processing algorithms. Thus, pyZtrategic offers Python programmers recursion schemes (strategies) which apply term rewrite rules in defining large scale language transformations. It also offers attribute grammars to express context-dependent language processing algorithms. PyZtrategic offers the best of those two worlds, thus providing powerful abstractions to express software maintenance and evolution tasks. Moreover, we developed several language engineering problems in pyZtrategic, and we compare it to well established strategic programming and attribute grammar systems. Our preliminary results show that our library offers similar expressiveness as such systems, but, unfortunately, it does suffer from the current poor runtime performance of the Python language.This work is financed by National Funds through the Portuguese funding agency, FCT – Fundação para a Ciência e a Tecnologia, within project LA/P/0063/2020. DOI 10.54499/LA/P/0063/2020. The second author is also sponsored by FCT grant 2021.08184.BD.SCITEPRESS – Science and Technology PublicationsUniversidade do MinhoRodrigues, EmanuelMacedo, José Nuno CastroViera, MarcosSaraiva, João20242024-01-01T00:00:00Zconference paperinfo:eu-repo/semantics/publishedVersionapplication/pdfhttps://hdl.handle.net/1822/95663eng978-989-758-696-52184-489510.5220/0012704000003687https://www.scitepress.org/Papers/2024/127040/127040.pdfinfo: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:RCAAP2025-05-24T01:20:10Zoai:repositorium.sdum.uminho.pt:1822/95663Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T07:36:23.558565Repositó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 |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
title |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
spellingShingle |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python Rodrigues, Emanuel Attribute grammars Strategic term rewriting Software analysis and evolution Evolution Software Analysis |
title_short |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
title_full |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
title_fullStr |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
title_full_unstemmed |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
title_sort |
pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python |
author |
Rodrigues, Emanuel |
author_facet |
Rodrigues, Emanuel Macedo, José Nuno Castro Viera, Marcos Saraiva, João |
author_role |
author |
author2 |
Macedo, José Nuno Castro Viera, Marcos Saraiva, João |
author2_role |
author author author |
dc.contributor.none.fl_str_mv |
Universidade do Minho |
dc.contributor.author.fl_str_mv |
Rodrigues, Emanuel Macedo, José Nuno Castro Viera, Marcos Saraiva, João |
dc.subject.por.fl_str_mv |
Attribute grammars Strategic term rewriting Software analysis and evolution Evolution Software Analysis |
topic |
Attribute grammars Strategic term rewriting Software analysis and evolution Evolution Software Analysis |
description |
This paper presents pyZtrategic: a library that embeds strategic term rewriting and attribute grammars in the Python programming language. Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering: The former relies on strategies to apply term rewrite rules in defining large-scale language transformations, while the latter is suitable to express context-dependent language processing algorithms. Thus, pyZtrategic offers Python programmers recursion schemes (strategies) which apply term rewrite rules in defining large scale language transformations. It also offers attribute grammars to express context-dependent language processing algorithms. PyZtrategic offers the best of those two worlds, thus providing powerful abstractions to express software maintenance and evolution tasks. Moreover, we developed several language engineering problems in pyZtrategic, and we compare it to well established strategic programming and attribute grammar systems. Our preliminary results show that our library offers similar expressiveness as such systems, but, unfortunately, it does suffer from the current poor runtime performance of the Python language. |
publishDate |
2024 |
dc.date.none.fl_str_mv |
2024 2024-01-01T00:00:00Z |
dc.type.driver.fl_str_mv |
conference paper |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/1822/95663 |
url |
https://hdl.handle.net/1822/95663 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
978-989-758-696-5 2184-4895 10.5220/0012704000003687 https://www.scitepress.org/Papers/2024/127040/127040.pdf |
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.publisher.none.fl_str_mv |
SCITEPRESS – Science and Technology Publications |
publisher.none.fl_str_mv |
SCITEPRESS – Science and Technology Publications |
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_ |
1833603016741093376 |