Komprehension: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{In Bearbeitung}}
[[Kategorie: Programmierung]]
{{Qualität
|correctness        = 2
|extent              =2
|numberOfReferences  = 2
|qualityOfReferences = 5
|conformance        = 5
}}
 
Das Zusammenfassen von Objekten zu einer Einheit wird [[Komprehesion]] genannt.
Komprehension ist ein fundamentales Prinzip der Mathematik sowie der Informatik.
 
In der [[Mengenlehre]] werden [[Objekt]]e mit Hilfe der [[Elementbeziehung]] zu [[Menge]]n und [[Klasse]]n zusammengefasst.
Es ist möglich, mathematische Theorien '''ausschließlich''' mit Hilfe von Klassen und der Elementbeziehung
zu formalisieren ({{zB}} mittels der klassenlogischen Sprache LЄ von Glubrecht, Oberschelp und 
Todt<ref name="Glubrecht, Oberschelp, Todt (1983)">{{Quelle|Glubrecht, Oberschelp, Todt (1983)}}</ref>). 
Purkert und Ilgauds betonen, dass viele Mathematiker sogar der Meinung seien, dass die Mengenlehre das Fundament
für die gesamte Mathematik bildet:
''Die Tatsache, daß alle mathematischen Begriff auf mengentheoretische Begriffe zurückgeführt werden können, hat einige Autoren sogar zu der Behauptung veranlaßt, die gesamte Mathematik sei letztendlich mit der Mengenlehre identisch.''<ref>{{Quelle|Purkert, Ilgauds (1987)}}, S. 9</ref>
 
Aber auch in der [[Programmierung]] ist das Zusammenfassen von Objekten zu komplexeren Objekte von zentraler Bedeutung:
Jede höhere Programmiersprache stellt komplexe [[Datenstruktur]]en – wie Tupeln, Listen, Bäumen etc. – bereit,
um Daten verwalten zu können.<ref name="Sebesta (2016)">{{Quelle|Sebesta (2016)}}</ref> 
 
Um Komprehension formalisieren zu können, benötigt man drei Begriffe:
 
* '''Container''': Das sind Objekte, die Objekte als Elemente enthalten können.
* '''Individuen''': Das sind Objekte, die in Objekten als Elemente enthalten sein können.
* '''Elementbeziehung''': Diese setzt Individuen und Container in Beziehung zueinander. 
 
Der Begriff '''Container''' wurde – in Ermangelung eines gebräuchlicheren Terminus – der [[Container (Informatik)|C++-Standardbibliothek STL]] entlehnt.
Der Begriff '''Individuum''' ist etwas allgemeiner als der von Cantor geprägte Begriff '''Element'''<ref>{{Quelle|Cantor (1895)}}</ref>.
Er geht auf Quine zurück und wird von Glubrecht, Oberschelp, Todt bei der Definition diverser Klassenlogiken verwendet.<ref>{{Quelle|Quine (1963)}}</ref><ref name="Glubrecht, Oberschelp, Todt (1983)"/>. 
 
In der Mathematik heißt ein Container heute üblicherweise [[Menge]] oder [[Klasse]], aber es finden sich – insbesondere in alten Schriften – diverse weitere
Bezeichnungen: '''Mannigfaltigkeit''', '''Ingebriff''', '''Gesamtheit''', '''Umfang''' oder '''System'''.
Für die Gesamtheit aller Individuen finden sich in der Literatur weitere Begriffe, wie {{zB}} '''Individuenbereich''', '''Dingbereich''' oder '''Tägermenge'''.
 
