2.6 Erinnerung: Programmverwaltung

Werbung
2.6 Erinnerung: Programmverwaltung
Quellencode
.....
.....
(getrennt übersetzbare Programmteile)
(source code)
Übersetzer
(compiler, assembler)
Objektcode
.....
.....
(object/binary code)
Binder
(linker, linkage editor)
Objektprogramm
(object/executable program)
Lader
(loader)
startbereites Objektprogramm
(im Adreßraum eines Prozesses)
Start
Java:
Übersetzung in Zwischencode (byte code):
javac Test.java
Suchen externer Typen in Verzeichnissen gemäß
Umgebungsvariable CLASSPATH, z.B. in Unix
CLASSPATH = .:/usr/lohr/classes:/import/java/classes
Interpretation des Zwischencodes:
java Test
zunächst bindender Lader (linking loader),
sucht benutzte Typen ebenfalls gemäß CLASSPATH;
nach Einbinden aller benötigten .class-Dateien Start
[ alternativ: Laden/Binden nach Bedarf (on demand) ]
3 Polymorphie und Vererbung
3.1 Polymorphe Typsysteme
Polymorphie
(polymorphism)
Universelle Polymorphie
Einschluß-Polymorphie,
z.B. Vererbung (inheritance)
bei objektorientierten Sprachen
Ad-hoc-Polymorphie,
Überladen (overloading)
parametrische Polymorphie,
Generizität (genericity)
Beispiele - generische Schnittstellen und Klasse in GJ:
interface Queue<T> {
void append(T item);
T
remove() throws QueueUnderflow;
}
class LinkedQueue<T> implements Queue<T> {
private class Cell<T> {.....}
.
.
.
public LinkedQueue() {.....}
}
interface Map<Key,Data> {.....}
Herunterladen