In dieser Lektion werdet ihr lernen, was eine Sprache ist (Ja, es ist so einfach wie ihr denkt!) und wo dieses Konzept in der Informatik Anwendung findet (Nein, es ist nicht so einfach wie ihr denkt!)
Lies das Fachkonzept: Sprache und beantworte die folgenden Fragen:
P2 5 8 15 15 15 8 15 15 15 8 8 8 15 8 8 8 8 8 12 12 12 12 12 12 5 12 5 12 12 12 12 12 12 12 5 12 5 12 12 12 12 12 12
Das Alphabet von PGM besteht aus dem Buchstaben "P", den Zahlen 0 bis 9, dem Leerzeichen und dem Zeilenumbruch. Jedes gültige Bild ist ein eigenes Wort der Sprache PGM!
Einige Regeln der Sprache PGM:
X: 1 T: Brother John C: Traditional L: 1/4 K: C CDEC|CDEC|EFGz|\ % continues w: Are you slee-ping, Are you slee-ping, Bro-ther John!\ % continues EFGz| w: Bro-ther John! G/ A/ G/ F/ EC|G/ A/ G/ F/ EC|\ % continues w: Mor-ning bells are rin-ging, Mor-ning bells are rin-ging,\ FB,Ez|FB,Ez|] w: ding ding dong, ding ding dong!
Dieser Code ergibt das folgende Notenblatt:
Weitere Informationen kannst du auf The ABC Plus Project finden.
Beim Biber-Song-Contest haben vier Biber versucht, wie Bunny Banana zu singen. Aber nur einer war erfolgreich. Entscheide, welcher Biber die Bunny-Banana-Sprache beherrscht und korrekte Wörter dieser Sprache gebildet hat.
si sip di si su dup di su
da da dap di da da yeah
nu nu nup di nu nu di di dip di di
sa sa sap di sa sa lu lu lup di lu lu yeah
Informatik wird oft als Wissenschaft von der automatisierten Verarbeitung von Informationen bezeichnet. Informationen müssen dabei zunächst in Form von Daten formal dargestellt werden, bevor sie verarbeitet werden können. Daten können dann mit Hilfe von Computerprogrammen zu neuen Daten verarbeitet werden oder auch zu anderen Computern transportiert werden. Wenn die hierdurch erzeugten bzw. transportierten Daten gedeutet werden, entsteht neue Information. Sprachen spielen bei diesem Vorgehen eine zentrale Rolle. Dies soll am folgenden Beispiel verdeutlicht werden. Die Bildinformation muss zunächst in einer bestimmten Form dargestellt werden. Im vorliegenden Beispiel wird hierzu die Sprache PGM (siehe oben) benutzt. Diese Sprache erlaubt es, Grauwerte von Pixeln mit Hilfe von Zahlen zu beschreiben. Die Bilddaten (in einer Datei) können jetzt mit einem Programm bearbeitet werden.
void invertPGM(String inputFile, String outputFile) { String[] input = loadStrings(inputFile); String[] output = new String[input.length]; output[0] = input[0]; // PGM format output[1] = input[1]; // rows and columns output[2] = input[2]; // max. grayscale value String[] rowsAndColumns = split(input[1], ' '); int numColumns = parseInt(rowsAndColumns[0]); int numRows = parseInt(rowsAndColumns[1]); int maxGrayScale = parseInt(input[2]); for (int row = 0; row < numRows; row++) { String[] inputLine = splitTokens(input[row + 3]); printArray(inputLine); String[] outputLine = new String[inputLine.length]; for (int column = 0; column < numColumns; column++) { int inverted = maxGrayScale - parseInt(inputLine[column]); outputLine[column] = "" + inverted; } output[row + 3] = join(outputLine, " "); } saveStrings(outputFile, output); } void setup() { invertPGM("haus.pgm", "haus-invertiert.pgm"); }
Die Java-Methode invertPGM()
aus dem Processing-Sketch oben liest die Werte für die Graustufen aus einer Datei, invertiert sie durch eine Subtraktion und schreibt die Werte in eine neue Datei. Diese neuen Daten lassen sich jetzt wieder als Bild interpretieren:
P2 5 8 15 0 0 7 0 0 0 7 7 7 0 7 7 7 7 7 3 3 3 3 3 3 10 3 10 3 3 3 3 3 3 3 10 3 10 3 3 3 3 3 3
Im Beispiel kommen also zwei Sprachen zum Einsatz. Die Sprache PGM wird zur Darstellung von Information benutzt, die Sprache Java zur Verarbeitung von Daten. Es gibt eine Vielzahl von Sprachen zur Darstellung von Information, die eine Weiterverarbeitung mit dem Computer ermöglichen:
Es gibt ebenso eine Vielzahl von Sprachen zur Beschreibung der Verarbeitung von Daten. Zu diesen Sprachen zählen alle Programmiersprachen: Java, C, SQL, … Computersprachen haben viele Gemeinsamkeiten mit natürlichen Sprachen.
Es gibt aber auch wesentliche Unterschiede: Computersprachen müssen eindeutig und präzise sein. Bei der Verwendung von Computersprachen führen bereits kleinste Ungenauigkeiten dazu, dass der Computer den mit der Sprache beschriebenen Sachverhalt nicht mehr "versteht". Das hast du sicher schon beim Programmieren des öfteren erlebt. Bei natürlichen Sprachen kann man sich meist darauf verlassen, dass bei sprachlichen Ungenauigkeiten der Kommunikationspartner schon versteht, was man meint. Allerdings kommt es dabei auch oft zu Missverständnissen. Solche Missverständnisse gilt es bei Computersprachen durch Präzision und Eindeutigkeit zu vermeiden.