Sprachkonzepte Preprozessor Operatoren Kontrollstrukturen Typen OOP Bibliotheken |
Daten, Werte, InformationenWer sich an eine Programmiersprache heranwagt, tut gut zu wissen, womit er arbeitet. Wie in jedem Prozess gibt es beim Programmieren Rohmaterial, das mit geeigneten Werkzeugen zu einem gewünschten Ergebnis verarbeitet wird. Das Rohmaterial in der Informatik ist durch die Begriffe Bedeutung der BegriffeElektrischer Strom wurde lange Zeit als reinen Energielieferanten betrachtet: Er wird durch Generatoren erzeugt, durch Leitungen transportiert und in Widerständen wie Glühbirnen verbraucht. Dieses Konstrukt wird zusammengefasst unter dem Namen In einem Prozessor eines modernen Computers werden anhand der Stromstärke zwei Zustände definiert, bei denen entweder mehr oder weniger Strom als eine bestimmte Schwelle fliesst. Diese beiden Zustände Ein Prozessor weiss jedoch nicht, wie man die Daten zu handhaben hat. Ob das Datum 11001000 nun die positive Zahl 200 representiert oder die negative Zahl -56, hat für einen Prozessor keine Relevanz, er arbeitet stets mit reinen Daten. Zu Zeiten des Assemblers war es somit der Programmierer, der den Prozessor anweisen musste, welche Manipulationen er ausführen soll, damit die Daten korrekt verarbeitet werden (dazumal nannte man dies EDV = elektronische Datenverarbeitung). Bei C und C++ übernimmt diese Arbeit der Compiler, allerdings muss der Programmierer dem Compiler nebst den Daten mitteilen, wie sie strukturell zu interpretieren sind. Dies nennt man einen Der Code für einen Wert wird somit von einem Compiler aufgrund seines Typs je nachdem anders gesetzt. Da in C und C++ sämtliche Werte einen Typ zugewiesen bekommen, kann der Programmierer sich auf die Werte konzentrieren und muss sich keine Gedanken über deren Speicherung als Daten machen. Es obliegt jedoch nach wie vor dem Programmierer, die Werte korrekt miteinander in Verbindung zu setzen, ihnen eine Bedeutung zu geben. Die Zahl 200 könnte die Anzahl Elemente in einem Array darstellen oder die Zählvariable einer Schleife. Ein Wert mit einer Bedeutung nennt man eine DatenVon Daten spricht man in der modernen Informatik hauptsächlich, wenn es darum geht, Daten einzulesen oder auszugeben. Intuitiv hat sich in der Programmierung über die Jahre ein Verständnis entwickelt, dass Daten einen Fluss beschreiben, von der Eingabe über die Verarbeitung bis zur Ausgabe. Genauer gesagt bedeutet dies, dass Daten in einzelnen, hintereinandergehängten Modulen jeweils eingelesen werden, dann aufgrund dieser Daten ein bestimmter Code ausgeführt wird und danach (neue) Ergebnis-Daten ausgegeben werden, welche von dem darauffolgenden Modul wieder eingelesen werden, und so weiter und so fort. Jede Software liest auf die eine oder andere Art Daten ein und gibt sie genauso auf die eine oder andere Art wieder aus. Dies kann beispielsweise mittels dem Auslesen und Schreiben einer Datei passieren, durch Abfrage der Tastatur oder auch durch Kommunikation mit dem Netzwerk. Ein Betriebssystem hat unter anderem die Aufgabe, für all diese Arten Ein- und Ausgabeschnittstellen bereitzustellen, was als WerteSobald die Struktur von Daten bekannt ist, kann man mit ihnen arbeiten, mit den Werten rechnen. Hier erschliesst sich die wahre Bedeutung des Wortes Computer: To compute = rechnen. Ein Computer ist gemacht, um mathematische Berechnungen auszuführen. In C und C++ wird die Bearbeitung von Werten mittels Durch Hintereinanderreihung oder Verschachtelung von Operatoren können beliebig komplexe Programmteile entstehen. Ein solch komplexes Gebilde bildet somit eine funktionale Einheit, die aus Eingabeparametern eine Ausgabe erzeugt, die das gewünschtes Ergebnis representiert. Ein solches Konstrukt wird InformationenBetrachtet man einen Computer nur als Werkzeug, das mathematische Funktionen ausführen kann, so würde man nicht nur sehr schnell die Lust verlieren, sondern auch bald an Grenzen stossen. Gibt man mathematischen Werten jedoch eine Bedeutung, so stehen unbegrenzte Möglichkeiten offen. Die Art und Weise, wie man Werte miteinander verknüpft, wie Funktionen zusammenspielen und was dabei als Ausgabe entsteht, entscheidet darüber, ob man beispielsweise ein Analyseprogramm geschrieben hat, ein Computerspiel oder eine Robotersteuerung. Aufgrund der Bedeutung eines Wertes kann der Programmablauf gesteuert werden, was hier allgemein als Umgang mit Daten, Werten und InformationenDaten können nur durch Wissen ihres Typs und ihrer Bedeutung in Werte und Informationen umgewandelt werden. Sobald man weiss, wie die Daten gegliedert sind, in welchem Format sie gespeichert sind (In-Formation), können Informationen ermittelt werden. Sehr häufig weiss man dies bei Daten jedoch nicht, somit könnte eine Datei Text enthalten, sie könnte aber auch ein Bild enthalten, vielleicht beschreibt die Datei sogar ein ausführbares Programm. Das Problem, dass man im Voraus nicht weiss, um was für Daten es sich handelt, beschäftigt seit jeher die Entwickler. Es gibt eine unüberblickbare Menge an Datenformaten und innerhalb eines Formates oftmals sehr viele Versionen. Um sich in der Vielzahl der Datenspeicherung zurechtzufinden, wurden mit der Zeit einige Formate standartisiert. Das wichtigste Beispiel für einen Programmierer ist ASCII (American Standard Code for Information Interchange). ASCII wird oftmals als einfaches Text-Format gehalten, ist jedoch bis heute das einzige zum grössten Teil zuverlässige standartisierte Format. Vereinfacht gesagt ordnet ASCII jedem möglichen Zustand eines Bytes einen Buchstaben zu (genaueres kann man hier nachlesen). Erst durch die Definition einer solchen Interpretation eines Datums kann mit Werten gearbeitet werden. Was genau ein Wert für eine Bedeutung hat, ist dem Programmierer überlassen. Dies bedeutet zum einen eine totale Freiheit, zum anderen jedoch wird dem Programmierer die Verantwortung übertragen, mit den Informationen so umzugehen, wie es gewünscht ist. Es gibt hierfür in C und C++ eine grosse Zahl an vorgefertigten Funktionen (in sogenannten Bibliotheken), welche alle einen ganz bestimmten Zweck erfüllen. Der Programmierer muss nun die passenden Funktionen finden und sie zu einem eigenen Programm zusammensetzen.
|