On language processors and software maintenance [Elektronische Ressource] / Wolfgang Lohmann
219 Pages
English

On language processors and software maintenance [Elektronische Ressource] / Wolfgang Lohmann

-

Downloading requires you to have access to the YouScribe library
Learn all about the services we offer

Description

Wolfgang LohmannOn Language ProcessorsandSoftware MaintenanceDissertationzurErlangung des akademischen GradesDoktor-Ingenieur (Dr.-Ing.)der Fakultät für Informatik und Elektrotechnikder Universität Rostockurn:nbn:de:gbv:28-diss2009-0109-4The present work has been accepted by the Faculty of Computer Science and ElectricalEngineering at University of Rostock in May 2009 as dissertation to achieve the academicdegree Doktor-Ingenieur (Dr.-Ing.).Referees: Prof. Dr. rer. nat. Dr. Ing. habil. Günter Riedewald (supervisor)University of Rostock, GermanyProf. Dr.-Ing. Ralf LämmelUniversity of Koblenz-Landau, GermanyProfessor Dr. Marjan MernikUniversity of Maribor, SloveniaSubmission: 27th October 2008Defence: 17th April 2009AbstractSoftware maintenance factories are infrastructures that generate tools for software main-tenance from language descriptions and additional information. Besides the maintenanceof language specifications, software language evolution requires maintenance of softwarewritten in that language as well as maintenance of software that transforms software writ-ten in the evolving language. We argue that a software maintenance factory needs specialmaintenance. It should provide support for maintenance of language descriptions, derivedtools, and the maintenance factory itself. As language processors can form the core ofsuch technology, we investigate their improvement.

Subjects

Informations

Published by
Published 01 January 2009
Reads 26
Language English
Document size 1 MB

