| MSIL | |||||
|
Microsoft Intermediate Language. Die MSIL ist ein Zwischencode, der aus dem Quellcode der jeweiligen Sprache aus dem .NET-Framework erzeugt wird. Die Virtuelle Maschine (VM) der Laufzeitumgebung (Common Language Runtime (CLR)) führt diesen Code dann zur Laufzeit mit einem Echtzeit-Compiler (Just-in-Time Compiler) aus: der MSIL Code wird in Maschinen-Code umgewandelt. Die Bezeichnung MSIL wurde im Rahmen der Standardisierung durch die ECMA International (ehemals European Computer Manufacturers Association) umgeändert in Common Intermediate Language (CIL). Dies geschah auch vor dem Hintergrund der Standardisierung Common Language Infrastructure (CLI) durch die ECMA, wobei das .NET-Framework von Microsoft eine Implementierung der CLI darstellt. |
|||||
| Siehe auch: Dot-NET JIT-Compiler Compiler Managed-C-Plus-Plus C-Plus-Plus-CLI Assembler Quellcode | |||||
| JIT-Compiler | |||||
|
Ein JIT-Compiler ist ein Just-In-Time Compiler (Echtzeit-Compiler) und gehört zu einer virtuellen Maschine, wie z. B. der Java Virtual Machine (JVM) oder der Common Language Runtime (CLR) des .NET Frameworks von Microsoft. Die CLR wie auch die JVM erzeugen zuerst einen Zwischencode: dieser Bytecode wird von dem JIT-Compiler erst bei Laufzeit des Programmes in Maschinen-Code, den der Prozessor direkt ausführen kann, übersetzt. Dadurch ist eine Plattformunabhängigkeit gegeben und die Programmausführung für dynamische Programmiersprachen kann bei hochentwickleten JIT-Compilern beschleunigt werden, da dynamische Optimierungen durchgeführt werden können. Compiler welche den fertigen Maschinen-Code vor der Laufzeit des Programmes erzeugen werden als Ahead-of-Time-Compiler (AOT-Compiler) bezeichnet. Bei AOT-Compilern ist der Code allerdings nicht mehr plattformunabhängig. Dafür sind die Programme zur Laufzeit i.d.R. schneller, da sie schon fertig kompiliert sind. Im Rahmen der CLR kompiliert der Just-in-Time-Compiler das in der Common Intermediate Language (CLR) oder früher auch Microsoft Intermediate Language (MSIL) genannt vorliegende Programm zur Laufzeit in Maschinencode und optimiert dabei den Code für die jeweilige Plattform und insbesondere den Prozessortyp. Dadurch ist Plattform- und Sprachunabhängigkeit gegeben. Die CIL ist eine Zwischensprache der CLR: sie ist eine objektorientierte Assemblersprache und stackbasiert. |
|||||
| Siehe auch: Dot-NET Dot-NET-Framework-3-0 Compiler CLR Microsoft Java Assembler Quellcode | |||||
| Dot-NET | |||||
|
.NET ist eine Entwicklungsplattform von Microsoft. Folgende Attribute beschreiben deren Strategie: Modularität, Wiederverwendbarkeit, Plattformunabhängigkeit, Sprachunabhägigkeit, Selbstbeschreibung sowie Internetausrichtung und -technologie. Common Language Runtime, WinFX und Common Language Infrastructure Die .NET-Plattform besteht aus einer Laufzeitumgebung (die Common Language Runtime, CLR), einer Sammlung von Klassenbibliotheken (WinFX bzw. Framework Class Library (FCL)), den unterstützenden Programmiersprachen, der grafischen Entwicklungsumgebung Visual Studio, sowie einer Reihe von Diensten. Das .NET-Framework ist eine Spezifikation der Common Language Infrastructure (CLI), einem ECMA-Standard (European Computer Manufacturers Association) für sprach- und plattformunabhängige Anwendungsentwicklung und -ausführung. .NET-Geschichte und .NET-Strategie Die .NET-Strategie entwickelte sich in den 90er Jahren aus der Gefährdung der Vorherrschaft von Microsoft in PC-Schlüsseltechnologien durch die plattformunabhängige Programmiersprache Java von Sun Microsystems. Eine eigene Java-Version von Microsoft gefährdete die Plattformunabhängigkeit von Java und wurde zudem von Sun gerichtlich unterbunden. Die .NET-Strategie sollte die Unabhängigkeit von Microsoft wieder herstellen und als plattformunabhängige Entwicklungsumgebung gegen Java antreten. Zudem sollten veraltete Technologien wie COM und DCOM sowie API-Aufrufe auf der Windows-Plattform ersetzt werden. Software, welche im Rahmen der .NET-Umgebung erstellt wurde, läuft plattformunabhängig auf internetfähigen Geräten, indem der Code mehr als bisher abstrahiert wird und unabhängiger von der verwendeten Sprache gehalten wird. .NET-Sprachen und Common Intermediate Language Dies wird erreicht, indem die Common Language Runtime sprachübergreifend funktioniert, da angepasste Programmiersprachen wie C#, C++.NET oder Visual Basic.NET zuerst in einen Zwischencode, der Common Intermediate Language (CIL), ehemals Microsoft Intermediate Language (MSIL) und dann erst zur Laufzeit von einem Echtzeitcompiler (Just-in-Time Compiler) in lauffähigen Sourcecode umgewandelt wird. Managed-Code Programme die innerhalb der CLR laufen werden als "managed" bezeichnet, alle anderen als "unmanaged". Die Interop-Technik ermöglicht es, alte COM-Programme mit .NET-Hüllen zu versehen und sie wie .NET-Klassen aufzurufen oder vice versa: .NET-Klassen als COM-Klassen aufrufen. Implementiert sind gleich 3 Konzepte: Web-Services, .NET Remoting Services und die .NET Enterprise Services. |
|||||
| Siehe auch: Dot-NET-Framework-3-0 CLR WinFX JIT-Compiler C-Plus-Plus-CLI Managed-C-Plus-Plus Windows-Communication-Foundation Component-Object-Model ASP-Dot-NET Mono | |||||