Wert (Programmierung): Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Definition (für nicht-objektorientierte [[Programmierung|Programmier-Paradigmen]])=
{{Qualität
Ein '''Wert''' ist (im Sinne der meisten [[Programmierung|Programmier-Paradigmen]]) ein [[Daten|Datum]] (Einzahl von Daten), das folgende Merkmale aufweist:
|correctness        = 5
|extent              = 4
|numberOfReferences  = 2
|qualityOfReferences = 3
|conformance        = 5
}}
==Definition (für nicht-objektorientierte [[Programmierung|Programmierparadigmen]])==
Ein '''Wert''' ist (im Sinne der meisten [[Programmierung|Programmierparadigmen]]) ein [[Daten|Datum]] (Einzahl von Daten), das folgende Merkmale aufweist:
   
   
*Ein Wert existiert dauerhaft, d.h., er wird weder erzeugt, noch kann er zerstört oder verändert werden.
*Ein Wert existiert dauerhaft, d.h., er wird weder erzeugt, noch kann er zerstört oder verändert werden.
Zeile 10: Zeile 17:
*Für jeden Wert kann es eine Menge von [[Anfragemethode]]n geben, mit deren Hilfe spezielle Eigenschaften des Wertes ermittelt werden können.
*Für jeden Wert kann es eine Menge von [[Anfragemethode]]n geben, mit deren Hilfe spezielle Eigenschaften des Wertes ermittelt werden können.


=Definition (für [[Objektorientierte Programmierung|objektorientierten Programmier-Paradigmen]])=
==Definition (für [[Objektorientierte Programmierung|objektorientierten Programmierparadigmen]])==
Ein '''Wert''' ist im Sinne der [[Objektorientierte Programmierung|Objektorientierten Programmierung]] ein [[Objekt]],  
Ein '''Wert''' ist im Sinne der [[Objektorientierte Programmierung|Objektorientierten Programmierung]] ein [[Objekt]],  
das folgende Merkmale aufweist:
das folgende Merkmale aufweist:
   
   
* Ein Wert existiert dauerhaft, d.h., er wurde „zu Anbeginn der Zeit“ erzeugt und wird erst „zum Ende der Zeit“ zerstört. Es gibt also keine [[Konstruktor]]en und [[Destruktor]]en für Werte.
* Ein Wert existiert dauerhaft, {{dh}}, er wurde „zu Anbeginn der Zeit“ erzeugt und wird erst „zum Ende der Zeit“ zerstört. Es gibt also keine [[Konstruktor]]en und [[Destruktor]]en für Werte.


* Der Zustand eines Wertes kann nicht verändert werden.  
* Der Zustand eines Wertes kann nicht verändert werden.  
Zeile 26: Zeile 33:
* Für jeden Wert kann es eine Menge von [[Anfragemethode]]n geben, mit deren Hilfe spezielle Eigenschaften des Wertes ermittelt werden können. [[Modifikationsmethode]]n gibt es für Werte jedoch nicht.
* Für jeden Wert kann es eine Menge von [[Anfragemethode]]n geben, mit deren Hilfe spezielle Eigenschaften des Wertes ermittelt werden können. [[Modifikationsmethode]]n gibt es für Werte jedoch nicht.


=Bemerkungen=
==Bemerkungen==


==Bedeutung von „systemweit“==
===Bedeutung von „systemweit“===
Der in der Definition verwendete Beriff „''systemweit''“ ist nicht eindeutig definiert, sondern hängt von der jeweiligen Systemumgebung ab. Bei einem einfachen Programmlauf eines [[JAVA]]-Programms beispielsweise bedeutet „''systemweit''“ für ein Wert „während der Lebensdauer des Programms (die endet spätestens mit dem Programmende) innerhalb der [[Laufzeitumgebung]] des Programms“. Für ein verteiltes
Der in der Definition verwendete Beriff „''systemweit''“ ist nicht eindeutig definiert, sondern hängt von der jeweiligen Systemumgebung ab. Bei einem einfachen Programmlauf eines [[JAVA]]-Programms beispielsweise bedeutet „''systemweit''“ für ein Wert „während der Lebensdauer des Programms (die endet spätestens mit dem Programmende) innerhalb der [[Laufzeitumgebung]] des Programms“. Für ein verteiltes
objektorientiertes Datenbanksystem bedeutet „''systemweit''“ dagegen  „über alle beteiligten Datenbanken hinweg solange die zugehörigen Datenbanken existieren“.
objektorientiertes Datenbanksystem bedeutet „''systemweit''“ dagegen  „über alle beteiligten Datenbanken hinweg solange die zugehörigen Datenbanken existieren“.


