Semantik

Syntax zu Semantik

Syntax

Einteilung der Symbole

Kalkül

Regelsystem mit dem sich Formeln aus anderen systematisch herleiten lassen.

Formale Beweise.

Theorie (In der Logik)

Menge von Formeln die aus einer Menge Axiome A\small \mathcal A herleitbar sind.

Dann spricht man von einer axiomatischen Theorie.

Semantik

Wahrheit, Gültigkeit, Interpretation, Modell

Intendierte Semantik

Meaning function

M:Tω\mathcal{M}: \mathcal{T} \mapsto \omega

M:ENV×Tω\mathcal{M}: E N V \times \mathcal{T} \mapsto \omega

ENVENVist die Menge allerII

Interpretation

Speicherbelegung, Variablenbelegung, Environments

I:IVSDI: I V S \mapsto D

zB I:{x,y,z,}ω I:\{\underline{\mathrm{x}}, \underline{\mathrm{y}}, \underline{z}, \ldots\} \mapsto \omega 

Modellstrukturen

💡
Für M\mathcal M bei Zahlenbegriffen, braucht man zusätzlich zur Menge ω\omega noch eine Modellstruktur wie zB N,Z\small \N, \Z .

ModellstrukturD\mathcal D

sind Abstrakte Datentypen.

Allgemeines semantisches Konzept um zu bestimmen worauf sich Dinge beziehen .

Bestimmt Mengen an Funktionen für die Symbole.

Alle Funktionen sind total.


Σ(D)=D;P,K,F\Sigma(\mathcal{D})=\langle D ; P, K, F\rangle

DD Domäne / Gegenstandsbereich - nicht leere Menge

PP Totale Prädikaten-Menge P:Dn{f,t}P: D^{n} \mapsto\{\mathbf{f}, \mathbf{t}\}(Wahrheitswerte)

KK Konstanten-Menge KDK \subseteq D

FF Funktionen-Menge F:DnDF:D^{n} \mapsto D

Signaturen

SignaturΣ(D)\Sigma(\mathcal{D})von ModellstrukturD\mathcal{D}

bestimmt Alphabet der Sprache, die Bezug auf Gegenstände in D\mathcal D zulässt.

KS(D)K S(\mathcal{D}) Konstantensymbole

PSn(D),FSn(D)PS_{n}(\mathcal{D}), FS_{n}(\mathcal{D})nn -stellige Prädikaten-, Funktionssymbole

Beispiele

Arithmetische Ausdrücke

Arithmetische Ausdrücke über Modellstruktur Z\small\Z

0\small \underline 0als Symbol, nicht als natürliche Zahl mit Wert gemeint.

Syntax: Additive Terme

Kontextfreie Grammatik

T=L(G)\mathcal{T}=\mathcal{L}(G)

G={T},{(,),+,0,,9},P,T G=\langle\{T\},\{\underline{(}, \underline{)}, \underline +, \underline{0}, \ldots, \underline{9}\}, P, T\rangle 

P={T09(T+T)} P=\left\{T \rightarrow \underline{0}\mid\cdots\mid \underline{9} \mid \underline{(}{T} \underline{+} T \underline{)}\right\} 

Induktive Definition

T\mathcal T ist die kleinste Menge mit

{0,9}T \{\underline{0}, \ldots \underline{9}\} \subseteq \mathcal{T} 

t1,t2T(t1+t2)T t_{1}, t_{2} \in \mathcal{T} \implies \underline(t_{1} \underline + t_{2}\underline) \in \mathcal{T} 

Intendierte Semantik

Hier benötigt man zusätzlcih die ModellstrukturN\N.

Induktive Definition für Meaning Function:

M(0)=0,,M(9)=9 \mathcal{M}(\underline{0})=0, \ldots, \mathcal{M}(\underline{9})=9 

M(t1+t2)=M(t1)+M(t2) \mathcal{M}\left(t_{1} \underline + t_{2}\right)=\mathcal{M}\left(t_{1}\right)+\mathcal{M}\left(t_{2}\right)  wenn tTt \in \mathcal T

