Modularizing crosscuts in an e-commerce application in Lisp using HALO

Charlotte Herzeel, Kris Gybels, Pascal Costanza, Theo D'Hondt
<span title="">2009</span> <i title="ACM Press"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/p7tfh2zkojflljnvjroojo7oki" style="color: black;">Proceedings of the 2007 International Lisp Conference on - ILC &#39;07</a> </i> &nbsp;
Some program concerns cannot be cleanly modularized, and their implementation leads to code that is both hard to understand and maintain. In this paper we consider extending an e-commerce application, written in CLOS, with two of such crosscutting concerns. Though most of the time Common Lisp's macro facilities and CLOS' method combinations can be used to modularize crosscuts, we discuss the use of a more declarative solution when crosscuts depend on the execution history. For this purpose we
more &raquo; ... ve an overview of HALO, a novel pointcut language based on logic meta programming and temporal logic, which allows one to reason about program execution and (past) program state.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/1622123.1622136">doi:10.1145/1622123.1622136</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/lfp/HerzeelGCD07.html">dblp:conf/lfp/HerzeelGCD07</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/cbmqx56cobb3jpvypyotrh4bi4">fatcat:cbmqx56cobb3jpvypyotrh4bi4</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20081205072655/http://prog.vub.ac.be/Publications/2007/vub-prog-tr-07-20.pdf" 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="https://blobs.fatcat.wiki/thumbnail/pdf/46/4f/464f9ce59aec7ec975c93ab4ed2d8a2f6cc0be88.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/1622123.1622136"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> acm.org </button> </a>