Please use this identifier to cite or link to this item: http://dx.doi.org/10.14279/depositonce-2501
Main Title: A mechanized Theory of Aspects
Translated Title: Eine mechanisierte Aspektheorie
Author(s): Sudhof, Henry
Advisor(s): Jähnichen, Stefan
Granting Institution: Technische Universität Berlin, Fakultät IV - Elektrotechnik und Informatik
Type: Doctoral Thesis
Language: English
Language Code: en
Abstract: 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 data, 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 to handle the variance issues encountered when combining aspects with depth subtyping. Furthermore, several classes of aspects are identified in the thesis, including a class of compositional aspects. In the field of language metatheory, the thesis contributes a comparative mechanization of the Sigma-Asc calculus introduced in this thesis, comparing the locally nameless and the de Bruijn variable representations.
In den vergangenen zehn Jahren hat sich Aspektorientierung als ein neues Paradigma in der Softwaretechnik etabliert. Dieses Paradigma erlaubt die Modularisierung von Funktionalitäten, die orthogonal zur eigentlichen Modulstruktur eines Programms liegen. Um dies zu ermöglichen, sind solche Aspektmodule selbst nicht an die Modulstruktur gebunden, sondern in der Lage diese zu durchbrechen. Dieses Durchbrechen geht über Referenzieren bestehender Strukturen hinaus, vielmehr verändern Aspekte den Kontrollfluss der ursprünglichen Anwendung und verursachen so ihre eigene Ausführung. Dieser invertierte Kontrollflusses bietet somit die Möglichkeit, Teile des ursprünglichen Programms zu ergänzen, zu entfernen oder zu ersetzen. Diese Fähigkeit geht mit einem Sicherheitsverlust einher: Aspekte erfüllen oft nicht die Erwartungen an Module und können die Modularisierung der eigentlichen Basisanwendung sogar stören. Grundsätzliche Anforderungen an Module wie Fehlerlokalität, Typsicherheit oder Wiederverwendbarkeit sind somit für Aspekte beziehungsweise mit ihnen nicht unbedingt erfüllt. Die vorliegende Arbeit behandelt die Thematik rigoros, indem eine Familie von aspektorientierten Kalkülen vollständig in dem interaktiven Theorembeweiser Isabelle/HOL entwickelt wird. Dazu werden zunächst die Grundlagen mechanisierter Sprachtheorie eingeführt und bestehende Ansatze zur formalen Behandlung von Aspekten verglichen. Der darauf aufbauende wissenschaftliche Beitrag gliedert sich in zwei Bereiche: Den der formalen Behandlung der Aspektorientierung und den der mechanisierten Sprachtheorie. Im ersten Feld besteht der Beitrag dieser Arbeit zunächst in der Entwicklung eines aspektorientierten Kernkalküls auf Grundlage des Sigma Kalküls. Wichtige Kerneigenschaften des Kalküls werden bewiesen und es wird ein Kompositionalitätsbegriff für Aspekte entwickelt. Ferner ist die statische Analyse von Aspekten mittels Typsystemen Gegenstand der Arbeit, zunächst mittels eines einfachen modularen Typsystems, dann in iterativen Schritten um Subtyping und Varianz erweitert. Jedes vorgestellte Typsystem zur Typisierung von Aspekten umfasst einen kompletten Beweis der Typsicherheit. Ergebnisse des Kalküls werden im Wege einer Codegenerierung und einer Szenarienanalyse auf die Ebene der Anwendbarkeit übertragen. Darauf aufbauend, erfolgt die Entwicklung einer Kategorisierung von Aspekten aufgrund ihrer Sicherheitseigenschaften. Auf dem Gebiet der mechanisierten Sprachentwicklung stellt diese Arbeit ein objekt- und aspektorientiertes Kalkül vor, das vollständig in dem interaktiven Theorembeweiser Isabelle/HOL realisiert wurde. Auf Basis dieses Kalküls wurden zudem zwei verschiedene Variablenrepräsentationen erprobt und gegenübergestellt. Dieser direkte Vergleich bietet einen weiteren Beitrag für die Mechanisierung von Sprachen.
URI: urn:nbn:de:kobv:83-opus-26916
http://depositonce.tu-berlin.de/handle/11303/2798
http://dx.doi.org/10.14279/depositonce-2501
Exam Date: 28-May-2010
Issue Date: 25-Jun-2010
Date Available: 25-Jun-2010
DDC Class: 004 Datenverarbeitung; Informatik
Subject(s): Aspektorientierung
Isabelle/HOL
Sigma-Kalkül
Theorembeweiser
Typen
Aspect orientation
Isabelle/HOL
Sigma calculus
Theorem provers
Types
Creative Commons License: https://creativecommons.org/licenses/by-sa/2.0/de
Appears in Collections:Technische Universität Berlin » Fakultäten & Zentralinstitute » Fakultät 4 Elektrotechnik und Informatik » Institut für Softwaretechnik und Theoretische Informatik » Publications

Files in This Item:
File Description SizeFormat 
Dokument_10.pdf2.33 MBAdobe PDFThumbnail
View/Open


Items in DepositOnce are protected by copyright, with all rights reserved, unless otherwise indicated.