Variablen

Erweiterung des Beispiels

Neue Produktion: Txyz T \rightarrow \underline{\mathrm{x}}\mid \underline{\mathrm{y}} \mid \underline{\mathrm{z}} 


M(I,0)=0,,M(I,9)=9 \mathcal{M}(I, \underline{0})=0, \ldots, \mathcal{M}(I, \underline{9})=9 

M(I,v)=I(v)\mathcal{M}(I, v)=I(v) für v{x,y,z,} v \in\{\underline{\mathrm{x}}, \underline{\mathrm{y}}, \underline{\mathrm{z}}, \ldots\} 

M(I,(t1±t2))=M(I,t1)+M(I,t2) \mathcal{M}\left(I,\left(t_{1} \pm t_{2}\right)\right)=\mathcal{M}\left(I, t_{1}\right)+\mathcal{M}\left(I, t_{2}\right)  wenn tTt \in \mathcal T

Gleiche Syntax mit induktiver Definition

In beiden Fällen, die selbe Definition der Semantik.

Interpretation

Man kann frei wählen M(x)=1\mathcal{M}(\underline{\mathrm{x}})=1 oder M(x)=2\mathcal{M}(\underline{\mathrm{x}})=2 ...

I:{x,y,z,}ω I:\{\underline{\mathrm{x}}, \underline{\mathrm{y}}, \underline{z}, \ldots\} \mapsto \omega 

Hierarchisierung

Zuvor keine Hierarchisierung von Operatoren (welcher Vorrang hat) wegen Klammern.

Hierarchie: (Ziffer → Nummer → Term)

TT Zahlenausdrücke

NN Nummer (Zahl aus mehreren Ziffern)

ZZ Ziffern

Syntax

T=L(G)\mathcal{T}=\mathcal{L}(G)

G={T,Z,N},{(),+,0,,9},P,T G=\langle\{T, Z, N\},\{{\underline{(}} {\underline{)}}, \underline{+}, \underline{{0}}, \ldots, \underline{9}\}, P, T\rangle 

P={T(T+T)NNNZZZ09} \begin{aligned}P=\{& T \rightarrow(T+T) \mid N \\& N \rightarrow N Z \mid Z \\&Z \rightarrow \underline{0} \mid \cdots \mid \underline{9}\}\end{aligned} 

Dadurch gilt:ZNTZ \subseteq N \subseteq T

Semantik

MZ(0)=0,,MZ(9)=9 \mathcal{M}_{Z}(\underline{0})=0, \ldots, \mathcal{M}_{Z}(\underline{9})=9 

MN(nz)=MN(n)10+MZ(z) \mathcal{M}_{N}(n z)=\mathcal{M}_{N}(n) \cdot 10+\mathcal{M}_{Z}(z)  wenn nN,zZn \in \mathrm{N}, z \in \mathrm{Z}

MN(n)=MZ(n)\mathcal{M}_{N}(n)=M_{Z}(n) wenn nZn \in \mathrm{Z}

MT((t1+t2))=MT(t1)+MT(t2) \mathcal{M}_{T}(\underline(t_{1} \underline + t_{2}\underline))=\mathcal{M}_{T}\left(t_{1}\right)+\mathcal{M}_{T}\left(t_{2}\right)  wenn t1,t2Tt_{1}, t_{2} \in \mathcal{T}

MT(t)=MN(t)\mathcal{M}_{T}(t)=\mathcal{M}_{N}(t) wenn tNt \in N

Multiplikation (führt zu Mehrdeutigkeit)

Syntax

Grammatik

E=L(G)\mathcal{E}=\mathcal{L}(G)

E09 E \rightarrow \underline{0}\mid\cdots\mid \underline{9} 

EE+EE \rightarrow E ~\underline + ~E

EEEE \rightarrow E ~\underline* ~E

Induktive Definition

E\mathcal E ist die kleineste Menge mit

{0,9}E \{\underline{0}, \ldots \underline{9}\} \subseteq \mathcal{E} 

