Am Anfang des Studiums kam mir, dass eine akademische Informatik, die sich gegen den ingenieurhaften Fleckerlteppich ein wenig abschottet, überzeugendere Argumente für den Versuch hätte, dem Forschungsobjekt Computer allgemein relevante Erkenntnisse abzugewinnen. Das mag zutreffen, doch wie verhält es sich mit dem Know how? Mit meiner aktuellen Forschung, die Nahe an der Informatik als Ingenieurkunst ihren Aufenthalt hat, kam mir der Gedanke, dass wir Acht geben müssen, welche materiellen und handgreiflichen Prozesse diese Wissenschaft über dem Wasser halten.
void castZuhandenheit(void* zeug) { Smartphone* meinHandy; meinHandy = (Smartphone*) zeug; printf("Mein Handy %s kostet: %d EUR.", meinHandy->name, meinHandy->preis); }
Wer eine Anwendung in einer höheren Programmiersprache wie Java für ein Smartphone programmiert, kommt damit kaum in Berührung (ein Grund ist die isolierende Laufzeitumgebung, die heute zu weit führt). Gemeint sind die Vorgänge, die sich zwischen einer mit einem wohldefiniertem Repertoire ausgestatteten Recheneinheit und einem rätselhaften Speicher abspielen; rätselhaft, da er programmatisch nicht zu durchschauen ist, er ermöglicht zwar die Aufrechterhaltung des Anscheins einer Verarbeitung von strukturierten Daten, doch beherbergt tatsächlich eine nicht durchschaubare Sammlung von Unterscheidungen, die – und in der Informatik muss man oft leider hinzufügen – Mehrdeutigkeiten und Entfremdungen zulassen. Der Speicher ist opak.
Einen Zeiger kann man unterschiedlich nehmen. Man sagt: Er zeigt auf eine Adresse im Speicher. Was heißt das? Sein Inhalt ermöglicht es, wenn man ihn so nimmt, eine andere Stelle zu finden und zu ergreifen. Wenn man ihn so nimmt. Man muss ihn, wie jedes andere Zeug, zunächst auf eine bestimmte Weise ergreifen. Erst innerhalb der Sprache, der Programmiersprache, lässt sich das so Ergriffene als Zeiger markieren. Durch den Effekt der Markierung als Zeiger in der Sprache bekommt er die Funktion etwas herzuzeigen, das heißt zu ermöglichen, etwas anderes zu ergreifen, was bereits (als Adresse) inbegriffen ist.
Hat es eine Bedeutung, hier von greifen zu sprechen? Beim Zu-griff auf den Speicher sind wir in einer Situation, die kein Nachschauen erlaubt, aber ein Vorsehen. Wir können nur blind etwas ergreifen und annehmen, dass uns der Zeiger nicht irre führte, als er uns anwies, dort hinzugreifen, um etwas Typisches, etwas Vorgesehenes zu finden. Diese Annahme gibt unserem Griff eine Form, sie macht den Griff stabil und damit starr. Beim Zugriff halten wir durch Vorsicht das Ergriffene fest. Es wird dadurch zum Begriffenen. Durch den festen Griff kann das Ergriffene verformt werden; unbemerkt -man greift ja ins Dunkle. Wir haben uns beim Begreifen durch Vorsicht am Ergriffenen vergriffen.
Dies ist eine, wenngleich ein wenig gekünstelte Beschreibung einer inkorrekten Typumwandlung eines untypisierten Zeigers mit anschließender Dereferenzierung, die nicht durch die Syntax der Sprache als inkorrekt erkennbar ist. Mittelbar provoziert inkorrekte Typumwandlung schwer auffindbares, manchmal nicht deterministisches Verhalten, oder bleibt unentdeckt.
Zum Beispiel (mit // eingeleitete Zeichen markieren Kommentare des Programmcodes bis zum Zeilenende):
Ob die Typumwandlung korrekt oder inkorrekt ist hängt nicht nur davon ab, ob das Zeug, das man an dem Ort, auf den ‘zeug’ zeigt, ergreift, sich auch als eine Struktur bestimmten Typs begreifen lässt (hier: eine Smartphone-Struktur). Das ist immer möglich. Sondern die Korrektheit hängt daran, dass man im Begriffenen strukturierte Daten (hier: eine ganze Zahl und eine Zeichenkette) ablesen kann, die…
- … technisch in der Routine weiter verarbeitbar sind (hier: für eine Ausgabe am Bildschirm geeignet sind), denn die Routine kann nicht anders als sie auf eine vorgesehene Weise zu begreifen), und die
- … man erwartet hat, das heißt z.B: die dem Verhalten des Programms entsprechen, das man vorgesehen hat.
Mögliche Effekte bei Ausführung der obigen Routine sind also:
- Am Bildschirm erscheint:
Mein Handy Martin kostet 34 EUR.
- Am Bildschirm erscheint:
Mein Handy ³…½¬¼½ kostet EUR.
- Am Bildschirm erscheint:
Segmentation fault.
(Das ist eine Fehlermeldung, die den vom System nicht erlaubten oder nicht möglichen Zugriff auf eine Stelle im Speicher meldet.)
Über Speicher und Referenz wäre noch mehr zu sagen. Vielleicht bald.
Das finde ich sehr spannend. Ich versuche, mich dem Komplex auf eine ganz einfache Weise zu nähern.
Kann man damit beginnen, dass wir eine Sprache zur Verfügung haben, die einen Ausdruck wie “Bildung” enthält? Er bezieht sich auf etwas, leider ist dem Ausdruck nicht zu entnehmen, worauf eigentlich. Im Alltagsgebrauch appellieren wir an die Umstände und das Verständnis der Gesprächspartnerin, um “den Sinn” des Terminus herauszubringen.
Angenommen, der Sinn ist kein fluoreszierender Bereich zum Herumtappen, sondern eine geregelte Konstruktion, deren Komponenten sich eindeutig ansprechen lassen (sollten). Geht es dann um die unabsehbare “Typumwandlung” zwischen Bildung und Ausbildung?
Ich bleibe zunächst bei allgemein-technischen Bemerkungen:
* Ein untypisierter Zeiger referenziert auf undurchsichtiges Material.
* Ein typisierter Zeiger auch, jedoch verwenden wir nun eine Struktur, um das Material handhabbar zu machen und in einen Zweckzusammenhang einzubinden. Das Material als Material verschwindet.
* Man weiß aus Erfahrung, dass ein Material der gezielten (Aus-)Formung widerstehen kann.
* Wir arbeiten zunächst und zumeist mit typisierten Zeigern.
* Untypisierte Zeiger werden nur verwendet, um von den konkreten Typen zu abstrahieren. Die Abstraktion ist eine Konsequenz aus der Beobachtung, dass man Material unterschiedlich formen kann.
* Eine Typumwandlung kommt nur in Frage, wenn man annimmt, genaueres über das undurchsichtige Material zu wissen. Oder anders gesagt: wenn man ein Indiz dafür hat, dass das Material sich strikt einer Struktur gemäß begreifen und prozessieren lässt.
* Es passiert, dass die Annahme falsch oder das Indiz inkorrekt interpretiert wurde.
* Nur in solchen Fällen – also bei inkorrekten Typumwandlungen – werden wir auf die Tatsachen hingewiesen, durch die diese allgemein-technischen Bemerkungen entstanden sind. Bei konsequenter Verwendung von typisierten Zeigern bzw. noch mehr bei der automatischen Verschaltung von Zeiger und referenziertem Material sind solche Erschütterungen nicht mehr möglich.
* Trotzdem sind untypisierte Zeiger nicht das non plus ultra. Sie sind kein Zustand, den man konsequent im gesamten System aufrecht erhalten könnte – bzw. eher wollte. Sobald es um einen Zweckzusammenhang und eine konkrete Aufgabe geht, wird es irgendwann unumgänglich, strukturelle Annahmen über das Material zu treffen – und einzuschreiben.
* Es kann Aufgabenbereiche geben, in denen sich untypisierte Zeiger besonders eignen. Diese Aufgaben können mit Routinen gelöst werden, von denen manche Eingangsparameter untypisierte Zeiger sind, manche nicht.
In Anlehnung an den Beitrag von Peter Gaitsch ( http://diepresse.com/home/meinung/gastkommentar/519895/Was-heisst-freie-Bildung-fuer-alle ) und an zubin’s Kommentar zu Bildung und Ausbildung, lassen sich versuchsweise zwei radikalisierte Perspektiven unterscheiden, die mit Prozess und Material abgekürzt sind:
* Prozess: Die akademischen Institutionen stellen Forderungen an die Personen, mit denen sie arbeiten. Denen werden absehbare Eigenschaften und ein kompatibles Verhalten abverlangt; beides soll im Laufe der Zeit entwickelt und in die Person eingeschrieben werden. –> “Wir produzieren 1A-Absolventinnen”.
* Material: Man erfährt von Fällen in der Personen unabhängig von ihren individuellen Eigenheiten in Strukturen gepresst werden, die ihnen nicht entsprechen. “herrschende und ausgrenzende Strukturen” ( http://www.basisgruppen.at/#emanzipatorisch ) vergreifen sich an ihnen. Eine radikalisierte Forderung wäre: Jede Person darf sich ohne zusätzliche Vorkehrungen ihre eigenen Prozesse in der akademischen Institution bestimmen. Die Prozesse dürften praktisch nur mit untypisierten Zeigern arbeiten. Das wäre wie Routinen ohne Routine, oder Mühlen, die kein Mehl mahlen.
Dazwischen gibt es einen Verhandlungsspielraum, ein bisschen ein Tauziehen. Wenn man es so darstellt, dann sieht man, dass es sich um ein asymmetrisches Verhältnis handelt, solange das Rad läuft. Wenn aber vermehrt Sand im Getriebe auftritt, nicht Öl (wie in vielen Toiletten an der Uni Wien gefordert wird), dann kann es zu einem Totalstopp kommen. Segmentation fault. Das ist keine Kunst.
Untypisierte Zeiger enthalten also das Risiko, zwischen zwei oder mehreren in Aussicht genommenen Material-Formungen “schiefgehen” zu können. Nur im Rahmen dieses Risikos, das nicht für das Gesamtsystem eingegangen werden kann, entsteht ein Spielraum alternativer Perspektiven, der die Möglichkeit eines punktuellen Systemversagens einschließt. Wenn man das verhindern will, muss man Automatismen definieren, woimit Flexibilität verlorengeht.
Personen wären, nach Andreas’ Vorschlag, untypisierte Zeiger und damit eine Abstraktion aus unentschiedenen Möglichkeiten, sich in der Bildungsinstitution zu verorten. Wenn ihr Unternehmen gelingt, zeigen sie, dass im Material der Absolventinnen-Produktion unterschiedliche und unabsehbare Wege offenstehen. Das blanke Fehlen einer Typisierung bedeutet allerdings, dass sich die Institution erübrigt. Nicht-technisch gesprochen, dass es keinen Sinn macht, von Bildung zu sprechen, wenn alle Beteiligten sich ihre eigenen Orientierungen, Schlupfwinkel und Zieldefinitionen suchen.
Oder so? https://www.youtube.com/watch?v=u8-4n9yxZ_s&feature=related