Table Of ContentInformatik - Fachberichte
Band 142: H.-J. Novak, Textgenerierung aus vi sue lien Daten: Be Band 166: K. HOrmann, Kollisionsfreie Bahnen fOr Industrieroboter.
schreibungen von StraBenszenen. XII, 143 Seiten. 1987. XII, 157 Seiten. 1988.
Band 143: R. R. Wagner, R. TraunmOller, H. C. Mayr (Hrsg.),lnforma Band 167: R. Lauber (Hrsg.), ProzeBrechensysteme '88. Stuttgart,
tionsbedarfsermittlung und -analyse fOr den Entwurf von Infor Ml!rz 1988. Proceedings. XIV, 799 Seiten. 1988.
mationssystemen. Fachtagung EMISA, Linz, Juli 1987. VIII, 257
Band 168: U. Kastens, F. J. Rammig (Hrsg.), Architektur und Betrieb
Seiten. 1987.
von Rechensystemen. 10. GI/ITG-Fachtagung, Paderborn, Marz
Band 144: H.Oberquelle, Sprachkonzepte fOr benutzergerechte 1988. Proceedings. IX, 405 Seiten. 1988.
Systeme. XI, 315 Seiten. 1987.
Band 169: G. Heyer, J. Krems, G. GOrz (Hrsg.). Wissensarten und
Band 145: K. Rothermel, Kommunikationskonzepte fOr verteilte ihre Darstellung. VIII, 292 Seiten. 1988.
transaktionsorientierte Systeme. XI, 224 Seiten. 1987.
Band 170: A. Jaeschke, B. Page (Hrsg.),lnformatikanwendungen im
Band 146: W. Damm, Entwurf und Verifikation mikroprogrammier Umweltbereich. 2. Symposium, Karlsruhe, 1987. Proceedings. X,
ter Rechnerarchitekturen. VIII, 327 Seiten. 1987. 201 Seiten. 1988.
Band 147: F. Belli, W. GOrke (Hrsg.), Fehlertolerierende Rechen Band 171: H. Lutterbach (Hrsg.), Non-Standard Datenbanken far
systeme I Fault-Tolerant Computing Systems. 3.lnternationale Gil Anwendungen der Graphischen Datenverarbeitung. GI-Fachge
ITG/GMA-Fachtagung, Bremerhaven, September 1987. Proceed sprl!ch, Dortmund, Marz 1988, Proceedings. VII, 183 Seiten. 1988.
ings. XI, 389 Seiten. 1987.
Band 172: G. Rahmstorf (Hrsg.), Wissensrepr!l.sentation in Ex
Band 148: F. Puppe, Diagnostisches ProblemlOsen mit Experten pertensystemen. Workshop, Herrenberg, Marz 1987. Proceedings.
systemen. IX, 257 Seiten. 1987. VII, 189 Seiten. 1988.
Band 149: E. Paulus (Hrsg.), Mustererkennung 1987. 9.DAGM Band 173: M. H. Schulz, Testmustergenerierung und Fehlersimu
Symposium, Braunschweig, Sept.lOkt. 1987. Proceedings. XVII, lation in digitalen Schaltungen mit hoher Komplexitat. IX, 165 Sei
324 Seiten. 1987. ten. 1988.
Band 150: J. Halin (Hrsg.), Simulationstechnik. 4. Symposium, Band 174: A. EndrOs, Rechtsprechung und Computer in den neun
ZOrich, September 1987. Proceedings. XIV, 690 Seiten. 1987. ziger Jahren. XIX, 129 Seiten. 1988.
Band 151: E. Buchberger, J. Retti (Hrsg.), 3. Osterreichische Arti Band 175: J. HOlsemann, Funktioneller Test der AuflOsung von Zu
ficial-Intelligence-Tagung. Wien, September 1987. Proceedings. griffskonflikten in Mehrrechnersystemen. X, 179 Seiten. 1988.
VIII, 181 Selten. 1987.
Band 176: H. Trost (Hrsg.), 4.0sterreichische Artificial-Intelli
Band 152: K. Morik (Ed.), GWAI-87. 11 th German Workshop on gence-Tagung. Wien, August 1988. Proceedings. VIII, 207 Seiten.
Artificial Intelligence. Geseke, Sept.lOkt. 1987. Proceedings. XI, 1988.
405 Seiten. 1987.
Band 177: L. Voelkel, J. Pliquett, Signaturanalyse. 223 Seiten.1989.
Band 153: D. Meyer-Ebrecht (Hrsg.). ASST'87. 6. Aachener Sym
Band 178: H. GOttler, Graphgrammatiken in der Softwaretechnik.
posium fOr Signaltheorie. Aachen, September 1987. Proceedings.
XII, 390 Seiten. 1987. VIII, 244 Seiten. 1988.
Band 179: W. Ameling (Hrsg.), Simulationstechnik. 5. Symposium.
Band 154: U. Herzog, M. Paterok (Hrsg.), Messung, MOdellierung
Aachen, September 1988. Proceedings. XIV, 538 Seiten. 1988.
und Bewertung von Rechensystemen. 4. GI/ITG-Fachtagung, Er
langen, Sept.lOkt.1987. Proceedings. XI, 388 Seiten. 1987. Band 180: H. Bunke, O. KObler, P. Stucki (Hrsg.), Mustererkennung
1988. 10. DAGM-Symposium, ZOrich, September 1988. Proceed
Band 155: W. Brauer, W. Wahlster (Hrsg.), Wissensbasierte Sy
ings. XV, 361 Seiten. 1988.
steme. 2.lnternationaler GI-KongreB, MOnchen, Oktober 1987. XIV,
432 Seiten. 1987. Band 181: W. Hoeppner (Hrsg.). KOnstliche Intelligenz. GWAI-88,
12. Jahrestagung. Eringerfeld, September 1988. Proceedings. XII,
Band 156: M. Paul (Hrsg.), GI-17. Jahresta'gung. Computerinte
333 Seiten. 1988.
grierter Arbeitsplatz im BOro. MOnchen, Oktober 1987. Proceed
ings. XIII, 934 Seiten. 1987. Band 182: W. Barth (Hrsg.), Visualisierungstechniken und Algorith
Band 157: U. Mahn, Attributierte Grammatiken und Attributierungs men. Fachgesprl!ch, Wien, September 1988. Proceedings. VIII, 247
Seiten. 1988.
algorithmen. IX, 272 Seiten. 1988.
Band 183: A.Clauer, W.Purgathofer (Hrsg.), AUSTROGRAPHICS
Band 158: G. Cyranek, A. Kachru, H. Kaiser (Hrsg.), Informatik und '88. Fachtagung, Wien, September 1988. Proceedings. VIII, 267
"Dritte Welt". X, 302 Seiten. 1988. Seiten. 1988.
Band 159: Th. Christaller, H.-W. Hein, M. M. Richter (Hrsg.), KOnst Band 184: B. Gollan, W. Paul, A. Schmitt (Hrsg.), Innovative Infor
liche Intelilgenz. FrOhjahrsschulen, Dassel, 1985 und 1986. VII, 342 mations-Infrastrukturen. 1.1.1. -Forum, SaarbrOcken, Oktober 1988.
Seiten. 1988. Proceedings. VIII, 291 Seiten. 1988.
Band 160: H. Mllncher, Fehlertolerante dezentrale ProzeBauto Band 185: B. Mitschang, Ein MolekOI-Atom-Datenmodell fOr Non
matisierung. XVI, 243 Seiten. 1987. Standard-Anwendungen. XI, 230 Seiten. 1988.
Band 161: P. Peinl, Synchronisation in zentralisierten Datenbank Band 186: E. Rahm, Synchronisation in Mehrrechner-Datenbank
systemen. XII, 227 Seiten. 1987. systemen. IX, 272 Seiten. 1988.
Band 162: H. Stoyan (Hrsg.), BegrOndungsverwaltung. Proceed Band 187: R. Valk (Hrsg.), GI-18. Jahrestagung I. Vernetzte und
ings, 1986. VII, 153 Seiten. 1988. komplexe Informatik-Systeme. Hamburg, Oktober 1988. Proceed
ings. XVI, 776 Seiten.
Band 163: H. MOiler, Realistische Computergraphik. VII, 146 Seiten.
1988. Band 188: R. Valk (Hrsg.), GI-18. Jahrestagung II. Vernetzte und
komplexe Informatik-Systeme. Hamburg, Oktober 1988. Proceed
Band 164: M. Eulenstein, Generierung portabler Compiler. X, 235 ings. XVI, 704 Seiten.
Seiten. 1988.
Band 189: B. Wolfinger (Hrsg.), Vernetzte und komplexe Informatik
Band 165: H.-U. HeiB, Oberlast in Rechensystemen.IX, 176 Seiten. Systeme. Industrieprogramm zur 18. Jahrestagung der GI, Ham
1988. burg, Oktober 1988. Proceedings. X, 229 Seiten. 1988.
Informatik-Fachberichte 235
Herausgeber: W. Brauer
im Auftrag der Gesellschaft fOr Informatik (GI)
Christiane Feder
Ausnahmebehandlung
in objektorientierten
Programmiersprachen
-Springer-Verlag
Berlin Heidelberg New York
London Paris Tokyo Hong Kong
Autorin
Christiane Feder
Lehrstuhl fOr Programmiersprachen
Universitat Erlangen-NOrnberg
Martensstr. 3, 0-8520 Erlangen
CR Subject Classifications (1987): 0.2.2, 0.3.1, 0.3.3, F.3.2-3
ISBN-13:978-3-540-52467- 0 e-ISBN-13:978-3-642-84166-8
001: 10.1007/978-3-642-84166-8
CIP-Titelaufnahme der Deutschen Bibliothek.
Feder, Christiane:
Ausnahmebehandlung in objektorientierten Programmiersprachen/Christiane Feder. - Berlin;
Heidelberg; New York; London; Paris; Tokyo: Springer, 1990
(Informatik-Fachberichte; 235)
ISBN-13:978-3-540-52467 -0
NE:GT
Dieses Werk ist urheberrechtlich geschOtzl. Die dadurch begrOndeten Rechte, insbesondere
die der Obersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Ta
bellen, der Funksendung, der Mikroverfilmung oder der Vervielfaltigung auf anderen Wegen und
der Speicherung in Datenverarbeitungsanlagen, bleiben, bei auch nur auszugsweiser Verwer
tung, vorbehalten. Eine Vervielfaltigung dieses Werkes oder von Teilen dieses Werkes ist auch
im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes
der Bundesrepublik Deutschland vom 9. September 1965 in der Fassung vom 24. Juni 1985
zulassig. Sie ist grundsatzlich vergOtungspflichtig. Zuwiderhandlungen unterliegen den Stafbe
stimmungen des Urheberrechtsgesetzes.
© Springer-Verlag Berlin Heidelberg 1990
2145/3140-543210 -Gedruckt auf saurefreiem Papier
v
Vorwort
Der Begriff des Ausnahmeereignisses hat bei der Programmierung von ProzeB
systemen schon immer eine entscheidende Rolle gespielt. Dies spiegelt sich
vor all em darin wider, daB bereits frUhzeitig Mechanismen fUr eine Ausnahme
behandlung in Sprachen zur Realzeitprogrammierung integriert wurden. Damit
hat man die Moglichkeit, auf Ereignisse zu reagieren, die zur Laufzeit eines
Programms erwartet werden, jedoch im sequentiellen Programmablauf keiner
festen Stelle zugeordnet werden konnen. Die Vorteile eines sol chen Sprach
mittels sind inzwischen Uber die Grenzen der Realzeitprogrammierung hinaus
anerkannt. Doch obwohl bisher viele Reaktionsmoglichkeiten auf das Eintreten
von Ausnahmeereignissen vorgeschlagen und diskutiert wurden, blieben die
formalen Aspekte der Ausnahmebehandlung weitgehend unberUcksichtigt.
In dies em Buch werden nun gerade die theoretischen Eigenschaften der Aus
nahmebehandlung untersucht. Dabei soIl der Begriff "theoretisch" nicht etwa
negativ im Sinne einer "nicht auf die Praxis Ubertragbaren", sondern ganz im
Gegenteil positiv im Sinne der "exakten, eindeutigen" Darstellung verstanden
werden. Es zeigt sich namlich, daB die - nicht exakte - Begriffswelt bisheriger
Veroffentlichungen dazu fUhrt, daB verschiedene Autoren zwar die gleichen
Begriffe verwenden, aber Unterschiedliches meinen. Ebenso haufig werden
natilrlich neue Begriffe fUr gleiche Sachverhalte eingefUhrt. Die Ursache
dieser Problematik liegt genau in den bisher fehlenden formalen Definitionen
zu den Begriffen. Hier versuche ich Abhilfe zu schaffen.
Diese Arbeit ist der Ausnahmebehandlung fUr objektorientierte Programmier
sprachen gewidmet. Nun werden sich manche Leser fragen, warum gerade
objektorientierte Sprachen gewahlt wurden. In erster Linie verwende ich
diese Sprachfamilie als Hilfsmittel zur Beschreibung der Umgebung, in der
Ausnahmen behandelt werden. FUr diesen Zweck scheint sie mir, wie in
diesem Buch auch gezeigt wird, besser geeignet als alle anderen Sprachfamilien.
Die Tatsache, daB gleichzeitig ein machtiges Ausnahmekonzept fUr objekt-
VI
orientierte Sprachen entsteht, ist dagegen eher ein Seiteneffekt. FUr Sprach
entwickler kann das Konzept insofern von Interesse sein, als eine Ausnahme
behandlung fUr diese Sprachen bisher lediglich in Ansatzen vorgesehen ist.
Urn dem Leser die Arbeit mit dies em Buch zu erleichtern, habe ich mich
bemUht, eine verstandliche und nachvollziehbare Darstellung, insbesondere
der formal en Beschreibungen, zu geben. Aus dem gleichen Grund werden,
neben der Ausnahmebehandlung, auch die zum Verstandnis notigen Begriffe,
Eigenschaften und Sprechweisen der objektorientierten Programmierung und
der Methode zur formalen Semantikdefinition vorgestellt. Ich hoffe, daB sich
damit das Nachschlagen in der jeweiligen Fachliteratur erUbrigt.
Bei dem vorliegenden Buch handelt es sich urn meine von der Technischen
Fakultat der Friedrich-Alexander-Universitat Erlangen-NUrnberg im Oktober
1989 genehmigte Dissertation. Ich mochte mich deshalb an dieser Stelle bei
all denen bedanken, die' zum Gelingen dieser Arbeit beigetragen haben.
Herr Prof. Dr. H. J. Schneider gab mir die Moglichkeit, diese Arbeit als Mit
arbeiterin seines Lehrstuhls durchzufUhren. FUr die dabei gewahrte Unter
stlitzung danke ich ihm herzlich. Herrn Prof. Dr. F. Hofmann danke ich fUr
die Ubernahme des Zweitgutachtens. Meinen Kollegen Herrn K. Barthelmann.
Herrn B. Hindel und Herrn Dr. P. Wilke mochte ich fUr das sorgfaltige
Korrekturlesen, die konstruktive Kritik und die engagiert gefUhrten Diskus
sionen danken. FUr das abschlieBende Korrekturlesen und das Losen des
Druckerproblems danke ich meinen Kollegen Herrn W. Behnsen und Herrn T.
KUppers. Meinen Eltern gilt mein besonderer Dank fUr die moralische Unter
stlitzung. die Ermutigung wahrend der Erstellung der Arbeit und das VersUind
nis. das sie mir entgegenbrachten. Besonders herzlich danken mochte ich
schlieBlich Herrn Dr. Christian Andres fUr das wiederholte. intensive Lesen
dieser Arbeit. seine Ratschlage und seine Bereitschaft zu Gesprachen.
Erlangen. im Januar 1990 Christiane Feder
VII
Inhal tsverzeichnis
O. Zusammenfusung................................
1. Ausnahmen und die Konsequenzen 4
1.1 Ein Beispiel 6
1.2 Ausnahmen in der Literatur 10
1.3 Die neue Sicht .. . 12
1.4 Ziele der Arbeit ....... . 13
2. Der programmlersprachliche Rahmen 17
2.1 Motivation ........... . 17
2.2 Begriffe der objektorientierten Programmierung 20
2.3 Eigenschaften objektorientierter Sprachen 25
2.3.1 Dynamische Instantiierung ... . 26
2.3.2 Datenabstraktion ..... . 27
2.3.3 Vererbung ........ . 27
2.3.4 Parametrisierte Klassen 29
2.3.5 Blockstruktur ..... 30
2.3.6 Statische TypprUfung 30
2.3.7 Dynamisches Binden .. 31
2.3.8 Synchronisation .... 32
2.3.9 Kommunikation. . . . . . 32
2.3.10 Wertung der Eigenschaften . 33
2.4 Eine objektorientierte Spezifikationssprache .. 40
2.4.1 Die Syntax .......... . 40
2.4.2 Die Spracheigenschaften. . . . . . . . . . . . . . . 45
3. Du Konzept zur Ausnahmebehandlung 48
3.1 Grundlagen ............. . 49
3.1.1 Ausnahme und Ausnahmebearbeiter 49
3.1.2 Ein Klassifikationsschema ... 50
3.1.3 Eigenschaften von Ausnahmen . 51
3.1.3.1 Definitionsrecht ... . 52
3.1.3.2 GUltigkeitsbereich ........ . 52
VIII
3.1.3.3 Existenzzeit ....... . 53
3.1.3.4 Bearbei terzusUindigkei t 53
3.1.3.5 Einplanungsmoglichkeit 54
3.1.3.6 Freigabe- und Sperrmoglichkeiten .... 55
3.1.4 Eigenschaften von Ausnahmebearbeitern 57
3.1.4.1 Definitionsrecht 57
3.1.4.2 Lokalisierung 57
3.1.4.3 Zugriffs bereich 58
3.1.4.4 Parametrisierbarkeit .. . 59
3.1.4.5 Aufrufbarkeit ...... . 60
3.1.4.6 Freigabe- und Sperrmoglichkeiten 60
3.1.4.7 Fortsetzungsmoglichkeiten ..... 61
3.2 Die Eigenschaften der Ausnahmebehandlung 63
3.2.1 Die Eigenschaften der Ausnahmen . . . . . . 63
3.2.2 Die Eigenschaften der Ausnahmebearbeiter. 69
3.3 Moglichkelten zur Fortsetzung ........ . 78
3.3.1 Ein Gliederungsschema ............. . 79
3.3.2 Ausnahmen, die bei der Ausnahmebearbeitung eintreten 87
3.3.3 EinfluB der'Datenkapselung ............ . 90
3.3.4 Fortsetzungsmoglichkeiten fUr ProzeBsysteme 93
3.4 Bisherige Vorschlage zur Ausnahmebehandlung. 106
3.5 Zusammenfassung ................... . 114
4. Die Semant1k der Ausnahmebehanc:Uung 116
4.1 Bisherige Ansatze zur Semantikdefinition 117
4.2 Die denotationelle Methode der Semantikdefinition 122
4.2.1 EinfUhrung. . . . . . . . . . . . . . . . . . . . . . . 122
4.2.2 Struktur denotationeller Definitionen ..... . 124
4.2.3 Direkte Semantik und Fortsetzungssemantik 130
4.3 Die Semantikdefini tionen. . . . . 137
4.3.1 Die grundlegenden Definitionen 138
4.3.2 Fortsetzungsmoglichkeiten 144
4.3.2.1 Bezugspunkt Verursacher ... . 145
4.3.2.2 Bezugspunkt AuslOser ..................... . 147
4.3.2.3 Bezugspunkt Bearbeitermethode . . . . . ......... . 152
4.3.3 GUltigkeitsbereich und Zugriffsbereich von Bearbeitern 154
4.3.4 Einplanen von Ausnahmen ........ . 162
4.3.5 Freigeben und Sperren von Ausnahmen 166
4.3.6 Freigeben und Sperren von Bearbeitern .. 169
4.4 Zusammenfassung ............... . 174
XI
s.
PrUfungen zur Ubersetzungszelt 177
5.1 Anforderungen . . . . . . 178
5.2 Bestimmung der weiterreichbaren Ausnahmen 181
5.3 Die PrUfungsmoglichkeiten 195
5.3.1 Ausnahmedeklaration . . . . . . . . . . . . . . . . . 195
5.3.2 Bearbeiterdeklaration ................ . 197
5.3.3 Statische Zuordnung von Bearbeitern zu Methoden 202
5.3.4 Systemdefinierte Ausnahmen und Ausnahmebearbeiter . 205
5.4 Zusammenfassung ........................ . 207
6. Erfahrungen.................................... 210
Uteraturverzelchnls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 216
Anhang A: Syntaxdefinition der Spezifikationssprache . . . . . . . 225
Anhang B: Definitionen fUr Aktivierungsbaum und Aufrufgraph 231
Anhang C: Primitive und zusammengesetzte semantische Bereiche 236
Anhang D: Semantische Algebren . . . . . . . . . . . . . . . . . . . . . . 239
Stlchwortverzelchnls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 247
o. Zusammenfassung
o. Zusammenfassung
Die Erstellung komplexer und zuverHissiger Software ist ohne eine planvolle,
systematische und kontrollierbare Programmentwicklung nicht moglich.
Diese Tatsache wurde spates tens mit der Softwarekrise in den sechziger
Jahren offensichtlich. Seitdem wird nach Mitteln gesucht, mit deren Hilfe die
Programmentwicklung unterstUtzt werden kann. Die Ausnahmebehandlung in
Programmiersprachen stellt ein Sprachmittel dar, das zur systematischen,
"strukturierten" Programmierung beitragt. Ausnahmen werden dabei als
Ereignisse verstanden, die zur Laufzeit eines Programms eintreten konnen.
Die Ausnahmebehandlung ermoglicht es, auf jedes dieser Ausnahmeereignisse
mit einer individuell zugeschnittenen Bearbeitung zu reagieren.
In der vorliegenden Arbeit wird ein neuer Ansatz zur Ausnahmebehandlung
vorgestellt. Bisher wurde der Integration von Ausnahmekonzepten in Program
miersprachen eine geringe Bedeutung beigemessen. Sehr wenige Programmier
sprachen sehen eine Ausnahmebehandlung vor; die dabei realisierten Mechanis
men sind meist nur als rudimentar zu bezeichnen. Auf eine formale Definition
der Ausnahmemechanismen wird weitgehend verzichtet, an ihre Stelle tritt
die umgangssprachliche Beschreibung. Dagegen beschaftigen wir uns gerade
mit diesen - bisher vernachlassigten - formalen Aspekten der Ausnahmebe
handlung.
Wir sind der Ansicht, daB die Ausnahmebehandlung besonders gut in objekt
orientierten Programmiersprachen 'als Strukturierungsmittel eingesetzt werden
kann. Als programmiersprachlichen Rahmen, in den die Ausnahmebehandlung
integriert wird, wahlen wir deshalb diese Sprachklasse. Besonders interessante
Aspekte fUr die Ausnahmebehandlung ergeben sich aus der Datenabstraktion
und dem Kommunikationsverhalten objektorientierter Programme.