<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=First-Class-Objekt</id>
	<title>First-Class-Objekt - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=First-Class-Objekt"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=First-Class-Objekt&amp;action=history"/>
	<updated>2026-05-23T23:57:40Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=First-Class-Objekt&amp;diff=2120507&amp;oldid=prev</id>
		<title>imported&gt;Phzh: Form, typo</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=First-Class-Objekt&amp;diff=2120507&amp;oldid=prev"/>
		<updated>2022-11-18T09:09:02Z</updated>

		<summary type="html">&lt;p&gt;Form, typo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;First-Class-Objekt&amp;#039;&amp;#039;&amp;#039; ({{enS|first-class object}}, deutsch etwa „Objekt erster Klasse“) bezeichnet in der [[Programmierung]] von Computersystemen ein Objekt, das als Übergabeparameter oder Rückgabewert einer [[Funktion (Programmierung)|Funktion]] oder [[Prozedur (Programmierung)|Prozedur]] auftritt bzw. einer [[Variable (Programmierung)|Variablen]] zugewiesen werden kann.&amp;lt;ref&amp;gt;{{Literatur |Autor=Michael Scott |Titel=Programming Language Pragmatics |Verlag=Morgan Kaufmann Publishers |Ort=San Francisco, CA |Datum=2006 |Seiten=140}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Begriff wurde von [[Christopher Strachey]] im Kontext &amp;#039;&amp;#039;functions as first-class citizens&amp;#039;&amp;#039; Mitte der 1960er Jahre geprägt.&amp;lt;ref&amp;gt;Rod Burstall: &amp;#039;&amp;#039;Christopher Strachey—Understanding Programming Languages.&amp;#039;&amp;#039; Higher-Order and Symbolic Computation,&lt;br /&gt;
Band 13, Nr. 52, 2000.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Ein Objekt ist von erster Klasse, falls es die folgenden Bedingungen erfüllt:&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.c2.com/cgi/wiki?FirstClass |titel=First Class |hrsg=C2.com |datum=2006-01-25 |abruf=2010-10-09}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.catalysoft.com/definitions/firstClassObject.html |titel=first class object |hrsg=Catalysoft.com |abruf=2010-10-09}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* es kann in [[Variable (Programmierung)|Programmvariablen]] gespeichert werden,&lt;br /&gt;
* es kann als Parameter an Funktionen oder Prozeduren übergeben werden,&lt;br /&gt;
* es kann als Rückgabewert von Funktionen dienen,&lt;br /&gt;
* es kann zur [[Laufzeit (Informatik)|Laufzeit]] eines Programms erstellt werden und&lt;br /&gt;
* es hat eine eigene Identität (unabhängig vom Namen).&lt;br /&gt;
&lt;br /&gt;
Der Begriff Objekt muss dabei nicht im engeren Sinne als ein Objekt einer [[Objektorientierte Programmierung|objektorientierten Programmiersprache]] verstanden werden. In den meisten Programmiersprachen sind insbesondere die Objekte der elementaren [[Datentyp]]en, z.&amp;amp;nbsp;B. Ganzzahl- und Gleitkommaobjekte, immer erster Klasse.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
* In [[C (Programmiersprache)|C]] und [[C++]] sind Funktionen keine Objekte erster Klasse, da es nicht möglich ist, sie zur Laufzeit zu erzeugen – anders als z.&amp;amp;nbsp;B. [[Integer (Datentyp)|Zahlen]]. Auch [[Feld (Datentyp)|Arrays]] sind keine Objekte erster Klasse, da sie nicht als Funktionsparameter übergeben werden können.&lt;br /&gt;
* In [[Fortran]] sind [[Zeichenkette|Strings]] keine Objekte erster Klasse, da es nicht möglich ist, sie Variablen zuzuweisen.&lt;br /&gt;
* Hingegen sind Funktionen in den meisten [[Funktionale Programmierung|funktionalen Programmiersprachen]] First-Class-Objekte (bzw. [[First-Class-Funktion]]en) z.&amp;amp;nbsp;B. in [[Haskell (Programmiersprache)|Haskell]], [[Scala (Programmiersprache)|Scala]], [[Smalltalk-80 (Programmiersprache)|Smalltalk]], [[OCaml]] und verschiedenen [[LISP|Lisp-Dialekten]] wie [[Scheme]] und [[Clojure]], nicht jedoch in [[Common Lisp]].&lt;br /&gt;
* Die auf Konzepten von [[Scratch (Programmiersprache)|Scratch]] und [[Scheme]] aufbauende [[Programmiersprachen für Kinder|erziehungsorientierte]] [[Visuelle Programmierung|visuelle]] [[Programmiersprache]] [[Snap! (Programmiersprache)|Snap!]] bietet einen anschaulichen und durchgängigen Zugang zu First-Class-Objekten.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierkonzept]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Phzh</name></author>
	</entry>
</feed>