PDA

View Full Version : [Frage] abstrakte datentypen - konstanten


pyr1108
28-10-2003, 11:41
Kann irgendjemand schluessig erklaeren wozu man die konstanten in der definition abstrakter datentypen braucht. Wieso braucht man z.B. beim Datentyp N alle natuerlichen zahlen als konstanten? bei den binaeren Stacks aber nur "leer" als konstante.

lg, pyr

locutus
29-10-2003, 01:58
Kann irgendjemand schluessig erklaeren wozu man die konstanten in der definition abstrakter datentypen braucht. Wieso braucht man z.B. beim Datentyp N alle natuerlichen zahlen als konstanten? bei den binaeren Stacks aber nur "leer" als konstante.
im gegensatz zu den natürlichen zahlen sind (in diesem fall) im stack die "konstanten" 0 und 1 im kontext mit den funktionen push0 und push1 definiert

Neutrino
29-10-2003, 10:21
Kann irgendjemand schluessig erklaeren wozu man die konstanten in der definition abstrakter datentypen braucht. Wieso braucht man z.B. beim Datentyp N alle natuerlichen zahlen als konstanten? bei den binaeren Stacks aber nur "leer" als konstante.


das soll vermutlich die situation in realen programmiersprachen modellieren, wo du bei einem datentyp normalerweise nicht fuer jeden moeglichen wert auch eine konstante hast, um den wert direkt ins programm zu schreiben. nimm etwa die listen: in konventionellen programmiersprachen kannst du meist nur die leere liste sofort hinschreiben, alle anderen musst du dir mit konstruktoren schrittweise aufbauen. in funktionalen und logischen progs hingegen kann man meist beliebige listen direkt hinschreiben, hat also wie bei den natuerlichen zahlen fuer jeden wert auch ein symbol.

die konstanten im datentyp geben einfach an, wofuer du dann in der darauf aufbauenden programmiersprache auch symbole hast.

nu

pyr1108
29-10-2003, 12:08
Vielen Dank fuer die Hinweise - daraufhin hab ich mir nocheinmal die Def der Menge T(D) angeschaut: Da wird irgendwie klarer wozu man die konstanten braucht: um gueltige terme zu erzeugen. Als Konstanten definiere ich also einfach alle die Elemente, die ich in Termen verwenden will. (unabhaengig von der Auswertung).