• Keine Ergebnisse gefunden

5. Fazit

5.1 Zusammenfassung

Wahrnehmungen als intentionale Akte auf, der Gegenstand, auf den sie sich beziehen, wird durch die Wahrnehmung erst geformt, er wird im Wahrnehmungsakt konstituiert. Der Begriff der Gegenstandskonstitution wird in dieser Arbeit herangezogen, um die Programmwahrnehmung als Ereignis zu begreifen, die dem Gegenstand Programm erst eine bestimmte Form gibt. Computerprogramme werden dabei in wesentlich unterschiedlichen Formen konstituiert, so unterscheidet sich beispielsweise ein auf einem Computer laufendes Programm von seiner formalen Semantik. Anhand dieser unterschiedlichen Gegenstandsformen, in denen Computerprogramme konstituiert werden, werden die Bedeutungsdimensionen des hier vorgestellten Programmbegriffs entwickelt. Ein weiteres aus der Phänomenologie übernommenes Konzept ist Epoché, die Enthaltung gegenüber Vorannahmen bezüglich des Gegenstands. Dieses Konzept wird auf Computerprogramme in zwei wesentlichen Punkten bezogen: Erstens werden vorhandene Definitionen und Vorannahmen darüber, was Computerprogramme sind, nicht in der Begriffsbestimmung verwendet. Zweitens wird keine ontologische Bestimmung der Gegenstände unternommen.

Überlegungen über ein erfahrungsunabhängiges Wesen von Programmen, z.B. die Identität zweier Programme oder die Dauer der erfahrungsunabhängigen Existenz betreffend, werden nicht vorgenommen.

Um die Zusammenhänge zwischen den einzelnen Bedeutungsdimensionen des entwickelten Programmbegriffs darzustellen wird der Begriff der Appräsentation verwendet.

Dieser bezeichnet ein mitgegenwärtig-machen von Gegenständen in Wahrnehmungsakten.

Ursprünglich wurde der Begriff von Edmund Husserl eingeführt, um die Wahrnehmung anderer Subjekte phänomenologisch zu erfassen. Alfred Schütz greift diesen Begriff auf, um die Bedeutung von Zeichen als appräsentiert zu erklären. In dieser Arbeit kennzeichnet Appräsentation den wahrgenommenen Zusammenhang zwischen in unterschiedlichen Gegenstandsformen konstituierten Computerprogrammen: Wird z.B. der Quellcode eines Programms gelesen, so kann sowohl die formale Semantik als auch eine spätere Anwendung des Programms mitgegenwärtig gemacht werden. Der Wahrnehmungsakt, der sich intentional auf den Quellcode bezieht, kann dabei einen Gegenstand mitgegenwärtig machen, auf den er sich nicht direkt bezieht. Im Beispiel ist das ausgeführte Programm bei der Wahrnehmung des Quellcodes appräsentiert, die Begriffsdimensionen des entwickelten Programmbegriffs werden bereits im Wahrnehmungsakt verknüpft.

Diese Verknüpfung besteht jedoch nicht nur auf der Ebene individueller Wahrnehmung, gleichzeitig ist die Verbindung von Quellcode mit einem laufenden Programm technisch und gesellschaftlich voraussetzungsreich. Im einfachsten Fall wird dazu mindestens eine Maschine benötigt, die das Programm ausführen kann, in der Praxis kommen Compiler, Linker, Assembler etc. dazu, die zwischen diesen unterschiedlichen Gegenstandsformen vermitteln. Um diese technische und gesellschaftliche Dimension zu erfassen greift diese Arbeit auf Bruno Latours Akteur-Netzwerk-Theorie zurück. Die Verbindung der verschiedenen Bedeutungsdimensionen wird dabei in Latours Terminologie als Verbindung heterogener Akteure, als Assoziation, verstanden.

Die phänomenologische Untersuchung der Gegenstandsformen, in denen Computerprogramme wahrgenommen werden, führt zu einer Unterscheidung von vier Begriffsdimensionen des entwickelten Programmbegriffs. Diese Dimensionen sind das Programm als räumlich-zeitlicher Gegenstand, das Programm als syntaktischer Gegenstand, das Programm als semantischer Gegenstand und das Programm als eingebetteter gegenstand.

