Programmable Rewriting Strategies in Haskell

Ralf Lämmel
<span title="">2005</span> <i title="Elsevier BV"> <a target="_blank" rel="noopener" href="" style="color: black;">Electronical Notes in Theoretical Computer Science</a> </i> &nbsp;
Programmable rewriting strategies provide a valuable tool for implementing traversal functionality in grammar-driven (or schema-driven) tools. The working Haskell programmer has access to programmable rewriting strategies via two similar options: (i) the Strafunski bundle for generic functional programming and language processing, and (ii) the "Scrap Your Boilerplate" approach to generic functional programming. Basic rewrite steps are encoded as monomorphic functions on datatypes. Rewriting
more &raquo; ... tegies are polymorphic functions composed from appropriate basic strategy combinators. We will briefly review programmable rewriting strategies in Haskell. We will address the following questions: • What are the merits of Haskellish strategies? • What is the relation between strategic programming and generic programming? • What are the challenges for future work on functional strategies? Strategic programming Our use of the term 'strategy' originates from the work on programmable rewriting strategies for term rewritingà la Stratego [30, 40, 38] . Strategic pro-This white paper served as an invited position paper for the 4th International Workshop on
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="">doi:10.1016/j.entcs.2004.11.021</a> <a target="_blank" rel="external noopener" href="">fatcat:2nuur7prgnc3jgm4xc6q5glz6a</a> </span>
<a target="_blank" rel="noopener" href="" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href=""> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="unlock alternate icon" style="background-color: #fb971f;"></i> </button> </a>