e1+e2Ee_{1} ~\underline + ~e_{2} \in \mathcal{E} wenn e1,e2Ee_{1}, e_{2} \in \mathcal{E}

e1e2Ee_{1} ~\underline{*}~ e_{2} \in \mathcal{E} wenn e1,e2Ee_{1}, e_{2} \in \mathcal{E}

Regulärer Ausdruck (ohne Semantik)

E0F9FE \rightarrow \underline{0} F|\cdots| \underline{9} F

F+EEϵF \rightarrow \underline + E|* E| \epsilon

Semantik

Rekursive Definition von meaning function (keine eindeutige Funktion)

M(0)=0,\mathcal{M}(\underline{0})=0, \ldots

M(e1+e2)=M(e1)+M(e2) \mathcal{M}\left(e_{1} \underline + e_{2}\right) = \mathcal{M}\left(e_{1}\right)+\mathcal{M}\left(e_{2}\right) 

M(e1e2)=M(e1)M(e2) \mathcal{M}\left(e_{1} \underline * e_{2}\right) =\mathcal{M}\left(e_{1}\right) \cdot \mathcal{M}\left(e_{2}\right) 

Mehrdeutigkeit

Mangelnde Hierarchie (Prioritäts-Regel: Multiplikation vor Addition).

Ableitungen entsprechen nicht der intendierten Semantik. Semantik ist nicht eindeutig und dadurch keine Funktion mehr.

Beispiel

M(3+33)=M(3)+M(33)=M(3)+M(3)M(3)=12 \mathcal{M}(\underline{3}+\underline{3} * \underline{3})=\mathcal{M}(\underline{3})+\mathcal{M}(\underline{3} * \underline{3})=\mathcal{M}(\underline{3})+\mathcal{M}(\underline{3}) \cdot \mathcal{M}(\underline{3})=12 

M(3+33)=M(3+3)M(3)=(M(3)+M(3))M(3)=18 \mathcal{M}(\underline{3} \underline +\underline{3} \underline{*} \underline{3})=\mathcal{M}(\underline{3}+\underline{3}) \cdot \mathcal{M}(\underline{3})=(\mathcal{M}(\underline{3})+\mathcal{M}(\underline{3})) \cdot \mathcal{M}(\underline{3})=18 

Auflösung der Mehrdeutigkeit

Wir können die Prioritätsregel in SemantikM\mathcal Meinbauen (siehe oben) oder in SyntaxE\mathcal Eeinbauen:

Syntax

H\mathcal Hist die kleinste Menge mit

{0,1,,9}H \{{\underline{0}}, \underline{1}, \ldots, \underline{9}\} \subseteq \mathcal{H} 

e1,e2He1e2H e_{1}, e_{2} \in \mathcal{H} \rightarrow e_{1} \underline * e_{2} \in \mathcal{H} 

E\mathcal Eist die kleinste Menge mit

HE\mathcal{H} \subseteq \mathcal{E}

e1,e2Ee1+e2E e_{1}, e_{2} \in \mathcal{E} \rightarrow e_{1} \underline + e_{2} \in \mathcal{E} 

Semantik

MH(0)=0,,MH(9)=9 \mathcal{M}_{\mathcal{H}}(\underline{0})=0, \ldots, \mathcal{M}_{\mathcal{H}}(\underline{9})=9 

MH(e1e2)=MH(e1)MH(e2) \mathcal{M}_{\mathcal{H}}(e_{1} \underline{*} e_{2})=\mathcal{M}_{\mathcal{H}}(e_{1}) \cdot \mathcal{M}_{\mathcal{H}}(e_{2}) 

ME(e)=MH(e) \mathcal{M}_{\mathcal{E}}(e)=\mathcal{M}_{\mathcal{H}}(e)  wenn eHe \in \mathcal{H}

ME(e1+e2)=ME(e1)+ME(e2) \mathcal{M}_{\mathcal{E}}(e_{1} \underline + e_{2})=\mathcal{M}_{\mathcal{E}}(e_{1})+\mathcal{M}_{\mathcal{E}}(e_{2}) 


Beispiel