Diese Dimensionen lassen sich jeweils weiter untergliedern, um die Präzision bei der Zuordnung einzelner Gegenstände zu erhöhen. Als fünfte Begriffsdimension kommt noch die Untersuchung der anderen Dimensionen in ihren Zusammenhängen, den Assoziationen des

Programmbegriffs, hinzu.

Programme als räumlich-zeitliche Gegenstände sind dadurch gekennzeichnet, dass ihnen im Akt der Wahrnehmung zu einer bestimmten Zeit ein bestimmter Ort zugeschrieben werden kann. Die wichtigste Gegenstandsform, die unter diese Begriffsdimension fällt, sind physische Gegenstände. Diese umfassen insbesondere alle Datenträger, die Programme in physischer Form speichern (vom Blatt Papier bis zum SSD-Speicher), und physische Systeme, auf denen Programme ausgeführt werden. Die in der Gegenstandskonstitution zugeschriebenen Eigenschaften von Raum und Zeit fallen hierbei mit den physischen Vorstellungen von Raum und Zeit zusammen, physische Programme können mit den physischen menschlichen Sinnen wahrgenommen werden. Unter die räumlich-zeitlichen Programme fallen jedoch auch virtualisierte, nicht physisch gedachte Gegenstände. Dies sind beispielsweise Dateien, deren Verortung nicht notwendigerweise physisch konstituiert wird – sondern beispielsweise im virtuellen Raum eines Dateisystems oder eines Adressraums für URLs (Uniform Resource Locators).

Programme als syntaktische Gegenstände sind sprachliche Gegenstände, die nach bestimmten (syntaktischen) Regeln aufgebaut sind. In den häufig angewendeten Formen sind dies Ketten von Zeichen – als Quellcode, der nach den syntaktischen Regeln einer höheren Programmiersprache aufgebaut ist, aber auch als Maschinencode. Andere Formen wie z.B.

Kontrollflussgrafen oder die grafischen Elemente visueller Programmiersprachen werden hier auch als syntaktische Programme verstanden – sie sind wie klassischer Quellcode nach bestimmten sprachlichen Regeln aufgebaut, auch wenn diese Regeln komplexere Formen als eindimensionale Zeichenketten zulassen. Die Zeichen werden im hier vorgestellten Begriff von ihrer Bedeutung, der Semantik, unterschieden.

Als semantische Gegenstände werden hier die Bedeutungen der syntaktischen Programme verstanden. Dabei wird zwischen zwei wesentlich unterschiedlichen Formen von Bedeutung differenziert: Die maschinelle Semantik eines Programms beschreibt ein abstraktes Maschinenverhalten. Diese kann als formale Semantik vorliegen, die mathematischen Methoden zugänglich ist. Allerdings werden auch die Bedeutungen der Programme unter Sprachspezifikationen, die keinem mathematischen Formalismus folgen, hier als maschinelle Semantik verstanden. Abstrakt ist die Semantik eines Programms, da sie ohne die Ausführung auf einer konkreten Maschine verstanden werden kann. Programme in höheren Programmiersprachen haben über diese Bedeutung hinaus häufig noch eine natürlichsprachliche Semantik, die zweite Form von Gegenstand, die hier als semantisches Programm verstanden wird. Über Schlüsselwörter, Bezeichner und Kommentare werden viele Elemente natürlicher Sprache im Quellcode eines Programms verwendet. Diese können unter anderem Erklärungen, Begründungen und Verknüpfungen zu spezifischem Wissen der Anwendungsdomäne enthalten. Da eine wichtige Eigenschaft des Quellcodes ist, dass er üblicherweise menschenlesbar und von Menschen bearbeitbar sein soll, wird die natürlichsprachliche Semantik hier als relevante Bedeutungsdimension der Erfahrung von Programmen aufgegriffen.

Die vierte Begriffsdimension umfasst alle Gegenstandskonstitutionen, in denen das Programm nur im Zusammenhang mit anderen Gegenständen begriffen, als in diese eingebettet verstanden werden kann. Eingebettete Programme umfassen dabei insbesondere alle Programme zu deren Laufzeit. Ein ausgeführtes Programm läuft auf einem komplexen System, das viele Gegenstände involviert, im einfachsten Fall liegt zumindest ein ausführender Prozessor vor. Hinzu kommen häufig flüchtige und langfristige Datenspeicher, weitere interne Komponenten von PCs oder Smartphones, Betriebssysteme und weitere Programme, Eingabe-und Ausgabegeräte, Sensoren Eingabe-und Aktoren bei eingebetteten Systemen usw. Das Programm

