Hugendubel.de - Das Lesen ist schön

Warenkorb

€ 0,00 0 Buch dabei,
portofrei

Übersetzung objektorientierter Programmiersprachen

Konzepte, abstrakte Maschinen und Praktikum 'Java-Compiler'. 'Springer-Lehrbuch'. Auflage 1998. Mit 29…
Buch (kartoniert)
Dieses Buch vermittelt sowohl Studierenden der Informatik als auch Softwareentwicklern fundierte Grundlagen und Vorgehensweisen zur Entwicklung von Compilern für objektorientierte Programmiersprachen. Anhand mehrerer Sprachen (Smalltalk-80, Java, C++... weiterlesen
Buch

32,95*

inkl. MwSt.
Portofrei
Sofort lieferbar
Übersetzung objektorientierter Programmiersprachen als Buch
Produktdetails
Titel: Übersetzung objektorientierter Programmiersprachen
Autor/en: Bernhard Bauer, Riitta Höllerer

ISBN: 3540642560
EAN: 9783540642565
Konzepte, abstrakte Maschinen und Praktikum 'Java-Compiler'.
'Springer-Lehrbuch'.
Auflage 1998.
Mit 29 Abbildungen.
Springer-Verlag GmbH

Oktober 1998 - kartoniert - XIV

Beschreibung

Dieses Buch vermittelt sowohl Studierenden der Informatik als auch Softwareentwicklern fundierte Grundlagen und Vorgehensweisen zur Entwicklung von Compilern für objektorientierte Programmiersprachen. Anhand mehrerer Sprachen (Smalltalk-80, Java, C++) werden die Konzepte objektorientierter Sprachen und ihrer Übersetzung dargestellt. Die Themengebiete des Theorieteils sind: - objektorientierte Konzepte - Übersetzung objektorientierter Sprachen - abstrakte (virtuelle) Maschinen - Typinferenz und Typüberprüfung - Optimierungen - Speicherbereinigung (garbage collection). Im Praxisteil des Buches wird die Spezifikation eines Übersetzers für Java entwickelt. Diese Spezifikation kann als Eingabe für einen Übersetzergenerator verwendet werden, der daraus ein ablauffähiges C-Programm erzeugt. Zahlreiche Illustrationen und Beispiele veranschaulichen die Lerninhalte. Durch das Praktikum im zweiten Teil mit Aufgaben und Lösungen (im WWW) kann der vermittelte Stoff am Beispiel eines Java-Compilers eingeübt werden. Das Buch entstand aus einer zweistündigen Vorlesung mit darauf aufbauendem Praktikum. Es ist auch zum Selbststudium geeignet.

Inhaltsverzeichnis

1: Theorie.- 1 Einleitung.- 1.1 Übersetzung von Programmiersprachen.- 1.2 Objektorientiertheit und objektorientierte Programmiersprachen.- 1.3 Reine und hybride objektorientierte Programmiersprachen.- 1.4 Die Programmiersprache Java.- 1.5 Überblick über die weiteren Kapitel.- 2 Objektorientierte Konzepte.- 2.1 Klassenbasierte objektorientierte Sprachen.- 2.1.1 Objekte und Klassen.- 2.1.2 Gleichheit und Kopieren von Objekten.- 2.1.3 Abstrakte Klassen und Interface-Klassen.- 2.1.4 Multi-Methoden.- 2.2 Vererbung.- 2.2.1 Einfachvererbung.- 2.2.2 Mehrfachvererbung.- 2.2.3 Dynamische Vererbung.- 2.3 Kapselung.- 2.4 Parametrisierung und generische Datentypen.- 2.5 Parametrisierung versus Vererbung.- 2.6 Polymorphismus.- 3 Übersetzung objektorientierter Konzepte und abstrakte Maschinen.- 3.1 Lose Übersetzung.- 3.1.1 Abstrakte Maschine AM.- 3.1.1.1 Laufzeitumgebung der abstrakten Maschine AM..- 3.1.1.2 Befehle der abstrakten Maschine AM.- 3.1.1.3 Adressierungsarten.- 3.1.2 Klassen und Einfachvererbung.- 3.1.3 Methodendeklarationen.- 3.1.4 Nachrichten und Methodenaufrufe.- 3.1.5 Objekte.- 3.1.6 Semiformale Beschreibung der Semantik der abstrakten Maschine.- 3.2 Smalltalk-80-Realisierung.- 3.2.1 Klassen und Einfachvererbung.- 3.2.2 Übersetzung von Methoden.- 3.2.3 Objekte.- 3.2.4 Objektverwaltung.- 3.2.5 Methodenaufruf.- 3.2.6 Die abstrakte Maschine für Smalltalk-80.- 3.3 Java-Realisierung.- 3.3.1 Klassen und einfache Vererbung.- 3.3.1.1 Einträge im Konstantenpool.- 3.3.1.2 Einträge für Instanzvariablen.- 3.3.1.3 Einträge für Methoden.- 3.3.1.4 Bemerkungen.- 3.3.2 Methodendeklarationen.- 3.3.3 Methodenaufruf und Rücksprung.- 3.3.4 Objekte.- 3.3.5 Die virtuelle Maschine von Java.- 3.4 C++-Realisierung.- 3.4.1 Methoden, Klassen und einfache Vererbung.- 3.4.2 Objekte.- 3.4.3 Methodenaufruf.- 3.4.4 Mehrfachvererbung.- 3.5 Parametrisierung.- 3.5.1 Kopierende Sicht.- 3.5.2 Echte generische Sicht.- 4 Typinferenz und Typüberprüfung.- 4.1 Typisierung und Binden.- 4.1.1 Typisierung.- 4.1.2 Binden und Methodensuche.- 4.1.3 Zusammenhang von Typisierung und Binden.- 4.1.4 Typisierungsprobleme.- 4.2 Typisierung mit Datenflußanalyse.- 4.2.1 Datenflußanalyse.- 4.2.2 Typisierung mit Datenflußanalyse.- 4.3 Typisierung mit Constraints.- 5 Optimierungen.- 5.1 Standardoptimierungen.- 5.1.1 Elimination redundanter Ausdrücke.- 5.1.2 Konstantenfaltung.- 5.1.3 Elimination toten Programmcodes.- 5.1.4 Kopien-Verbreitung.- 5.1.5 Schleifenoptimierungen.- 5.1.6 Reduktion des Operators und algebraische Umformungen.- 5.1.7 Kontrollflußoptimierungen.- 5.2 Objektorientierte Optimierungen.- 5.2.1 Intraprozedurale Klassenanalyse.- 5.2.2 Analyse der Klassenhierarchie.- 5.2.3 Effiziente Implementierung der Methodensuche.- zur Übersetzungszeit.- 5.2.4 Inkrementelle Programmentwicklung und separate Übersetzung.- 5.2.5 Klassentest.- 5.2.5.1 Einfach-Klassentest.- 5.2.5.2 Unterklassentest.- 5.2.5.3 Verwendung von Klassentests und Splitting.- 5.2.6 Funktionsexpansion.- 5.2.7 Wertbasierte Analyse und Instanzvariablen-Optimierung..- 5.2.8 Profile-Informationen.- 5.2.9 Spezialisierte Varianten: Customization.- 5.2.10 Lookup- und Inline-Caches.- 6 Speicherbereinigung.- 6.1 Nicht-inkrementelle Techniken.- 6.1.1 Mark-Scan-Speicherbereinigung.- 6.1.2 Kopierende Speicherbereinigung.- 6.1.2.1 Kopierende Speicherbereinigung mit zwei Regionen.- 6.1.2.2 Kopierende Speicherbereinigung mit Generationen.- 6.2 Inkrementelle Techniken: Referenzzählende Algorithmen.- 7 Ausblick.- 7.1 Compiler-Entwicklung.- 7.1.1 Bootstrapping und Cross-Compiler.- 7.1.2 Compiler-Generatoren.- 7.2 Varianten von Compilern.- 7.2.1 Dynamische Recompilierung.- 7.2.2 Deutsch-Schiffman-Technik.- 7.2.3 Just-In-Time Compiler.- 7.2.4 Compiler und Programmkorrektheit.- 7.3 Hardware-Unterstützung.- 2: Praxis.- 8 Compilerbaupraktikum.- 9 Java - Die Programmiersprache.- 9.1 Java-Merkmale.- 9.2 Objekte in Java.- 9.3 Ausdrücke und Statements.- 9.4 Einschränkungen.- 9.5 Aufgaben.- 10 Das MAX-System.- 10.1 Eigenschaften.- 10.2 MAX-Spezifikationen.- 10.3 Ordnungssortierte Terme.- 10.4 Occurrence- bzw. Knotensorten.- 10.5 Muster.- 10.5.1 Sondersymbole in den Mustern.- 10.5.2 Mustersyntax.- 10.6 Attribute.- 10.7 Funktionen.- 10.8 Kontextbedingungen.- 10.9 Generierung eines Java-Übersetzers mit dem MAX-System.- 10.10 Aufgaben.- 11 Befehle der virtuellen Java-Maschine.- 11.1 Konstanten auf den Keller laden.- 11.2 Lokale Variablen auf den Keller laden.- 11.3 Speichern in eine lokale Variable.- 11.4 Manipulation des Kellers.- 11.5 Behandlung von Objekten.- 11.6 Arithmetische Befehle.- 11.7 Sprungbefehle.- 11.8 Methodenaufruf und Rücksprung.- 11.9 Überprüfung der Klassenzugehörigkeit.- 11.10 Erzeugung des JVM-Codes.- 12 Übersetzerspezifikation.- 12.1 Bindungsanalyse (Identifikation).- 12.1.1 Ziele der Bindungsanalyse.- 12.1.2 Bindungsanalyse für Java.- 12.1.3 Aufgaben.- 12.2 Typdeklarationen und Typisierung.- 12.2.1 Typdeklarationen.- 12.2.2 Typisierung von Ausdrücken.- 12.2.3 Aufgaben.- 12.3 MAX-Spezifikation der Klassendatei.- 12.3.1 Aufgaben.- 12.4 Ausdrücke und ihre Codeerzeugung.- 12.4.1 Wert eines Ausdrucks.- 12.4.2 Codeerzeugung für Ausdrücke.- 12.5 Statements und ihre Codeerzeugung.- 12.5.1 Statements.- 12.5.2 Code für Statements.- 12.5.3 Ausdrücke als Statements.- 12.5.4 Aufgaben.- 12.6 Methodendeklaration.- 12.6.1 Abstrakte Syntax.- 12.6.2 Methodeneinträge in die Klassendatei.- 12.6.3 Attributierung für Method@-Knoten.- 12.7 Kellerrahmen von Java-Methodeninkarnationen.- 12.8 Methodenaufruf.- 12.8.1 Abstrakte Syntax.- 12.8.2 Methodenreferenzeinträge im Konstantenpool.- 12.8.3 JVM-Code.- 12.8.4 Attributierung für MethodCall@-Knoten.- 12.8.5 Aufgaben.- 12.9 Vererbung.- 12.9.1 Vererbung in Java.- 12.9.2 Implementierung von Vererbung.- 12.9.3 Berücksichtigung der Vererbungshierarchie.- 12.9.4 Implementierung von super.- 12.9.5 Aufgaben.- 12.10 Ausgabeschnittstelle.- 12.10.1 Java-Klassen für print-Ausgaben.- 12.10.2 Code für print-Ausgaben.- 12.10.3 Aufgaben.- Anhang A: Klassenfile und Bytecode.- Anhang B: Java-Syntax.- Literatur.

Kunden, die diesen Artikel gekauft haben, kauften auch

Tragen Sie Ihre E-Mail- Adresse ein, und bleiben Sie kostenlos informiert:
Generierung portabler Compiler
Buch (kartoniert)
von Michael Eulen…
Splitter
eBook
von Sebastian Fit…
Küstenmorde
eBook
von Nina Ohlandt
Mörderischer Mistral
- 20% **
eBook
von Cay Rademache…
Print-Ausgabe € 9,99

Mehr aus dieser Reihe

zurück
Zivilprozessrecht
Buch (kartoniert)
von Christoph G. Pau…
Vorlesungen über Informatik 1
Buch (kartoniert)
von Gerhard Goos, Wo…
Biostatistik
Buch (kartoniert)
von Wolfgang Köhler,…
Formeln und Aufgaben zur Technischen Mechanik 1
Buch (kartoniert)
von Dietmar Gross, W…
Technische Mechanik 1
Buch (kartoniert)
von Dietmar Gross, W…
vor

Diese Artikel könnten Sie auch interessieren

Grundkurs Microsoft Dynamics AX
Buch (kartoniert)
von Andreas Luszc…
Der Computer - Mein Lebenswerk
- 42% **
eBook
von Konrad Zuse, …
Print-Ausgabe € 39,99
Der Computer - Mein Lebenswerk
Buch (gebunden)
von Konrad Zuse
Einführung in die Programmiersprache C++
Buch (kartoniert)
von Falko Bause
Formale Sprachen, abstrakte Automaten und Compiler
- 23% **
eBook
von Christian Wag…
Print-Ausgabe € 29,99
Servicehotline
089 - 70 80 99 47

Mo. - Fr. 8.00 - 20.00 Uhr
Sa. 10.00 - 20.00 Uhr
Filialhotline
089 - 30 75 75 75

Mo. - Sa. 9.00 - 20.00 Uhr
Bleiben Sie in Kontakt:
Sicher & bequem bezahlen:
akzeptierte Zahlungsarten: Überweisung, offene Rechnung,
Visa, Master Card, American Express, Paypal
Zustellung durch:
* Alle Preise verstehen sich inkl. der gesetzlichen MwSt. Informationen über den Versand und anfallende Versandkosten finden Sie hier.
** im Vergleich zum dargestellten Vergleichspreis.