Einige Erklärungen zur C♯ -Programmierung
C♯ ist eine Programmiersprache.
Die Spezifikation der Sprache C♯
Die “C# Language Specification ” (hier auch kurz „C♯LS “ genannt) ist die maßgebliche Spezifikation (also „Festlegung“, „Bestimmung“) der Programmiersprache C♯.
Sie stammt von Microsoft.
Die Bedeutung von Begriffen in Zusammenhang mit der Programmiersprache C♯ wird durch die C♯LS festgelegt.
Die C♯LS kann mit Suchmaschinen im Web gefunden und dort gelesen werden.
Die C♯LS liegt Mitte 2015 in der “Version 5.0 ” (Version 5.0) vor, welche hier auch kurz als CLS5 bezeichnet wird.
Allerdings wird schon eine Version von C♯ ausgeliefert, die auch als „C♯ 6.0“ bezeichnet wird und die diesem Kurs zugrundegelegt wird, und es gibt bereits einige Gerüchte zu möglichen Neuerungen in C♯ 7.0.
- C♯ 6.0
"If the program is stored" "There are two kinds of types" "nameof"
"2016 Microsoft Corporation" "To ensure that C# programs"
- C♯ 5.0
- http://google.to/search?q=download.microsoft.com%2Fdownload%2F0%2FB%2FD%2F0BDA894F-2CCD-4C2C-B5A7-4EB1171962E5%2FCSharp%2520Language%2520Specification.docx
- C♯ 4.0 Overview
- http://google.to/search?q=cache:download.microsoft.com/download/9/5/0/9503e33e-fde6-4aed-b5d0-ffe749822f1b/csharp%25203.0%2520specification.doc
- C♯ 3.0 Overview
- http://google.to/search?q=cache:download.microsoft.com/download/7/E/6/7E6A548C-9C20-4C80-B3B8-860FAF20887A/CSharp%25204.0%2520Specification.doc
- Standard ECMA-334 - C# Language Specification
- http://www.ecma-international.org/publications/standards/Ecma-334.htm
Die “Common Language Runtime” (CLR )
Die CLR ist das Ausführungssystem (eine virtuelle Maschine) für C♯ -Programme, welches vom Autor der CLS selber stammt. Damit ist es sozusagen das Standard-Ausführungssystem für C♯. (Es gibt auch andere Ausführungssysteme für C♯.)
C♯ basiert auf einer Ausführungsumgebung, die durch die CLI (Common Language Infrastructure ) spezifiziert und beispielsweise von der CLR (Common Language Runtime ) implementiert wird. Eine CLI -Implementation kann Programme ausführen, welche in der CIL (Zwischensprache, Common Intermediate Language , “bytecode ”, früher: „MSIL“ [Microsoft Intermediate Language] genannt) formuliert sind. C♯ -Programme werden in diese Sprache übersetzt und können so auf einer CLI -Implementation ausgeführt werden.
Der C♯ -Übersetzer (“C♯ compiler ”)
C♯ -Programme können üblicherweise nicht direkt ausgeführt werden. Sie müssen erst von einem C♯ -Übersetzer (einem “C♯ compiler”) in ein ausführbares Programm übersetzt werden. Das Ergebnis jener Übersetzung wird dann in einer ausführbaren Datei im PE -Format (“portable executable ”) mit der Dateinamenserweiterung ».exe« gespeichert.
- Übersetzung einer Quelldatei
- [ Quelldatei ]--->( Übersetzer )--->[ ausführbare Datei ]
Das, was ein Übersetzer übersetzt (hier also die Quelldatei), wird auch als Übersetzungseinheit bezeichnet.
Der C♯ -Übersetzer heißt normalerweise »csc« (“C♯ compiler ”). Wenn er die Quelldatei »Program.cs« übersetzt, dann heißt das Ergebnis dieser Übersetzung normalerweise »Program.exe«.
- Übersetzung der Quelldatei »Program.cs«
- [ Program.cs ]--->( csc )--->[ Program.exe ]
Die ausführbare Datei »Program.exe« kann nun von Windows ausgeführt werden (vorausgesetzt, die verwendete Windows -Installation enthält auch eine passende (aktuelle) Version der Dotnet -Laufzeitumgebung).
Die Dotnet -Laufzeitumgebung
Die Dotnet -Laufzeitumgebung (“the .NET framework ”) enthält alles, was nötig ist, um IL -Programme auszuführen, es ist Bestandteil aktueller Windows -Versionen. Es enthält die CLR.
Die Bauwerkzeuge
Die Bauwerkzeuge (“Microsoft Build Tools ”) umfassen die Übersetzer für Visual Basic und C♯ und können über das Internet kostenlos von Microsoft kopiert werden.
IL und CLR ⃗
Eine vom C# -Compiler erzeugte ausführbare Datei enthält in der Regel IL-Code. Dabei handelt es sich um eine Übersetzung des C# -Programms in der Sprache IL (die IL “intermediate language ”, auch CIL “common intermediate language ” genannt). Zur Ausführung solch eines IL-Programmes wird dann die .NET CLR (Command Language Runtime) verwendet.
- Ausführung einer ausführbaren Datei mit IL-Code
- [ ausführbare Datei mit IL-Code ]--->( CLR )
Eine von der CLR ausgeführte Datei kann beispielsweise »Program.exe« heißen.
- Ausführung einer ausführbaren Datei durch die CLR
- [ Program.exe ]--->( CLR )
Die CLR kann unter verschiedenen Betriebssystemen und Prozessoren eingerichtet werden. Dadurch wird es möglich, daß die schon übersetzte IL -Code-Darstellung eines Programms unter verschiedenen Betriebssystemen und auf unterschiedlichen Prozessoren ausgeführt werden kann.
Die CLR führt C♯ -Programme nicht direkt aus, sie führt IL -Programme aus, welche aus C♯ -Programmen erzeugt werden können.
Die Implementation der CLR befindet sich hauptsächlich in der Datei »mscoree.dll«, der “common object runtime execution engine ”.