== Definition (Duden – Das Fremdwörterbuch (2001)<ref>{{Quelle|Duden Band 5 (2001)}}</ref>==
''(Philos.) Zusammenfassung, Vereinigung von Mannigfaltigkeiten zu einer Einheit''
 
==Definitionen (Kowarschick (GlossarWiki))==
[[Datei:Container.png|mini|300px|Klassifikation der Objekte eines Universums]]
 
Es sei $U$ ein [[Universum]] (''Universe of Discourse'') einer mathematischen Theorie oder eines informationstechnischen Systems.
Die Mitglieder von $U$ heißen '''[[Objekt]]e'''.
 
Unter [[Komprehension]] versteht man die Zusammenfassung von beliebig vielen Objekten aus $U$ zu ''einem'' Objekt  aus $U$
mit Hilfe einer so genannten [[Element]]beziehung. Ein Objekt, das Objekte als Elemente enthält, wird '''Container''' genannt.
 
Die Objekte des Universums $U$ können hinsichtlich einer gegebenen Elementbeziehung $\epsilon$ folgendermaßen klassifiziert werden:
 
* Ein '''$\epsilon$-Container''' ist ein Objekt, das Elemente (gemäß der gegebenen Beziehung $\epsilon$) enhalten kann.
* Ein '''leerer $\epsilon$-Container''' ist ein Objekt, dass zwar als $\epsilon$-Container klassifiziert wird, aber zu keinem Zeitpunkt ein Element enhalten kann.
* Ein '''$\epsilon$-Individuum''' ist ein Objekt, das Element eines $\epsilon$-Containers sein kann.
* Ein Objekt, das sowohl $\epsilon$-Individuum als auch $\epsilon$-Container ist, heißt '''$\epsilon$-Container-Individuum'''.
* Ein $\epsilon$-Container, der kein $\epsilon$-Individuum ist, heißt '''purer $\epsilon$-Container'''.
* Ein $\epsilon$-Individuum, das kein $\epsilon$-Container ist, heißt '''$\epsilon$-Urelement'''.
* Ein Objekt das weder ein $\epsilon$-Individuum noch ein $\epsilon$-Container ist, heißt '''$\epsilon$-unerreichbar'''.
 
Wenn klar ist, welche Elementbeziehung gemeint ist, wird  {{iAllg}} der Zusatz „$\epsilon$-“ bei den obigen Begriffen nicht geschrieben.
Allerdings muss man diesen Zusatz manchmal explizit angeben, da es in einer mathematischen Theorie oder einem informationstechnischem System
durchaus mehrere Elementbeziehungen geben kann und jedes Objekte des Universums in jeder Elementebeziehung eine andere Rolle spielen kann.
 
==Unterschied zwischen mathematischen und informationstechnischen Theorien==
 
Mathematischen Theorien liegt meist ein Bündel von statischen Welten zu Grunde, die irgendwelche gemeinsame Eigenschaften haben.
Diese Welten werden durch sogenannte [[Modell (Mathematik)|Modelle]] beschrieben, die gemeinsamen Eigenschaften durch sogenannte [[Axiom]]e,
deren Gültigkeit in allen betrachteten Welten als gegeben angesehen wird.<ref>vgl. {{Quelle|Güntzer, Schmidt, Kempf, Möller (1989)}}</ref>
Zeitliche Aspekte werden in mathematischen Theorien eher selten betrachtet.
(Es gibt allerdings Ausnahmen, wie {{zB}} die [[Temporallogik]] oder die [[Turingmaschine]].)
 
Informationstechnische Systeme leben dagegen vom Zeitbegriff. Ein [[Programm (Informatik)|Programm]] befindet sich zum Startzeitpunkt in einem
bestimmten Zustand und führt nacheinander bestimmte [[Anweisung]]en aus, die das Programm jeweils in einen neuen Zustand überführen. (Die Turingmaschine
beschreibt dieses Verhalten mit mathematischen Mitteln.)
 
Für mathematische Theorien reicht es daher üblicherweise, eine Elementbeziehung durch [[Relation]]en auf den Universen der
betrachteten Welten zu interpretieren. Um den gegebenen Axiomen zu genügen, müssen die Elementrelationen auf den zugehörigen
Universen jeweils bestimmte Bedingungen erfüllen.
Für informationstechnische Systeme muss es dagegen möglich sein, im Laufe der Zeit Container zu erzeugen,
zu durchsuchen, zu modifizieren und zu löschen, da hier die Welten nicht gleichzeitig, sondern nacheinander betrachtet werden. Man benötigt
für die Handhabung von Containern also zusätzlich sogenannte [[CRUD]]-Befehle (create, read, update, delete).
 
==Mengenlehre==
{{TBD}}
[[Datei:Container_klassenlogik.png|mini|300px|Klassenlogik]]
[[Datei:Container_klassenlogik_rein.png|mini|300px|reine Klassenlogik]]
[[Datei:Container_paradoxa.png|mini|300px|Mengenuniversum ohne Modell]]
Die wichtigsten Container in mathematischen Theorien sind: {{Menge}}n, {{Klasse}}n, [[geordnetes Paar|geordnete Paare]], [[Tupel]].
 
Urelemente: Man geht von einem Bereich von Objekten mit einer Element-Beziehung $\epsilon$ aus. Es wird ein (eventuell leerer) Teilbereich aller Objekte ausgezeichnet. Die ihm angehörenden Objekte heißen Urelemente. Für alle Urelemente $a$ gilt, es gibt kein $d$ mit $d \,\epsilon\, a$  <ref name="Felscher (1978)">{{Quelle|Felscher (1978)}}</ref>
 
Üblicherweise ist ein leerer Container ein Container-Indivduum. Es sind aber auch Situationen denkbar, in denen es sich
um einen puren Container handelt.
 
In mathematischen Theorien gibt es meist genau einen leeren Container (die leere Menge),
in informationstechnischen Systemen gibt es dagegen meist beliebig viele leere Container
(Javascript: Mit <code>{}</code> – oder genauer <code>Object.create(null)</code> – wird jedesmal ein neues leeres Object erstellt).
 
Geordnete Paare sind per Definitionem Container, da sie genau zwei Objekte als Elemente
enthalten, die so genannten Paarelemente. Auch die Verallgemeinerung der geordneten Paare, die [[Tupel]] sind Container.
Ein $n$-Tupel enthält genau $n$ Elemente – die so genannten Tupelelemente – in einer bestimmten Reihenfolge.
 
In der Mengenlehre gibt es diverse weitere Arten von Objekten, die entweder als Container
und/oder als Elemente auftreten können:
 
* [[Klassen]] sind Container: Sie können Elemente enthalten (und zwar Urelemente und Mengen).
* [[Urelemente]] können in Klassen als Elemente enthalten sein, können selbst aber keine Elemente enthalten.
* [[Mengen]] sind spezielle Klassen (können also Elemente enthalten); sie können auch in Klassen als Elemente enthalten sein.
* [[Unmengen]] sind spezielle Klassen (können also Elemente enthalten); sie sind aber so umfangreich, dass sie nicht in irgendwelchen Klassen als Elemente enthalten sein können.
 
Typische Urelemente sind Zahlen, Zeichenketten, Boolesche Werte etc.
Üblicherweise verzichtet man in der Mathematik heutzutage auf die Definition von speziellen Urelementen.
Es reicht aus, wenn man die leere Menge, {{dh}} die einzige Klasse, die keine Elemente enthält, als Urelement zur Verfügung hat.
Alle andere Urelemente können dann durch spezielle Klassen ({{dh}} Container) repräsentiert werden
(die Zahl „Null“ beispielsweise durch die leere Menge $\{\}$, die Zahl „Eins“ durch die einelementige Menge $\{\{\}\}$ etc.).
Es gibt aber auch Ausnahmen, wie {{zB}} die Sprache [[LISP]], in der – vor allem aus Performanz-Gründen – nicht
auf Urelemente verzichtet wird. In LISP werden die Urelemente „Atome“ genannt.<ref Name="McCarthy (1960)">{{Quelle|McCarthy (1960)}}</ref>
 
Auch bei Paaren und deren Verallgemeinerung, den [[Tupel]]n handelt es sich um Container,
die Elemente enthalten, die so genannten Paar- oder Tupelelemente. Zwischen Klassen und Klassenpaaren gibt es also einen wichtigen Unterschied:
Unmengen können keine Elemente von irgendwelchen  Klassen sein, wohl aber (Paar-)Elemente von Klassenpaaren.
Das heißt, mit Hilfe Klassenpaaren (und Klassentupeln) kann man auch Unmengen zu größeren Einheiten zusammenfassen.
Mit Mengenpaaren geht dies nicht.
 
Allerdings gibt es nicht nur Mengen- und Klassenpaare.
Ein geordnetes Paar kann  –  in speziellen formalen Systemen – an Stelle von Klassen und Urelementen auch andere Arten von Elementen enthalten.
[[Gottlob Frege]] erlaubt beispielsweise „Gegenstände“, „Funktionen“ und „Werthverläufe“ als Elemente.<ref name="Frege (1893)">{{Quelle|Frege (1893)}}</ref> [[John von Neumann]]
erlaubt „Argumente“ (und damit insbesondere auch spezielle [[Funktion]]en, die sogenannten „Argument-Funktionen“)<ref name="Neumann (1925)">{{Quelle|Neumann (1925)}}</ref> und in [[LISP]] sind nur Atome (Urelemente) und Paare als Elemente erlaubt.<ref Name="McCarthy (1960)"/>
 
==Quellen==
 
<references/>
 
==Siehe auch==
 
* [[Wikipedia:Elementzeichen]]
 
[[Kategorie:Mathematik]]
[[Kategorie:Informatik]]

Version vom 25. April 2019, 14:17 Uhr