ME(23+4)=ME(233)+ME(4)=MH(233)+MH(4)=MH(2)MH(3)+4=23+4=10 \begin{aligned}\mathcal{M}_{\mathcal{E}}(\underline{2} \underline{ *} \underline{3} \underline +\underline{4}) &=\mathcal{M}_{\mathcal{E}}(\underline{2} \underline{3} \underline{3})+\mathcal{M}_{\mathcal{E}}(\underline{4}) \\&=\mathcal{M}_{\mathcal{H}}(\underline{2} \underline{3} \underline{3})+\mathcal{M}_{\mathcal{H}}(\underline{4}) \\&=\mathcal{M}_{\mathcal{H}}(\underline{2}) \cdot \mathcal{M}_{\mathcal{H}}(\underline{3})+4 \\&=2 \cdot 3+4=10\end{aligned} 

Terme

Terme über Modellstrukturen

Terme T(D)\small \mathcal{T(D)} über D\small \mathcal D

Syntax

Keine Prädikate.

  1. IVST(D)\small I V S \subseteq \mathcal{T}(\mathcal{D})

    wobei  IVS: {x,y,z,,x1,} \small \text { IVS: }\left\{\underline{\mathrm{x}}, \underline{\mathrm{y}}, \underline{\mathrm{z}}, \ldots, \underline{\mathrm{x}}_{1}, \ldots\right\} 

  1. KS(D)T(D) \small K S(\mathcal{D}) \subseteq \mathcal{T}(\mathcal{D}) 
  1. f(t1,,tn)T(D) \small f^{\prime}\underline(t_{1} \underline, \ldots \underline , t_{n} \underline ) \in \mathcal{T}(\mathcal{D}) 

    wenn fFSn(D)\small f^{\prime} \in F S_{n}(\mathcal{D}) , t1,,tnT(D) \small t_{1}, \ldots, t_{n} \in \mathcal{T}(\mathcal{D}) 

Semantik

Keine Prädikate - deshalb entspricht der gesamte Ausdruck immer nur einem Domänenobjekt.

MT:ENV(D)×T(D)D \small \color{pink} \mathcal{M}_{\mathcal{T}}: \operatorname{ENV}(\mathcal{D}) \times \mathcal{T}(\mathcal{D}) \mapsto D 

  1. MT(I,v)=I(v)\small \mathcal{M}_{\mathcal{T}}(I, v)=I(v)

    wenn vIVS\small v \in I V S

  1. MT(I,c)=c \small \mathcal{M}_{\mathcal{T}}\left(I, c^{\prime}\right)=c 

    wenn cKS(D)\small c^{\prime} \in K S(\mathcal{D})

3. MT(I,f(t1,,tn))=f(MT(I,t1),,MT(I,tn)) \small \mathcal{M}_{\mathcal{T}}\left(I, f^{\prime}\left(t_{1}, \ldots, t_{n}\right)\right)=f\left(\mathcal{M}_{\mathcal{T}}\left(I, t_{1}\right), \ldots, \mathcal{M}_{\mathcal{T}}\left(I, t_{n}\right)\right) 

Boolesche Ausdrücke

Boolsche Ausdrücke über Modellstrukturen

Syntax

BA(D)\small \mathcal {BA(D)} ist die kleinste Menge für die gilt

  1. p(t1,,tn)BA(D) \small p \underline{(} t_{1}, \ldots, t_{n} \underline{)} \in \mathcal{B} \mathcal{A}(\mathcal{D}) (Atomformel)

    wenn pPSn(D)\small p \in P S_{n}(\mathcal{D}) und t1,,tnT(D) \small t_{1}, \ldots, t_{n} \in \mathcal{T}(\mathcal{D}) 

  1. t1=t2\small t_1 \underline = t_2

    wenn t1,t2T(D)\small t_1, t_2 \in \mathcal{T}(\mathcal{D})

  1. ¬F,(FG),(FG)BA(D) \small \underline \neg F,~ \underline{(} F \underline \wedge G \underline{)},~ \underline{(} F \underline{\vee} G \underline{)} \in \mathcal{B} \mathcal{A}(\mathcal{D}) 

    wenn F,GBA(D) \small F, G \in \mathcal{B} \mathcal{A}(\mathcal{D}) 

