common language runtime n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Common Language Runtime PowerPoint Presentation
Download Presentation
Common Language Runtime

Loading in 2 Seconds...

play fullscreen
1 / 15

Common Language Runtime - PowerPoint PPT Presentation


  • 133 Views
  • Uploaded on

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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Common Language Runtime' - anaya


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
common language runtime

Common Language Runtime

Seminar Softwareentwicklung

Wintersemester 2003

Gertraud Orthofer

e-mail: g.orthofer@gmx.at

common language runtime1
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

vorteile von clr
Vorteile von CLR
  • Typsicherheit
  • Sicherheit
  • verschiedene Sprachen
  • Performanz
  • Deployment (DLL-hell)
  • Metadata (self-describing Code)
  • Garbage Collection

Seminar Softwareentwicklung

common type system
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

werttypen referenztypen
Werttypen - Referenztypen

Seminar Softwareentwicklung

bersicht der typen
Übersicht der Typen

Boxing

Werttypen

Referenztypen

Unboxing

Vordefinierte Typen

Vordefinierte Typen

Pointers

Klassen

BenutzerdefinierteTypen

Schnittstellentyp

Arrays

Delegates

Seminar Softwareentwicklung

benutzerdefinierte werttypen 1 2
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

benutzerdefinierte werttypen 2 2
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

benutzerdefinierbare referenztypen 1 2
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

benutzerdefinierbare referenztypen 2 2
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

common language specification
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

weitere clr regeln
weitere CLR-Regeln
  • Namen
  • Member Access
    • Type visibility
    • Member accessibility
    • Security constraints
  • Type Members
  • Properties
  • Events

Seminar Softwareentwicklung

virtual execution system
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

slide15

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