Ich hatte eingangs erwähnt, dass Rechensysteme sich als eine Schichtenfolge von Maschinen darstellen.
Nun diese Schichtenstruktur, die dieser Folge zugrunde liegt, die möchte ich im
nachfolgenden kurz vorstellen. Und in dem Zusammenhang möchte ich insbesondere den Begriff der
semantischen Lücke erläutern. Das ist der Abstand sozusagen zwischen der obersten Ebene in dieser
Schichtenstruktur und der tiefsten Ebene in dieser Schichtenstruktur. Ich möchte diese semantische
Lücke konkret am Beispiel einer Fallstudie darstellen und sie dann später im weiteren
Verlauf der Vorlösungsstunde noch mal konzeptionell verdeutlichen. Nun die semantische Lücke ist die
Verschiedenheit zwischen der Quell- und der Zielsprache. Diese beiden Sprachen, die hier
gemein sind, sind letztendlich für uns die Programmiersprachen, in dem wir bestimmte
Probleme lösen, zum Ausdruck gebracht haben, Programme entwickelt haben, die nachher auf
einer entsprechenden Zielmaschine, eine Zielhardware, denn zur Ausführung gebracht werden sollen.
Und generell sagt man hier als Faustregel, dass die Quellsprache ein höheres Abstraktionsniveau
einnimmt und die Zielsprache eben ein niedrigeres Abstraktionsniveau besitzt. Die Quellsprache
ist typischerweise eine höhere Programmiersprache, also etwa wie C. Und die Zielsprache sind
dann letztendlich die Bitstrings, die Bitfolgen, die die einzelnen Maschinenbefehle repräsentieren,
die konkret von dem realen Prozessor zur Ausführung gebracht werden. Nur normalerweise würde man
jetzt die Abbildung von der Quell hin zur Zielsprache sich immer so vorstellen müssen,
dass das maschinell, dass das automatisch geschieht. Aber es muss nicht so sein. Man
kann sehr wohl ein Programm auf einem Blatt Papier formulieren in einer Quellsprache und
dann einfach händisch diese Umsetzung von der Quellebene hin zur Zielebene durchführen,
bis man dann selbst handkodiert entsprechend die Bitfolgen für den einzelnen Prozessor
präsentiert hat. Das sieht heute natürlich nicht mehr so aus. Früher war das durchaus so,
bevor es entsprechende Übersetzerprogramme gegeben hat, die in der Lage gewesen sind,
diese Umwandlung von der Quell zur Zielebene entsprechend durchzuführen. Der Begriff
semantische Lücke kommt aus der Rechnerarchitektur. Das ist dann wirklich der Unterschied zwischen den
komplexen Operationen, die eben auf der Hochsprachen-Ebene typischerweise definiert sind,
die Konstrukte, die dort existieren, im Vergleich zu den sehr einfachen Operationen, die uns denn
der Befehlssatz eines Rechners auf der untersten Ebene bietet. Und so war es dann die Idee letztendlich,
oder man muss schon sagen, der Versuch der Rechnerarchitekten, eben diese untere Ebene,
den Befehlssatz der unteren Ebene komplexer werden zu lassen, dass es sich funktional mehr
den Hochsprachen-Konstrukten entsprechend zuwendet, um damit letztendlich diese Lücke zu
verkleinern. Das führte dann zu den sogenannten Complex Instruction Set Computers, also den CISCs
im Vergleich zu den sogenannten Reduced Instruction Set Computern, die heute eben auch üblich sind,
die sogenannten RISC Prozessoren, wie so ein Power PC etwa, oder so ein ARM Prozessor. Der x86 oder
die x86 Architektur, die Familie der Prozessoren, sind typische Beispiele von solchen CISCs, wo man
versucht hat, diese semantische Lücke durch eine entsprechende komplexen Befehlssatz zu verkleinern.
Aber wir werden sehen, dass damit diese semantische Lücke noch längst nicht vom Tisch ist. Es geht
immer um eine Kluft, und zwar zwischen den sogenannten gedanklich gemeinten und dem
sprachlich geäußerten. So kann man sich das eben ein bisschen abstrakter eben auch vorstellen,
wenn man diese beiden Ebenen Quellzielsprache betrachtet. Nun, ich möchte das mal verdeutlichen,
worum es hier eigentlich wirklich geht. Wir nehmen mal ein Beispiel aus der Mathematik. Es geht um die
Matrizenmultiplikation. Der Problemraum hier, das heißt, was wir eigentlich für ein Problem haben,
was wir lösen wollen, kommt aus der Mathematik. Wie wir das dann aber tun wollen, und zwar
automatisch maschinell unterstützt, sind dann nachher Verfahren, die aus der Informatik kommen.
Die sind dann Bestandteil des sogenannten Lösungsraums. Und zwischen diesen beiden Bereichen
gibt es eben genau die semantische Lücke. Wir würden sagen, das gedanklich gemeinte hier ist
ein Verfahren aus der linearen Algebra zur Matrizenmultiplikation. Und das sprachlich
geäußerte findet eben auf verschiedenen Ebenen der Abstraktion im Lösungsraum der Informatik statt.
Wir werden sehen, dass es eben nicht nur ein Weg ist, um praktisch von der Mathematik hin zu dem
ausführbaren Programm zu kommen, sondern wir werden verschiedene Ebenen kennenlernen, die
Presenters
Zugänglich über
Offener Zugang
Dauer
00:27:17 Min
Aufnahmedatum
2020-05-09
Hochgeladen am
2020-05-10 02:16:05
Sprache
de-DE