Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer

Ähnliche Präsentationen


Präsentation zum Thema: "Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer"—  Präsentation transkript:

1 Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer e-mail: g.orthofer@gmx.at

2 Seminar Softwareentwicklung2

3 3 Common Language Runtime Laufzeitumgebung CIL-Code und Metadaten Hauptbereiche Common Type System (CTS) Common Language Specification (CLS) Virtual Execution System (VES) Metadata System

4 Seminar Softwareentwicklung4 Vorteile von CLR Typsicherheit Sicherheit verschiedene Sprachen Performanz Deployment (DLL-hell) Metadata (self-describing Code) Garbage Collection

5 Seminar Softwareentwicklung5 Common Type System Gemeinsames Typsystem für alle Sprachen legt Regeln fest: wie Typen definiert werden wie sie sich verhalten alle Typen erben von System.Object Typen bestehen aus Menge von Werten darauf definierten Operationen zwei grundlegende Typen Werttypen Referenztypen

6 Seminar Softwareentwicklung6 Werttypen - Referenztypen WerttypenReferenztypen Speicherort StackLocation: Stack Inhalt: Heap Initialisierung 0null Garbage Collection neinja Objektvergleich InhaltReferenz Vererbung neinja Basisklasse System.ValueSystem.Object

7 Seminar Softwareentwicklung7 Übersicht der Typen Boxing Unboxing WerttypenReferenztypen Vordefinierte Typen Benutzerdefinierte Typen Vordefinierte Typen Pointers Klassen Schnittstellentyp Arrays Delegates

8 Seminar Softwareentwicklung8 Benutzerdefinierte Werttypen (1/2) Struktur.class (auto|sequential) sealed Person extends System.ValueType{.field string name.field int32 age } Vereinigung.class explicit sealed IntFloat extends System.ValueType{.field [0] float32 f.field [0] int32 i }

9 Seminar Softwareentwicklung9 Benutzerdefinierte Werttypen (2/2) Enumeration Basisklasse System.Enum Namen/Wert Paare werden unter bestimmten Namen gruppiert.class sealed Color extends System.Enum{.field static literal valuetype Color red = int32 (0x00000000).field static literal valuetype Color green = int32 (0x00000001).field static literal valuetype Color blue = int32 (0x00000002) }

10 Seminar Softwareentwicklung10 Benutzerdefinierbare Referenztypen (1/2) Klassen Speicherplatzreservierung und Initialisierung in einer Anweisung abgeleitet von System.Object Keine Mehrfachvererbung erlaubt Methoden.class Bar extends System.Object {.method static void foo() {…}.method instance virtual void goo() {…}.method instance void hoo() {…} } Methodenaufrufe Call void Bar:: foo() oder call instance void Bar:: (goo() | hoo()) Callvirt instance void Bar:: (goo() | hoo())

11 Seminar Softwareentwicklung11 Benutzerdefinierbare Referenztypen (2/2) Interfaces müssen abstract sein, keine Instanzen können davon erzeugt werden mehrfache Schnittstellenvererbung erlaubt.class interface abstract ILockable {.method public abstract instance virtual void Lock() {} } Arrays Daten vom Array müssen alle den gleichen Typ enthalten Zugriff auf die Daten über den Index Arten (newarr, newobj)

12 Seminar Softwareentwicklung12 Common Language Specification legt Mindestanforderungen an jede Programmiersprache fest Regelwerk CLS-Regel 1: CLS-Regeln betreffen lediglich die Teile eines Typs, die außerhalb des definierenden Assemblys zur Verfügung stehen. [assembly: CLSCompliant(true)]

13 Seminar Softwareentwicklung13 weitere CLR-Regeln Namen Member Access Type visibility Member accessibility Security constraints Type Members Properties Events

14 Seminar Softwareentwicklung14 Virtual Execution System Starten einer.exe Datei CLR starten Windows Loader lädt Datei MSCorEE.dll laden _CorExeMain starten CLR initialisieren CLR beginnt zu arbeiten

15 Seminar Softwareentwicklung15 Execution Engine JIT-Compiler AppDomain Laden einer PE-Datei Laden eines Assemblies Sicherheitsmanager Rechtsvergabe Klassenlader Laden eines Moduls Laden eines Typs Übersetzung in Maschinencode Codemanager Ausführung des Programms Verifikation der CIL Managed Native Code Image


Herunterladen ppt "Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer"

Ähnliche Präsentationen


Google-Anzeigen