==Datentyp==
===Datentyp===
Der Begriff [[Datentyp]] wird meist in einem Atemzug mit dem Begriff [[Wert]] genannt. Ein Datentyp beschreibt eine [[Menge]] von Werten, für
Der Begriff [[Datentyp]] wird meist in einem Atemzug mit dem Begriff [[Wert]] genannt. Ein Datentyp beschreibt eine {{Menge}} von Werten, für
die bestimmte [[Funktion]]en definiert sind.
die bestimmte [[Funktion]]en definiert sind.


Man beachte, dass die obige Definition ohne den Begriff [[Datentyp]] auskommt.
Man beachte, dass die obige Definition ohne den Begriff [[Datentyp]] auskommt.


=Beispiele=
==Beispiele==


Die [[natürliche Zahlen|natürliche Zahl]] <code>75</code> ist ein typischer Wert, genauer gesagt, ein typischer [[Wertname]]. Mögliche [[Wertname]]n, die alle denselben Wert bezeichnen, sind:
Die [[natürliche Zahlen|natürliche Zahl]] <code>75</code> ist ein typischer Wert, genauer gesagt, ein typischer [[Wertname]]. Mögliche [[Wertname]]n, die alle denselben Wert bezeichnen, sind:
Zeile 75: Zeile 82:


Viele Programmiersysteme erzwingen diese Eindeutigkeit, indem sie z.B. jeden Wertidentifikator um einen eindeutigen Typidentifikator erweitern.
Viele Programmiersysteme erzwingen diese Eindeutigkeit, indem sie z.B. jeden Wertidentifikator um einen eindeutigen Typidentifikator erweitern.
Es gibt allerdings auch Sprachen, wie z.B. C++, die aus Performanzgründen die  systemweite Eindeutigkeit von Wertidentifikatoren nicht automatisch erzwingen. Das hat zur Folge, dass zur Laufzeit eines Programms zwei unterschiedliche Werte in bestimmten Situationen nicht mehr unterschieden werden können (z.B. nachdem diese Werte in eine [[Liste]] oder in ein [[Array]] eingefügt wurden).
Es gibt allerdings auch Sprachen, wie z.B. C++, die aus Performanzgründen die  systemweite Eindeutigkeit von Wertidentifikatoren nicht automatisch erzwingen. Das hat zur Folge, dass zur Laufzeit eines Programms zwei unterschiedliche Werte in bestimmten Situationen nicht mehr unterschieden werden können (z.B. nachdem diese Werte in eine [[Liste]] oder in ein {{Array}} eingefügt wurden).


=Quellen=
==Quellen==


*[[Kowarschick, W.: Multimedia-Programmierung]]
*{{Quelle|Kowarschick, W.: Multimedia-Programmierung}}
*[[Kowarschick, W. (2002): Multimedia-Programmierung - Objektorientierte Grundlagen]]
*{{Quelle|Kowarschick, W. (2002): Multimedia-Programmierung - Objektorientierte Grundlagen}}
*[[Kowarschick, W. (2002): Skriptum zur Vorlesung Multimedia Softwareentwicklung II]]
*{{Quelle|Kowarschick, W. (2002): Skriptum zur Vorlesung Multimedia Softwareentwicklung II}}


=Siehe auch=
==Siehe auch==


