A mechanized Theory of Aspects [article]

Henry Sudhof, Technische Universität Berlin, Technische Universität Berlin, Stefan Jähnichen
<span title="2010-06-25">2010</span>
Over the past ten years, Aspect Orientation has emerged as a new paradigm in software engineering. The key feature promoted in this paradigm is the ability to modularize concerns - aspects - that by nature or implementation are orthogonal to the modular structure of the base application. To allow such a modularization, these aspect modules themselves are able to cut across the structure of the underlying application. This cutting across the structure goes beyond the mere referencing of remote
more &raquo; ... ta, allowing changes of the base application's control flow. Thus, Aspects offer the functionality of calling themselves instead of the intended target of an invocation. This altered invocation of the aspect is able to alter, extend or even replace parts of the original program. Being able to drastically alter the base application's structure comes at the price of a decrease in safety: aspects themselves do not fulfill the expectations held for classical modules and can even harm the modularization of the existing application. Basic concepts such as the locality of errors, type soundness and re-usability can thus be harmed by aspects. This thesis employs the method of rigorous language development on Aspect Orientation in order to show what classes of aspects maintain the safety of an application. Our rigorous approach entails the design of a family of aspect oriented core calculi, entirely mechanized in the interactive theorem prover Isabelle/HOL. The emphasis of the work is placed on two different fields. Fundamental questions of modularity, type soundness and subtyping form the first such field. Technical considerations such as binders, variable representation and code generation are the content of the other. Features of the Sigma-Asc calculi developed in this theses are a modular concept for aspects in an object oriented setting and several type systems building upon that foundation. These type systems enforce static type safety on aspects, while maintaining modularity and thus re-usability. This approach is also used [...]
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.14279/depositonce-2501">doi:10.14279/depositonce-2501</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/535e54yvmzfa7it6irj6svhmve">fatcat:535e54yvmzfa7it6irj6svhmve</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20200109214532/https://depositonce.tu-berlin.de/bitstream/11303/2798/2/Dokument_10.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/85/07/85075ebcfeefa10298704dc823732bfb8fa134fe.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.14279/depositonce-2501"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="unlock alternate icon" style="background-color: #fb971f;"></i> Publisher / doi.org </button> </a>