kann losgelöst von diesen anderen Gegenständen nicht ausgeführt werden, ohne einen Prozessor kann kein laufendes Programm wahrgenommen werden. Sie stellen daher das System dar, in das das laufende Programm eingebettet ist. Eine erweiterte Form von Einbettung umfasst die Funktionalität, Anwendungszusammenhänge und soziale, organisatorische Einbettung von Programmen. Diese Form von Einbettung beschreibt beispielsweise, wie ein Campus-Management-System in eine Universität eingebettet ist.

Insbesondere ist das Programm hierbei auch in menschliches Handeln eingebettet.

Als Assoziation werden die verbindenden Konzepte verstanden, mit denen die vorhergehenden vier Bedeutungsdimensionen untereinander verknüpft werden. Hierbei wird herausgearbeitet, dass gegenwärtige Computertechnologie insgesamt und damit insbesondere Programme ohne die Herstellung gegenseitiger Verbindung zwischen den unterschiedlichen Gegenstandsformen gar nicht möglich wäre. So verknüpfen gesellschaftlich stabilisierte Programmiersprachen syntaktische und semantische Programme miteinander, aufwändig entwickelte und aktualisierte Compiler ermöglichen die Übersetzung in Maschinensprache, um eine Ausführung möglich zu machen. Weiter treten Computer selber vermittelnd auf, da sie die syntaktisch als Maschinencode geformten Programme in konkretes Maschinenverhalten übersetzen. In Bezug auf Bruno Latours Akteur-Netzwerk-Theorie wird dargelegt, dass hier viele Schritte der Übersetzung und Vermittlung zum Zuge kommen, und dass eine wesentliche Voraussetzung für die Funktionalität von Computern und Programmen die Stabilisierung dieser Vermittlungen in der Form von Zwischengliedern ist, welche Bedeutung ohne wesentliche Transformationen weitergeben können. Diese Stabilisierung von Zwischengliedern wird als soziotechnische Bedingung für die Programmkonstitution charakterisiert.

Im Anschluss wird der entwickelte Begriff auf drei Beispiele angewandt, um aufzuzeigen, wie die Berücksichtigung der unterschiedlichen Bedeutungsdimensionen und ihrer Zusammenhänge untereinander für Analysen hilfreich sein kann. Das erste Beispiel bezieht sich auf Programmtests und die Fehlerbehandlung in Programmen. Als zwei typische Tätigkeiten in der Softwareentwicklung werden diese Handlungen beispielhaft für alle die Herstellung von Programmen betreffenden Prozesse analysiert. Das zweite Beispiel wendet den Begriff auf formale Verifikation an. Diese besondere Form der Programmanalyse eignet sich, um Fragestellungen des Vertrauens in die Technik zu eröffnen. Die dritte Begriffsanwendung greift mit Open Source und Freier Software normative Bezüge zu Computerprogrammen auf.

Ergänzt wird die Begriffsentwicklung und anschließende Anwendung durch zwei Exkurse, die den entwickelten Programmbegriff in Bezug zu weiteren Konzepten setzen. Der erste Exkurs betrachtet das Programm als Komposition, hier werden Parallelen zur Komposition musikalischer Werke untersucht. Sinnbildlich kann dabei die Partitur als syntaktisches Programm, das Orchester als ausführendes System und die Aufführung als Ausführung verstanden werden. Programme wie musikalische Werke sind in dem Sinne komponiert, dass in ihnen die Dinge zusammen wirken. Der zweite Exkurs untersucht auf Computerprogramme bezogene Zeitvorstellungen. Dabei stellt sich heraus, dass sehr unterschiedliche Konzeptionen von Zeit eine Rolle spielen. Auch der eng mit der Zeit verknüpfte Begriff der Geschwindigkeit stellt sich auf Programme und Computer bezogen als vielschichtig dar, je nachdem auf welche Gegenstandsformen von Computerprogrammen er bezogen wird.