dc.contributor.author
Bokowski, Boris
dc.date.accessioned
2018-06-07T21:03:14Z
dc.date.available
2002-02-15T00:00:00.649Z
dc.identifier.uri
https://refubium.fu-berlin.de/handle/fub188/7309
dc.identifier.uri
http://dx.doi.org/10.17169/refubium-11508
dc.description
Title Page / Contents1
1.Introduction13
2.Categories of Constraints19
3.CoffeeStrainer Explained39
4.CoffeeStrainer Virtues and Limitations69
5.Extended Example: Confined Types81
6.Implementation of CoffeeStrainer111
7.Related Work145
8.Conclusions173
Bibliography177
Abstract / Index185
dc.description.abstract
For functioning correctly, complex object-oriented software relies on
application-specific constraints regarding the definition and use of program
elements. This dissertation presents CoffeeStrainer, a system for checking
programmer-defined constraints on Java source code. CoffeeStrainer constraints
are unique in that they are modular, extensible and composable, and supports
both constraints regarding the definition of program elements and constraints
regarding the use of program elements. Additionally, CoffeeStrainer
constraints can consist of static (compile-time) and dynamic (run-time) parts.
Static constraints are checked using a program representation which consists
of the complete abstract syntax tree together with information obtained by
name and type analysis. The system checks compilation units separately; the
time taken to check one compilation unit is comparable to the time of
compiling the compilation unit. The system has been fully implemented. Unlike
other approaches, CoffeeStrainer does not define a special-purpose language
for specifying constraints - instead, it uses Java for constraints as well,
making it easy for proficient Java programmers to specify constraints.
Constraint code is embedded in Javadoc comments. Thus, constraint code and
base-level code share the same structure, making it easy to find the rules
that apply to a given part of the program, and allowing arbitrary compilers
and tools to be applied to the source code that contains constraints.
de
dc.description.abstract
Das korrekte Funktionieren komplexer objektorientierter Software beruht auf
der Einhaltung anwendungsspezifischer Programmierrichtlinien, die sich sowohl
auf die richtige Definition von Programmbestandteilen als auch auf deren
richtige Benutzung beziehen können. Die Dissertation beschreibt ein System
CoffeeStrainer, das Java-Programmierern einen Rahmen für die Spezifikation
solcher Programmierrichtlinien bereitstellt und sie anhand von Java-Quelltext
automatisch überprüft. Das System zeichnet sich dadurch aus, daß die
Programmierrichtlinien modular, erweiterbar und komponierbar sind, und daß
sowohl Definitions- als auch Benutzungsrichtlinien gleichermaßen unterstützt
werden. Programmierrichtlinien können sich auf die statische Struktur eines
Programms oder auf die Ausführung eines Programms beziehen; außerdem ist es
möglich, hybride Richtlinien zu formulieren, die aus statischen und
dynamischen Anteilen bestehen. Das System ist vollständig implementiert und
stellt den Programmierrichtlinien das vollständige zu überprüfende Programm
als abstrakten Syntaxbaum mit zusätzlichen semantischen Informationen zur
Verfügung. CoffeeStrainer überprüft Übersetzungseinheiten jeweils separat und
benötigt zur Überprüfung einer Übersetzungseinheit vergleichbar viel Zeit wie
ein Übersetzer für ihre Übersetzung. Im Gegensatz zu anderen Arbeiten auf dem
Gebiet wird keine spezielle Sprache zur Formulierung von
Programmierrichtlinien definiert - stattdessen wird die Sprache Java
verwendet, um erfahrenen Java-Programmierern die Benutzung des Systems zu
erleichtern. Programmierrichtlinien sind in das Programm in Form von
sogenannten "formalen Kommentaren" der Sprache Java integriert und beziehen
sich logisch jeweils auf den kommentierten Programmteil, wodurch ihre Struktur
sich an die Struktur des Programms anlehnt. Außerdem ermöglicht diese Technik,
daß vorhandene Übersetzer und andere Werkzeuge, die auf den Quelltext
zugreifen, weiterhin benutzt werden können.^
de
dc.rights.uri
http://www.fu-berlin.de/sites/refubium/rechtliches/Nutzungsbedingungen
dc.subject
Programming Constraints
dc.subject
Automatic Checking
dc.subject.ddc
000 Informatik, Informationswissenschaft, allgemeine Werke::000 Informatik, Wissen, Systeme::004 Datenverarbeitung; Informatik
dc.title
A Framework for Checking Programmer-Defined Constraints on the Definition and
Use of Program Elements in Java
dc.contributor.firstReferee
Prof. Dr. Klaus-Peter Löhr
dc.contributor.furtherReferee
Prof. Dr. Stefan Jähnichen
dc.contributor.furtherReferee
Prof. Dr. Theo D'Hondt
dc.date.accepted
2000-06-29
dc.date.embargoEnd
2002-02-19
dc.identifier.urn
urn:nbn:de:kobv:188-2002000210
dc.title.translated
Ein Framework zur Überprüfung von Programmier-Constraints bezüglich der
Definition und der Benutzung von Programmelementen in Java
de
refubium.affiliation
Mathematik und Informatik
de
refubium.mycore.fudocsId
FUDISS_thesis_000000000609
refubium.mycore.transfer
http://www.diss.fu-berlin.de/2002/21/
refubium.mycore.derivateId
FUDISS_derivate_000000000609
dcterms.accessRights.dnb
free
dcterms.accessRights.openaire
open access