2 6 Erinnerung Programmverwaltung Quellencode getrennt bersetzbare Programmteile
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 Queue. Underflow; } class Linked. Queue<T> implements Queue<T> { private class Cell<T> {. . . }. . . public Linked. Queue() {. . . } } interface Map<Key, Data> {. . . }
- Slides: 4