kapitel 13 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Kapitel 13 PowerPoint Presentation
Download Presentation
Kapitel 13

Loading in 2 Seconds...

play fullscreen
1 / 13

Kapitel 13 - PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on

Finale Semantik und beobachtbares Verhalten. Kapitel 13. Das Ziel der Benutzung von Gleichungsspezifikationen SPEC = (, E ) zur Festlegung eines monomorphen abstrakten Datentyps ADT SPEC hat uns zur initialen Semantik geführt.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Kapitel 13' - psyche


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
kapitel 13
Finale Semantik und beobachtbares VerhaltenKapitel 13

Das Ziel der Benutzung von Gleichungsspezifikationen

SPEC = (, E) zur Festlegung eines monomorphen abstrakten DatentypsADTSPEC hat uns zur initialen Semantik geführt.

Aber die Isomorphieklasse der initialen Algebren in AlgSPEC ist natürlich nicht die einzige Isomorphieklasse in AlgSPEC.

Sie ist auch nicht a priori vor anderen Isomorphieklassen ausgezeichnet. Die initiale Semantik besitzt auch Nachteile.

Es ist z.B. sehr leicht möglich, inkonsistente „Erweiterungen“ zu entwerfen.

Deshalb ist es zweckmäßig, auch andere Semantiken zu suchen und zu untersuchen. Zur Motivation der Richtung der Suche betrachten wir wieder ein Beispiel.

slide2

Beispiel

Es seien wieder nat und bool wie bei den früheren Beispielen gegeben.

nateq = nat+bool+

oprseq : nat, nat bool

var n, m : nat

eqns(0 eq 0) = true

(0 eqsuc(n)) = false

(suc(n) eq 0) = false

(suc(n) eqsuc(m)) = (neqm)

endnateq

Es ist relativ leicht, nachzuweisen, daß die Spezifikation nateq eine Erweiterung von nat ist. Überzeugen Sie sich selbst davon!

slide3

Beispiel (Forts.)

setofnat = nateq+

sortsset

oprs :  set

insert : set, nat  set

del : set, nat  set

if-then-else-set : bool, set, set  set

if-then-else-nat : bool, nat, nat  nat

if-then-else-bool : bool, bool, bool  bool

 : nat, set  bool

equal: set, set  bool

 : set, set  bool

card : set  nat

var 

eqns

endsetofnat

andere Spezifikation von

„Mengen natürlicher Zahlen“

als in früherem Beispiel

siehe nächste Folie

slide4

Beispiel (Forts.)

setofnat = nateq+

sorts 

oprs

var s, t : nat ; m, n : nat ; p, q : bool

eqnsif true then s else t set = s

if false then s else t set = t

if true then m else n nat = m

if false then m else n nat = n

if true then p else q bool = p

if false then p else q bool = q

n   =false

n  insert(s, m) =if (neqm) then true else ns bool

endsetofnat

siehe vorige Folie

weitere Gleichungen nächste Folie

slide5

Beispiel (Forts.)

setofnat = nateq+

sorts 

oprs

var s, t : nat ; m, n : nat ; p, q : bool

eqns

card() = 0

card(insert(s, n)) = if ns then card(s) else suc(card(s)) nat

del(, n) = 

del(insert(s, n), m) = if (neqm) then del(s, m)

else insert(del(s, m), n) set

(  ) =true

(  insert(s, n)) =true

(insert(s, n)  t ) =and(n  t , s  t)

(s equal t ) = and(s  t, t  s)

endsetofnat

siehe Folie vorn

Gleichungen aus voriger Folie und ...

slide6

Beispiel (Forts.)

Wie man sich leicht überzeugt, ist nun in setofnatnicht mehr

 E*insert(,0)

abzuleiten, allerdings gilt nun auch

insert(insert(s,0), 0)E* insert(s,0),

d.h. die Kongruenzklassen

[insert(s,0)] und [insert(insert(s,0), 0)]

in Tsetofnatsind verschieden!

Es werden also verschiedene Darstellungen „derselben Menge“ unterschieden.

Das liegt hier auch an der initialen Semantik.

Das initiale Modell erweist sich hier wieder einmal als zu groß!

Wenn man sich aber die in setofnat erfaßbaren Eigenschaften der Mengen genauer ansieht, stellt man fest, daß hierbei verschiedene Darstellungen derselben Menge dieselben Eigenschaften haben!

slide7

Beispiel (Forts.)

In setofnat gilt z.B.

card(insert(insert(, n), n)) E*if ninsert(, n)

