Freigeben über


Common Language Runtime und Ausdrucksauswertung

Compiler, z. B. Visual Basic und C# (ausgeprägtes C-scharfes), die für die Common Language Runtime (CLR), Erzeugnis Microsoft Intermediate Language (MSIL), die später in systemeigenen Code kompiliert wird. Die CLR stellt eine Debug- Modul (DE) Um den resultierenden Code zu debuggen. Wenn Sie planen, die herstellereigene Programmiersprache in die Visual Studio-IDE zu integrieren, können Sie auswählen, dass in MSIL kompiliert und werden daher nicht schreiben müssen, DE besitzen. Sie müssen jedoch einen Ausdrucksauswertung (EE) der dem Auswerten von Ausdrücken im Kontext der Programmiersprache unterstützt.

Erörterung

Computersprachen Ausdrücke werden im Allgemeinen analysiert und Daten aus einem Satz von Objekten eine Reihe von Operatoren zu erzeugen, die verwendet werden, um sie zu bearbeiten. Beispielsweise wird der Begriff „A+B“ analysiert werden, um den Additionsoperator (+) an Datenobjekte „A“ und „B“ mit dem Ergebnis eines anderen Datenobjekts möglicherweise zu übernehmen. Die gesamten Satz Daten-Objekte, die Operatoren und deren Zuordnungen werden meist in einem Programm als Struktur mit den Operatoren auf den Knoten der Struktur und den Datenobjekten an den Verzweigungen darstellen. Ein Ausdruck, der in Struktur Form aufgegliedert wurde, wird häufig eine analysierte Struktur bezeichnet.

Nachdem ein Ausdruck analysiert wurde, wird ein Symbol für (SP) aufgerufen, um ein Datenobjekt auszuwerten. Wenn z. B. „A“ definierte beide in mehr als eine Methode handelt, die Frage „A“? muss vor dem Wert von A geantwortet werden kann festgestellt werden. Die Antwort, die vom SP zurückgegeben wird, ist in etwa „das dritte Element im fünften Stapelrahmen“ oder „dem A, der 50 Bytes vor dem Anfang des statischen Arbeitsspeicher befindet, der auf diese Methode zugeordnet ist.“

Neben dem Erzeugen von MSIL für das Programm selbst können auch beschreibende sehr CLR-Compiler Debuginformationen bereitstellen, die in einer Programmdatenbankdatei (.pdb) geschrieben wird. Solange ein Besitzer LANGUAGE-Compiler Debuginformationen im gleichen Format wie die CLR-Compiler bereitstellt, ist das von der CLR SP möglich zu identifizieren, dass die benannten Datenobjekte der Sprache. Sobald ein benanntes Datenobjekt identifiziert wurde, wird die EE ein Binder Objekt an den Mitarbeiter (oder zur Bindung) das Datenobjekt mit Speicherbereich, der den Wert dieses Objekts enthält. DE kann dann einen neuen Wert für das Datenobjekt abrufen oder festlegen.

Ein herstellereigener Compiler kann CLR-Debuginformationen aus dem Aufruf der ISymbolWriter-Schnittstelle (die in .NET Framework bereitstellen System.Diagnostics.SymbolStoreim Namespace definiert ist). Indem er in MSIL kompiliert und Debuginformationen durch diese Schnittstellen schreibt, kann ein herstellereigener Compiler die CLR DE und SP verwenden. Dies vereinfacht erheblich das Integrieren eines proprietären Sprache in die Visual Studio-IDE.

Wenn die CLR den Besitzer DE EE aufruft, um einen Ausdruck, der supplies DE EE mit Schnittstellen zu einem SP und ein Binder Objekts auszuwerten. Wenn ein CLR-basiertes Debuggen Modul bedeutet zu schreiben, ist es erforderlich, dass die entsprechenden Ausdrucksauswertung nur Schnittstellen zu implementieren. CLR, werden der Bindung und der Symbol Klassenbehandlung für Sie.

Siehe auch

Weitere Ressourcen

Schreiben eines Common Language Runtime-Ausdrucksauswerter