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

icon

219

pages

icon

English

icon

Documents

2009

Écrit par

Publié par

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

icon

219

pages

icon

English

icon

Documents

2009

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

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.
Voir icon arrow

Publié par

Publié le

01 janvier 2009

Langue

English

Poids de l'ouvrage

1 Mo

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

Voir icon more
Alternate Text