then card(insert(, n)) else suc(card(insert(, n))) nat

E* card(insert(, n))

und analoge Gleichungen für , equal,  .

Ein oft genutzter Ansatz für Datentypen ist es, zwischen „sichtbaren“ und „versteckten“ Sorten und Operatoren zu unterscheiden. Wenn man also über die „neuen“ Elemente nur durch Anwendung der „erlaubten“ Operationen etwas erfährt, dann lassen sich die obigen verschiedenen Darstellungen nicht mehr unterscheiden! Das beobachtbare Verhalten ist gleich!

setofnat

hidden sortsset

oprs, insert, del

slide8

Initiale Modelle sind zur Erfassung des beobachtbaren Verhaltens

i.a. zu groß! Generell kann man die initiale Algebra T,Ein Alg,E als „möglichst große“ Algebra mit leeren Erzeugendensystem beschreiben.

Für beliebige Terme t1, t2 T gilt [t1]E  [t2]E , sobald sie nur in einer einzigen Algebra A  Alg,E verschiedene Werte haben!

A

hAlg,E

Tg

nat(E)

T,E

Wenn h(t1)h (t2), so wegen h = nat(E)g auch [t1]E  [t2]E .

slide9

Initiale Modellezu groß!

  • Gibt es evtl. auch „möglichst kleine“ Algebren mit leerem
  • Erzeugendensystem in Alg,E ?
  • Dual zum initialen Fall sollten zwei Terme t1, t2 T in dieser
  • neuen „semantischen Algebra“ nur dann verschiedene Werte
  • haben, wenn sie in allen Modellen, d.h. in allen
  • (, E)-Algebren, verschiedene Werte haben.
  • Beachte aber: In Alg,E liegt immer die entartete Algebra mit genau einem Element in jeder Trägermenge. Diese erfüllt obige Bedingung, ist aber viel zu klein!
  • Initialität wurde mittels Homomorphismen definiert. Wir
  • definieren einen dualen Begriff „finale Algebra“.
slide10

Definition „finale Algebra“

Sei K  Alg eine Klasse von -Algebren.

Dann heißt eine Algebra A  K final in K genau dann, wenn zu jeder Algebra B  K genau ein Homomorphismus h von Bin A existiert.

Analog zum Falle der Initialität kann man leicht zeigen, daß die in einer Klasse K finalen Algebren eine Isomorphieklasse bilden.

Aber natürlich gibt es nicht in jeder Klasse K finale Algebren.

slide11

Es sei A eine (, E)-Algebra. Angenommen, in Alg,E gibt es eine finale Algebra F , so ergibt sich:

Für beliebige Terme t1, t2 T folgt aus i(t1) =i(t2) sofort

gfin(h(t1))= gfin(h (t2)).

Umgekehrt, wenn t1, t2 in der Algebra A denselben Wert haben,

h(t1) =h (t2), ist auch i(t1) =i(t2), d.h. sie haben auch in F denselben Wert.

A

hAlg,E

Tgfin

i

F

Die entartete Algebra ist also final in Alg,E.

slide12

Eine sinnvolle finale Semantik erfordert die Verkleinerung der Algebrenklasse, um die entartete Algebra auszuschließen. Üblich sind zwei Methoden:

  • Definition einer Unterklasse MOD  Alg ,E zulässiger
  • Modelle von SPEC = (, E). Wenn es in MOD eine finale
  • Algebra F gibt, so ist deren Isomorphieklasse der durch die
  • finale Semantik bestimmte abstrakte Datentyp FINSPEC .
  • Definition einer Kongruenzrelation E mittels des
  • Gleichungssystems E und bilde TE . Zeige, daß TE final
  • in einer bestimmten Modellklasse MOD  Alg ,E ist.
  • Die Isomorphieklasse von TE ist dann wieder der abstrakte
  • Datentyp FINSPEC .
slide13

Initiale Semantik ist ein fester Begriff.

  • Bei der finalen Semantik gibt es Wahlmöglichkeiten in
  • der direkten Bestimmung der zulässigen Modellklasse
  • MOD bzw. durch die Festlegung einer geeigneten
  • Kongruenz E .
  • Es gibt sehr unterschiedliche Ansätze für die finale
  • Semantik.
  • Durch geeignete Definition der Kongruenzrelation E
  • gelingt es z.B., das sog. „beobachtbare Verhalten“ zu
  • modellieren.
  • Auch für die Formalisierung des beobachtbaren
  • Verhaltens gibt es verschiedene Möglichkeiten.