Semantik

MBA:ENV×BA(D){t,f} \small \color{pink} \mathcal{M}_{\mathcal{B} \mathcal{A}}: E N V \times \mathcal{B} \mathcal{A}(\mathcal{D}) \rightarrow\{\mathbf{t}, \mathbf{f}\} 

  1. MBA(I,p(t1,,tn))=p(MT(I,t1),,MT(I,tn)) \small \mathcal{M}_{\mathcal{B} \mathcal{A}}\left(I, p^{\prime}\left(t_{1}, \ldots, t_{n}\right)\right)=p\left(\mathcal{M}_{\mathcal{T}}\left(I, t_{1}\right), \ldots, \mathcal{M}_{\mathcal{T}}\left(I, t_{n}\right)\right) 

    wobei pp das Prädikat zum Symbol pPSn(D)\small p^{\prime} \in P S_{n}(\mathcal{D}) ist.

  1. MBA(I,t1t2)=t \small \mathcal{M}_{\mathcal{B A}}(I, t1 \equiv t_2)=\mathbf{t} 

    wenn MT(I,t1)=MT(I,t2) \small \mathcal{M}_{\mathcal{T}}(I, t_1)=\mathcal{M}_{\mathcal{T}}(I, t_2)  ansonsten f\small \mathbf{f}

  1. MBA(I,¬F)={t falls MBA(I,F)=ff falls MBA(I,F)=t \small \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, \neg F)= \begin{cases}\mathbf{t} & \text { falls } \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, F)=\mathbf{f} \\ \mathbf{f} & \text { falls } \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, F)=\mathbf{t}\end{cases} 
  1. MBA(I,(FG))={t falls MBA(I,F)=t und MBA(I,G)=tf sonst  \small \mathcal{M}_{\mathcal{B A}}(I,\underline (F \underline \wedge G\underline ))= \begin{cases}\mathbf{t} & \text { falls } \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, F)=\mathbf{t} \text { und } \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, G)=\mathbf{t} \\ \mathbf{f} & \text { sonst }\end{cases} 
  1. MBA(I,(FG))={t falls MBA(I,F)=t oder MBA(I,G)=tf sonst  \small \mathcal{M}_{\mathcal{B A}}(I,\underline (F \underline \vee G\underline ))= \begin{cases}\mathbf{t} & \text { falls } \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, F)=\mathbf{t} \text { oder } \mathcal{M}_{\mathcal{B} \mathcal{A}}(I, G)=\mathbf{t} \\ \mathbf{f} & \text { sonst }\end{cases} 

Einfache Programmiersprache

A ssigned L anguge AL(D)\small AL(\mathcal D) über Modellstruktur / Datentyp D\mathcal D

Syntax

AL(D)\small AL(\mathcal D ) ist die kleinste Menge für die gilt

  1. vtAL(D)v \underline \larr t \in A L(\mathcal{D}) wenn vIVSv \in I V S und tT(D)t \in \mathcal{T}(\mathcal{D})
  1. beginαβendAL(D) \underline{\text{begin}}~ \alpha \text {; } \beta ~\underline{\text{end}} \in A L(\mathcal{D})  wenn α,βAL(D)\alpha, \beta \in A L(\mathcal{D})
  1. ifBthenαelseβAL(D) \underline{\text{if}}~ B ~\underline{\text{then}}~ \alpha ~\underline{\text{else}}~ \beta \in A L(\mathcal{D})  wenn α,βAL(D)\alpha, \beta \in A L(\mathcal{D}) und BBA(D)B \in \mathcal{B} \mathcal{A}(\mathcal{D})
  1. whileBdoαAL(D) \underline{\text{while}}~ B ~\underline{\text{do}}~ \alpha \in A L(\mathcal{D})  wenn αAL(D)\alpha\in A L(\mathcal{D}) und BBA(D)B \in \mathcal{B} \mathcal{A}(\mathcal{D})