Wolfgang Lohmann
On Language Processors
and
Software Maintenance
Dissertation
zur
Erlangung des akademischen Grades
Doktor-Ingenieur (Dr.-Ing.)
der Fakultät für Informatik und Elektrotechnik
der Universität Rostock
urn:nbn:de:gbv:28-diss2009-0109-4The present work has been accepted by the Faculty of Computer Science and Electrical
Engineering at University of Rostock in May 2009 as dissertation to achieve the academic
degree Doktor-Ingenieur (Dr.-Ing.).
Referees: Prof. Dr. rer. nat. Dr. Ing. habil. Günter Riedewald (supervisor)
University of Rostock, Germany
Prof. Dr.-Ing. Ralf Lämmel
University of Koblenz-Landau, Germany
Professor Dr. Marjan Mernik
University of Maribor, Slovenia
Submission: 27th October 2008
Defence: 17th April 2009Abstract
Software maintenance factories are infrastructures that generate tools for software main-
tenance from language descriptions and additional information. Besides the maintenance
of language specifications, software language evolution requires maintenance of software
written in that language as well as maintenance of software that transforms software writ-
ten in the evolving language. We argue that a software maintenance factory needs special
maintenance. It should provide support for maintenance of language descriptions, derived
tools, and the maintenance factory itself. As language processors can form the core of
such technology, we investigate their improvement. This is done in three areas:
Maintenance: We investigate the consequences of software language evolution. A gram-
mar change can have an effect on the words of the language and can require an adap-
tation of documents containing the words. A special case is the format evolution of
data and a necessary adaptation of the data existing. We study this problem for for-
mat evolution for DTDs. While the words of the language remain the same after
the refactoring of a context-free grammar, semantic rules have to be adapted in an
attribute grammar. We study the consequences of left-recursion removal to attribute
grammars and justify that the semantic rules can be automatically adapted while
preserving the semantics. Declarative transformation rules can transform programs
that are available as abstract syntax trees. When an underlying grammar is extended,
existing transformation rules need to be adapted. To study the problem we introduce
layout preservation to an existing language processor and demonstrate that transfor-
mation rules can be automatically adapted. By defining an aspect-oriented model
for Prolog we support modularity of language descriptions based on logic gram-
mars, and consequently, that of derived processors, which makes them
better maintainable, replaceable, and configurable.
Technical improvement: By defining basic roles of program extension we provide a
way for more disciplined meta-programming for declarative programs including lan-
guage descriptions. Using language technology we introduce layout preservation
in existing language processors for maintenance. We analyse transformation rules
regarding their layout preservation behaviour. Besides using the analyse to for auto-
matic decisions on layout preservation, it can advice the coder of a transformation
rule to change the specification style to make layout preservation more likely.
Usability for the user: Disciplined meta-programming increases the usability, as it al-
lows to define reusable and better understandable recipes of meta-programs. We
discuss that the left recursion removal with automatic migration of semantic rules
can help to preserve readability of grammars in use. We show that complexity of
argument positions in transformation rules can be hidden by applying the approach
of grammar extension and automatically migrating the transformation rules. We
provide an object-oriented combination model for transformations. Based on it,
a workbench for visual interactive explorative transformational programming has
been implemented with grammars and transformations as first class citizens.
iiiKewords: Software Language Engineering, Software Language Evolution, Grammarware, Soft-
ware Evolution, Software Maintenance, Program Transformation, Language Processors, Meta-
Programming, Declarative Programming, Aspect-Oriented Programming, Language Definition,
Source to Source Transformation
CR Classification: D.1.6 [Logic Programming], D.1.7 [Visual Programming], D.2.1 [Re-
quirements/Specifications], D.2.6 [Programming Environments], D.2.13 [Reusable Software], D.3.3
[Language Constructs and Features], D.3.4 [Processors], F.3.3 [Studies of Program Constructs],
F.4.2 [Grammars and Other Rewriting Systems]
ivZusammenfassung
Ein Konstruktionssystem für die Softwarewartung ist eine Infrastruktur, die aus Sprachbeschreibun-
gen und zusätzlicher Information Werkzeuge generiert. Neben der Wartung von Sprachbeschrei-
bungen erfordert die Evolution von Softwaresprachen sowohl die Wartung der in dieser Sprache
geschriebenen Software als auch die Wartung der Software, welche in dieser Sprache geschriebe-
ne Software transformiert. Wir argumentieren, dass so ein Konstruktionssystem spezielle Wartung
erfordert. Es sollte außerdem Unterstützung für die Wartung von Sprachbeschreibungen, für die da-
von abgeleiteten Werkzeuge und für das Konstruktionssystem selber bieten. Da Sprachprozessoren
den Kern solcher Technologie darstellen, untersuchen wir deren Verbesserung auf drei Gebieten:
Wartung dieser Werkzeuge: Wir die Folgen der Evolution von Softwarespra-
chen. Eine Grammatikänderung kann Auswirkungen auf die Wörter der Sprache haben und
die Anpassung der Dokumente erfordern, welche diese Wörter enthalten. Ein Spezialfall
ist die Evolution von Datenformaten und die dann erforderliche Anpassung der existieren-
den Daten. Wir untersuchen das Problem anhand der Formatevolution von XML Dokumen-
ten. Während die Wörter der Sprache bei einem Refaktoring einer kontextfreien Gramma-
tik gleich bleiben, müssen semantische Regeln in einer attributierten Grammatik angepasst
werden. Wir untersuchen die Folgen der Entfernung von Linksrekursion in attributierten
Grammatiken auf die semantischen Regeln. Wir beweisen, dass diese Regeln automatisch
semantik-erhaltend angepasst werden können. Deklarative Regeln können Transformatio-
nen von Programmen beschreiben, die als abstrakte Syntaxbäume vorliegen. Wird eine zu-
grundeliegende Grammatik erweitert, müssen diese Regeln angepasst werden. Um dieses
Problem zu untersuchen, erweitern wir bestehende Sprachprozessoren, so dass sie Layout-
erhaltung unterstützen. Wir zeigen, dass die bestehenden Transformationsregeln automatisch
angepasst werden können. Wir definieren ein aspekt-orientiertes Modell für Prolog. Dadurch
unterstützen wir die Modularisierung von Sprachbeschreibungen basierend auf logischen
Grammatiken und folglich auch die Modularisierung von daraus abgeleiteten Sprachprozes-
soren, was diese besser wartbar, austauschbar und konfigurierbar macht.
Verbesserung der Werkzeuge hinsichtlich der Ausdruckskraft: Durch die Definition
von Basisoperatoren für die Erweiterung von logischen Programmen bieten wir einen Weg
für verbessertes diszipliniertes Metaprogrammieren auf deklarativen Programmen einschließ-
lich Sprachbeschreibungen. Wir erweitern die Sprachprozessoren für die Softwarewartung
mit Hilfe von Sprachtechnologie, so dass sie layouterhaltend transformieren. Wir analysieren
Transformationsregeln hinsichtlich ihres Einflusses auf die Layouterhaltung bei Transforma-
tionen. Neben der Verwendung für die automatische Anpassung von Transformationsregeln
zur Unterstützung von Layouterhaltung kann diese Analyse dem Ersteller einer Transforma-
tionsregel auf einen Stil verweisen, der die Layouterhaltung verbessert.
Usability für den Nutzer: Diszipliniertes Metaprogrammieren erhöht die Usability, da dadurch
wiederverwendbare und besser verständliche Rezepte von Metaprogrammen definiert wer-
den können. Wir diskutieren, wie die Entfernung von Linksrekursion in attributierten Gram-
matiken hilft, die Lesbarkeit der verwendeten Grammatik zu erhalten. Wir zeigen, dass die
Komplexität von Argumentpositionen in Transformationsregeln durch den Ansatz der Gram-
matikerweiterung und der automatischen Anpassung von Transformationsregeln versteckt
werden kann. Wir geben ein objekt-orientiertes Modell zur Kombination von Transforma-
tionen an. Darauf aufbauend ist ein Arbeitsplatz zur visuellen interaktiven explorativen Pro-
grammieren mit heterogenen Transformationen implementiert, bei dem Grammatiken und
Transformationen als Objekte erster Ordnung behandelt werden.
vAcknowledgement
Research is rarely an individual performance in an empty space. I would like to thank
everybody who has helped me in several ways.
First of all, I would like to thank my advisor Prof. Günter Riedewald for his guidance.
He was always available when I needed him. He was very patient and provided me with
many advice and much freedom regarding both, the choice of research topics and the style
of working. He shaped my view of a university of a place for and teaching. His
dedication to teaching was always a guide for me.
Next, I am very grateful to Prof. Ralf Lämmel who I consider to be an extraordinary
researcher and who continuously influenced my research interests. He also opened oppor-
tunities for research visits, which were very important for my development. Thanks for
many discussions, for repeatingly motivating me, and for introducing me to red Bordeaux.
I have visited two places repeatedly for research stays, which formed the foundation
of my research topic. First, I would like to thank the Programming Research Group at
University of Amsterdam and CWI Amsterdam, and particularly Paul Klint, who provided
me the opportunity of the research visits at UvA and CWI, and Chris Verhoef for the
opportunity of the research visit at Vrije University Amsterdam. Jurgen Vinju was very
helpful regarding all technical questions. Second, I would like to thank Marjan Mernik
and his colleagues for very kind hospitality during three research visits in Maribor. Marjan
Mernik also introduced me to the field of Aspect-Oriented Programming. We had many
fruitful discussions. Thanks to Damijan Rebernak for his help with the Lisa web service.
Also, I would like to thank my former colleagues in Rostock for their comments and
discussions; especially Jörg Harm and Elke Tetzner for sharing the office with me, and
Prof. Forbrig for his kind of humor. I would like to emphasise my thanks to Anke Dittmar
for her view on the world I share and for being a researcher who does not forget that it is
the human who should be the centre of our attention.
My thesis has profited from discussions and comments at workshops and conferences.
I would like to thank Mark van den Brand, Jim Cordy, Meike Klettke, Günter Kniesel,
Damijan Rebernak, Eelco Visser, Joost Visser, the anonymous reviewers of LOPSTR’99,
CSMR’03, LDTA’04, Object-Oriented Technologies ’06, LOPSTR’06, TOOLS’07, IET
Software Special Issue on SE ’08. Some former students contributed in some way to my
work, especially Benjamin Mesing, Markus Stoy, Guido Wachsmuth, and Thomas Zühlke.
Thanks to Axel Arnold, Heiko Kopp, Lothar Ludwig, Yves Maurischat, Georg Petry,
Arches of The Lands of Evermore, for their work in the MUD. Much of the thesis has
been influenced by the maintenance activities we have performed together.
Much of my energy and support I got from many others. Thanks to my best friends
Jörn Oldag and Henning Güldner. I am very grateful for the discussions and wine we
had together, not to speak of financial support. I would like to thank Randolf Schultz for
many delicious salads and the daily companionship at lunch (as well for many technical
discussions). Thanks to Carsten Eichholz for philosophical discussions and for showing
me that there can always be another point of view at the world and both views, though
contrary, can still be valid. Thanks to Uwe “mein Zahnarzt” Poser, who saved my set of
teeth, and Jens Neumann. I am very grateful for the motivation I got from Peggy Kronen.
viiFinally, thanks to my brothers, who participated endless political discussions, and my
parents, especially my mother, who made my study and this thesis possible in the first
place.
As a final remark, I would like to mention that this kind of work often is done on the
expense of the family or a partner. It is important for me to acknowledge that Maryline
Roussette probably suffered and sacrificed more than me through and after all these years
to let me complete the thesis. For this, and for her love, I bow to her and say I am really
sorry that things turned out this way.
viiiOne night with full moon Futoa
Full moon. It is there. Round. Jedsjala zuto fromask
Through the night. Huo tao brask
Scary, the sound. Emid eowu
Right. Taloa penado
Magic. It develops. Strong. Tequo polo zonka bong
It’s just enough. Yoma dola rong
Nearly. How long?
Tough. Oria dra gna so
Piso wa fraso
Some Work. It is hard. Fine. Demi rua eh
All. Well done. Zunda brodame
Saved. In time.
Gone. Tequo polo zonka bong
Yoma dola rong
Bardsja yo-ima te
Fora rula nee
Demi vao ska
Oton Tunskala
Tequo polo zonka bon
Yoma dola rong
(From the Library of Tunskala, by Wolfgang Lohmann: A poem and a song of Tunskala that are somehow
related to the thesis... it may serve as an apologise for all remaining errors in the thesis, technical as well as
english.)
ix