Semantik von Programmiersprachen” Serie 1 - informatik.uni

Werbung
Dr. Vitaly Perevoshchikov
[email protected]
http://www.informatik.uni-leipzig.de/~perev/
Universität Leipzig
Institut für Informatik
SS 2016
Übungen zur Vorlesung von Prof. Dr. Manfred Droste
”Semantik von Programmiersprachen”
Serie 1
• Seminaraufgaben, die mit ”S” gekennzeichnet sind, werden in der Übungsgruppe am
11.04.16 besprochen.
S1-1 Ein Binärbaum ist ein Baum, dessen Knoten höchstens 2 Nachfolger haben. Die Menge
B aller binären Bäume ist induktiv wie folgt definiert:
(i) W ist ein Binärbaum.
(ii) Sind T1 , T2 Binärbäume, so auch W(T1 ; T2 ).
(iii) Ist T ein Binärbaum, so auch W(T).
Die Menge B ist also eine Sprache in {W, (, ), ;}∗ .
(a) Konstruieren Sie eine kontextfreie Grammatik, die B erzeugt.
(b) Definieren Sie induktiv die folgenden Funktionen:
• h : B → N, h(T ) ist die Höhe von T ∈ B.
• a : B → N, a(T ) ist die Anzahl der Knoten in T .
(c) Sei T ein Baum. Zeigen Sie induktiv über die Struktur des Baums T , dass
a(T ) ≤ 2h(T ) − 1.
S1-2 Die Grammatik
<E> ::= <E> ∧ <E> | <E> ∨ <E> | ¬ <E> | (<E>) | true | false
erzeugt die Menge der Booleschen Ausdrücke mit ∧, ∨, ¬, Klammern und Konstanten
true, false.
(a) Zeigen Sie, dass diese Grammatik mehrdeutig ist.
(b) Konstruieren Sie eine äquivalente eindeutige Grammatik.
Bitte wenden!
S1-3 Es sei m, n ∈ N \ {0}. Die Folge (xk )k∈N mit xk = (ak , bk ) ∈ N × N ist gegeben durch:
a0 = m, b0 = n,
(
ak − bk , falls ak > bk ,
ak+1 =
ak ,
sonst,
(
bk − ak , falls bk > ak ,
bk+1 =
bk ,
sonst.
(a) Beweisen Sie die folgende Aussage für alle natürlichen k durch vollständige Induktion:
xk ∈ (N \ {0})2 ∧ ggT(ak , bk ) = ggT(m, n).
(b) Zeigen Sie, dass es ein k0 ∈ N gibt mit ak = bk = ggT(m, n) für alle k ≥ k0 .
S1-4 Das Gödelsche β-Prädikat Rβ ⊆ N4 ist definiert durch
Rβ = {(a, b, i, x) | x = a mod(1 + (i + 1)b)},
wobei k mod l der Rest der Division von k durch l ist.
Beweisen Sie folgende Behauptungen:
(a) Für alle k ∈ N gibt es eine positive ganze Zahl b, so dass die Zahlen 1 + b, 1 + 2b,
1 + 3b, ..., 1 + kb paarweise teilerfremd sind.
(b) Für jede Folge n0 , ..., nk von natürlichen Zahlen gibt es n, m ∈ N mit:
∀j ∈ {0, ..., k} ∀x ∈ N : (n, m, j, x) ∈ Rβ ⇐⇒ x = nj .
Hinweis: Verwenden Sie den Chinesischen Restsatz.
Herunterladen