|
|
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]]
| |