Meß- und Wirkausdrücke in C♯
Beispiel
Program.cs
public static class Program
{ public static void Main()
{global::System.Console.WriteLine( global::System.Environment.GetEnvironmentVariable( "orkten" ));
global::System.Environment.SetEnvironmentVariable( "orkten", "echo" );
global::System.Console.WriteLine( global::System.Environment.GetEnvironmentVariable( "orkten" ));
}}global::System.Console.Out
- (Leerzeile)
echo
Erklärung
Operationen
Unter einer Operation verstehen wir eine Inkarnation, also eine Methode zusammen mit konkreten Argumentwerten für alle ihre Parameter. Beispielsweise ist »global::System.Environment.GetEnvironmentVariable( "orkten" )« eine Operation, während »global::System.Environment.GetEnvironmentVariable(string)« eine Methode ist.
Eine Operation kann ausgeführt werden, was dann Werte und Wirkungen entsprechend der Dokumentation ihrer Methode ergibt.
Entsprechend kann eine Operation auch mit einem Operator an Stelle einer Methode geschrieben werden, wobei dann die Operandenwerte die Stelle der Argumentwerte annehmen. Beispielsweise bezeichnet »2+3« auch eine Operation.
Umgebung
Unter der Laufzeitumgebung verstehen wir die Welt, die den Computer während der Ausführung eines Programmes umgibt.
- Zur dieser Laufzeitumgebung gehört auch der Computer selber, sowie eigentlich die ganz Welt. Es handelt sich bei der Laufzeitumgebung um ein physikalisches System. Man kann sich darunter oft einfach den Speicher des Computers vorstellen. Die Laufzeitumgebung wird oft einfach nur als Umgebung bezeichnet. Die Werte von Argumenten einer Operation gehören aber nicht zur Laufzeitumgebung bei der Ausführung dieser Operation.
Argumentwert ≠ Umgebung
Wirkungen
Eine Wirkung ist jede Veränderung des Zustandes eines Systems, wenn man sie als Folge von etwas betrachtet, also als dessen Auswirkung oder Wirkung.
Der Wert einer Auswertung gilt jedoch nicht als eine Wirkung dieser Auswertung, alle anderen von dieser Auswertung hervorgerufenen Veränderung schon.
Wert ≠ Wirkung
Das, was man von „außen“ von einer Auswertung beobachten kann ist der Wert und die Wirkung dieser Auswertung. Daher faßt man beides zum Verhalten zusammen. Das Verhalten einer Auswertung besteht aus ihrem Wert (gegebenenfalls) und aus ihrer Wirkung (gegebenenfalls).
Verhalten
Verhalten = Wert + Wirkung
Das, was man von „außen“ von einer Operation beobachten kann ist der Wert und die Wirkung dieser Operation. Daher faßt man beides zum Verhalten zusammen. Das Verhalten einer Operation besteht aus ihrem Wert (gegebenenfalls) und aus ihrer Wirkung (gegebenenfalls).
Messungen
Das Verhalten einer Operation kann von der Umgebung (von ihrem Zustand) abhängen. Man kann sich beispielsweise vorstellen, daß eine Operation den Speicher ausliest und ihr Verhalten vom Ergebnis des Auslesens abhängig macht. Eine solche Operation, deren Verhalten vom Zustand ihrer Umgebung abhängt, nennen wir auch eine Meßoperation.
Entsprechend ist eine Meßmethode, eine Methode, deren Operationen Meßoperationen sind.
Die Zustandsübertragung
Es ist möglich, daß eine Operation einer anderen Operation eine Botschaft übermitteln kann, indem die erste Operation eine Wirkung hervoruft, die von der zweiten Operation durch eine Messung detektiert wird.
Die Bestimmung des Verhaltens
Das Verhalten einer Anwendung einer Methode wird durch zwei Schritte bestimmt:
- Zuerst bestimmen die Argumentwerte eine bestimmte Operation.
- Dann bestimmt eine bestimmte Umgebung das Verhalten jener Operation.
So gesehen ist es immer genau bestimmt, was ein bestimmter Methodenaufruf macht – allerdings nicht nur durch die Argumentwerte, sondern auch durch den Zustand der Umgebung. Der Autor eines Methodenaufrufes kennt allerdings beides oft nicht, so daß ihm das genaue Verhalten eines bestimmten Methodenaufrufs nicht unbedingt bekannt sein muß.
Interaktionen
Wir habe die Situation hier noch etwas vereinfacht, indem wir ignoriert haben, daß eine Ausführung einer Inkarnation längere Zeit in Anspruch nehmen kann, und währenddessen selber verschiedene Wirkungen und Messungen vornehmen kann, was wir dann als eine Interaktion bezeichnen. Bei einer Interaktion können die Grenzen zwischen einer Inkarnation und ihrer Umgebung verschwimmen, aber man könnte diese Grenzen wieder herstellen, indem man die Interaktion in elementare Messungen und Wirkungen zerlegt.
Übung
Sagen Sie die Ausgabe des folgenden Programms voraus, ohne das Programm zu starten!
Program.cs
public static class Program
{ public static void Main()
{global::System.Console.WriteLine( global::System.Environment.GetEnvironmentVariable( "orkten" ));
global::System.Environment.SetEnvironmentVariable( "orkten", "a" );
global::System.Environment.SetEnvironmentVariable( "orkten", "b" );
global::System.Environment.SetEnvironmentVariable( "orkten", "c" );
global::System.Console.WriteLine( global::System.Environment.GetEnvironmentVariable( "orkten" ));
global::System.Environment.SetEnvironmentVariable( "orkten", "d" );
global::System.Console.WriteLine( global::System.Environment.GetEnvironmentVariable( "orkten" ));
}}