*[[Objekt (OOP)|Objekt]]
*[[Objekt (OOP)|Objekt]]
*[http://en.wikipedia.org/wiki/Value_%28computer_science%29 Wikipedia (en): Value (Computer Science)]
*[[WikipediaEN:Value (computer science)]]<noinclude>
 
[[Kategorie:Datentyp]]
[[Kategorie:Programmierung]]
[[Kategorie:Objektorientierte Programmierung]]
[[Kategorie:Glossar]]
[[en:Value]]
[[en:Value]]
{{GlossarWiki-konformer Artikel}}
[[Kategorie:Kapitel:Multimedia-Programmierung]]
</noinclude>

Aktuelle Version vom 3. August 2019, 15:08 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 5
(vollständig überprüft)
Umfang: 4
(unwichtige Fakten fehlen)
Quellenangaben: 2
(wichtige Quellen fehlen)
Quellenarten: 3
(gut)
Konformität: 5
(ausgezeichnet)

Definition (für nicht-objektorientierte Programmierparadigmen)

Ein Wert ist (im Sinne der meisten Programmierparadigmen) ein Datum (Einzahl von Daten), das folgende Merkmale aufweist:

  • Ein Wert existiert dauerhaft, d.h., er wird weder erzeugt, noch kann er zerstört oder verändert werden.
  • Ein Wert w hat einen unveränderlichen, systemweit eindeutigen und nicht anderweitig verwendbaren Wertidentifikator (WID) wid(w), mit dem er jederzeit eindeutig identifiziert werden kann.
  • Neben dem Identifikator kann es zu jedem Zeitpunk t für einen Wert w noch einen oder mehrere Wertnamen wnamen(w,t) geben. Diese sind im Gegensatz zum WID i.Allg. veränderlich, wiederverwendbar und nicht notwendigerweise systemweit eindeutig. Mit Hilfe eines Namens kann ein Wert daher nur unter bestimmten Bedingungen zu bestimmten Zeiten eindeutig identifiziert werden.
  • Für jeden Wert kann es eine Menge von Anfragemethoden geben, mit deren Hilfe spezielle Eigenschaften des Wertes ermittelt werden können.

Definition (für objektorientierten Programmierparadigmen)

Ein Wert ist im Sinne der Objektorientierten Programmierung ein Objekt, das folgende Merkmale aufweist:

  • Ein Wert existiert dauerhaft, d. h., er wurde „zu Anbeginn der Zeit“ erzeugt und wird erst „zum Ende der Zeit“ zerstört. Es gibt also keine Konstruktoren und Destruktoren für Werte.
  • Der Zustand eines Wertes kann nicht verändert werden.
  • Jeder Wert hat zu jedem Zeitpunkt mindestens einen Wertnamen.
  • Für jeden Wert kann es eine Menge von Anfragemethoden geben, mit deren Hilfe spezielle Eigenschaften des Wertes ermittelt werden können. Modifikationsmethoden gibt es für Werte jedoch nicht.

Bemerkungen

Bedeutung von „systemweit“

Der in der Definition verwendete Beriff „systemweit“ ist nicht eindeutig definiert, sondern hängt von der jeweiligen Systemumgebung ab. Bei einem einfachen Programmlauf eines JAVA-Programms beispielsweise bedeutet „systemweit“ für ein Wert „während der Lebensdauer des Programms (die endet spätestens mit dem Programmende) innerhalb der Laufzeitumgebung des Programms“. Für ein verteiltes objektorientiertes Datenbanksystem bedeutet „systemweit“ dagegen „über alle beteiligten Datenbanken hinweg solange die zugehörigen Datenbanken existieren“.

Datentyp

Der Begriff Datentyp wird meist in einem Atemzug mit dem Begriff Wert genannt. Ein Datentyp beschreibt eine Menge von Werten, für die bestimmte Funktionen definiert sind.

Man beachte, dass die obige Definition ohne den Begriff Datentyp auskommt.

Beispiele

Die natürliche Zahl 75 ist ein typischer Wert, genauer gesagt, ein typischer Wertname. Mögliche Wertnamen, die alle denselben Wert bezeichnen, sind:

  • 75
  • +75
  • 075 (wenn führende Nullen ignoriert werden) oder 0113 (wenn eine führende Null ausdrückt, dass die Zahl in oktaler Schreibweise dargestellt wird)
  • 0x4b (hexagesimale Darstellung)
  • etc.

Der zugehörige Wertidentifikator hängt vom verwendeten Programmiersystem ab.
Beispiele:

Ein weiteres Beispiel ist der Buchstabe K. Auch dieser Wert hat verschiedene Wertnamen:

  • K
  • \x04b
  • \113
  • etc.

Der zugehörige Wertidentifikator hängt wiederum vom verwendeten Programmiersystem ab.
Beispiele:

Es fällt auf, dass die möglichen Wertidentifikatoren dieser beiden Werte teilweise übereinstimmen. Zum Beispiel ist der Wertidentifikator der Small-Integer-Zahl 75 gleich dem UTF-16-Code des Buchstaben K. Dies widerspricht jedoch der Forderung nach „systemweiter Eindeutigkeit“ des Wertidentifikators.

Viele Programmiersysteme erzwingen diese Eindeutigkeit, indem sie z.B. jeden Wertidentifikator um einen eindeutigen Typidentifikator erweitern. Es gibt allerdings auch Sprachen, wie z.B. C++, die aus Performanzgründen die systemweite Eindeutigkeit von Wertidentifikatoren nicht automatisch erzwingen. Das hat zur Folge, dass zur Laufzeit eines Programms zwei unterschiedliche Werte in bestimmten Situationen nicht mehr unterschieden werden können (z.B. nachdem diese Werte in eine Liste oder in ein Array eingefügt wurden).

Quellen

Siehe auch