Samstag, 19. Januar 2013

Teil 2: Variablen und Daten


Damit ein Computer mit Daten etwas anfangen kann, muss er diese irgendwo speichern. Dafür hat er verschiedene Speicherorte wie den RAM, die Festplatte, Caches, CPU-Register usw. zur Verfügung. Während der Computer mit diesen Daten arbeitet, schiebt er sie zumeist lustig zwischen den einzelnen Speichern hin und her. Was da im Einzelnen geschieht und warum, müssen wir zum Programmieren aber nicht wissen. Für uns ist vorerst nur wichtig, dass ein Programm alle seine Daten, die es verarbeitet, im RAM ablegt.

Stell dir einen riesigen Platz vor, der in einzelne Quadrate (Lagerplätze) unterteilt ist. Jedes dieser Quadrate hat eine eindeutige Adresse, aber es ist vollständig leer. Dies ist unser Arbeitsspeicher. Wollen wir nun Daten auf diesem Platz sicher lagern und eindeutig zuordnen können, müssen wir auf dem Platz Lagerhäuser bauen. Ein Lagerhaus kann aber problemlos mehrere Lagerplätze umfassen. Wir können also mit der derzeitigen Adressierung der Plätze wenig Anfangen wenn wir einfach nur sagen wollen: „Lege diese Daten in einem bestimmten Lagerhaus ab.“ Mit der Adressierung der Lagerplätze könnten wir nur sagen „Lege diese Daten an einem bestimmten Lagerplatz ab“. Wir müssten uns als Programmierer also ganz viele Adressen merken, die unser Programm benutzt. Ausserdem müsste unser Programm erst einmal ermitteln welche Adressen gerade frei sind. Kurzum: Es wäre unheimlich kompliziert, wenn wir die Lagerhäuser, die wir in einem Programm für die Daten nutzen, nicht benennen würden. 

Und das ist der Punkt, wo wir bei den Variablen sind. Variablen sind im Prinzip die Namen für die Lagerhäuser. Etwas fachlicher ausgedrückt: Variablen ermöglichen es uns Speicherbereiche zu reservieren, zu benennen und in ihnen Daten abzulegen. Und das alles geschieht mit winzig kleinen Ausdrücken in unserem Programmcode, aber auch dazu kommen wir erst etwas später. 

Für Computer sind aber Daten nicht gleich Daten. Ein Computer unterscheidet die Daten in verschiedene Typen. Grundlegend sind das Zahlen und Zeichen. Je nach Programmiersprache, werden diese Grundtypen noch unterteilt. So unterteilen sich Zahlen z.B. häufig noch in ganze Zahlen und Gleitkommazahlen und diese werden dann auch noch in verschiedene Grössen mit unterschiedlichen Möglichkeiten der Genauigkeit aufgeteilt. Es gibt aber auch Programmiersprachen, bei denen sich der Programmierer nicht darum kümmern muss, welchen Datentyp er in einer Variable ablegt. 

Je nachdem welchen Typ unsere Daten haben, benötigt der Computer unterschiedlich viel Platz für sie im Arbeitsspeicher. Eine Ganzzahl mit einem Wert zwischen -32768 und 32768 ist zum Beispiel 16 Bits gross. Grössere Zahlen brauchen dann auch schonmal 32 oder 64 Bits. Ein einzelner Buchstabe kommt üblicherweise mit 8 Bits aus. 

Um bei unserem Lagerhaus-Beispiel zu bleiben: Jedes der Quadrate ist ein Bit gross. Wollen wir also einen einzelnen Buchstaben lagern, benötigen wir ein Lagerhaus das 8 Quadrate gross ist. Bei 2 Buchstaben sind es bereits 16 Bits. 

Wir fassen zusammen: Variablen sind benannte Speicherbereiche im RAM, in denen Daten gespeichert werden können. Man spricht auch davon, dass Variablen Daten (manchmal auch Werte genannt) enthalten und dass man Daten (oder Werte) in ihnen ablegt. Der Datentyp und die gespeicherte Datenmenge definieren die Grösse des Speicherbereichs, der im Arbeitsspeicher belegt wird.

Keine Kommentare:

Kommentar veröffentlichen