pyZtrategic: a zipper-based embedding of strategies and attribute grammars in Python

Bibliographic Details
Main Author: Rodrigues, Emanuel
Publication Date: 2024
Other Authors: Macedo, José Nuno Castro, Viera, Marcos, Saraiva, João
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: https://hdl.handle.net/1822/95663
Summary: 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