1 / 15

Common Language Runtime

Common Language Runtime. Seminar Softwareentwicklung Wintersemester 2003. Gertraud Orthofer e-mail: g.orthofer@gmx.at. Common Language Runtime. Laufzeitumgebung CIL-Code und Metadaten Hauptbereiche Common Type System (CTS) Common Language Specification (CLS)

branxton
Download Presentation

Common Language Runtime

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Seminar Softwareentwicklung

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

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

  5. 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 Seminar Softwareentwicklung

  6. Werttypen - Referenztypen Seminar Softwareentwicklung

  7. Übersicht der Typen Boxing Werttypen Referenztypen Unboxing Vordefinierte Typen Vordefinierte Typen Pointers Klassen BenutzerdefinierteTypen Schnittstellentyp Arrays Delegates Seminar Softwareentwicklung

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

  9. 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) } Seminar Softwareentwicklung

  10. 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 instancevirtual void goo() {…} .method instance void hoo() {…} } • Methodenaufrufe • Call void Bar:: foo() oder call instance void Bar:: (goo() | hoo()) • Callvirt instance void Bar:: (goo() | hoo()) Seminar Softwareentwicklung

  11. 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) Seminar Softwareentwicklung

  12. 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)] Seminar Softwareentwicklung

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

  14. 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 Seminar Softwareentwicklung

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

More Related