• Keine Ergebnisse gefunden

Programmiersprachen II

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmiersprachen II"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fachbereich Informatik

Programmiersprachen und Softwaretechnik

Prof. Dr. Klaus Ostermann

Leitung des Übungsbetriebs Philipp Schuster

philipp.schuster@uni-tuebingen.de

Programmiersprachen II

Hausaufgabe 4 – WS 16

Tübingen, 11. November 2016

Abgabe Geben Sie diese Hausaufgabe bis Donnerstag den 17. November 2016 ab. Entweder bis 12:00 per Email an Philipp Schuster (philipp.schuster@uni-tuebingen.de) oder zu Beginn der Übung auf Papier.

Gruppen Sie können in Gruppen von bis zu 2 Personen arbeiten. Schreiben Sie in jedem Fall die Namen und Matrikelnummern aller Gruppenmitglieder mit auf die Hausaufgabe / in die Email. Wenn Sie in einer Gruppe arbeiten, achten Sie darauf, dass alle Mitglieder der Gruppe den Stoff verstehen.

Nur dann sind die Hausaufgaben eine gute Vorbereitung auf die Prüfung.

Punkte Sie können für die Aufgaben dieser Woche jeweils zwischen 0 und 2 Punkten bekommen.

Insgesamt also zwischen 0 und 6 Punkten. Sie bekommen für die Aufgaben jeweils:

1 Punkt, wenn Ihre Abgabe zeigt, daß Sie sich mit der Aufgabe ernsthaft beschäftigt haben.

2 Punkte, wenn Sie die Aufgabe weitgehend korrekt gelöst haben.

Um zur Klausur zugelassen zu werden müssen Sie mindestens 50% der maximal möglichen Punkte in den Hausaufgaben erreichen. Mit 60% bis 100% der möglichen Hausaufgabenpunkte erhalten Sie einen Bonus von 0% bis 20% der Klausurpunkte in der Klausur.

Aufgabe 1: Typen

Wir betrachten Terme aus der folgenden Sprache:

htermi::= ‘sqop’ | ‘squiggle’htermi| ‘squaggle’htermi| ‘transmogrify’htermi htermi Wir definieren die Menge von Typen als:

htypei::= ‘W’

Die Typrelation hat die folgenden Regeln. Dabei istt∈termundT ∈type.

T-SQOP

sqop : W

T-SQUIGGLE

t:W squigglet: W

T-SQUAGGLE

t:T squagglet:T

Welche der folgenden Terme sind wohlgetypt? Zeichnen Sie für die wohlgetypten Terme einen Ablei- tungsbaum für die Typrelation. Für die nicht-wohlgetypten Terme reicht ein kurzer Vermerk.

(2)

1. squiggle sqop

2. squaggle(squiggle(squaggle sqop))

3. squaggle(transmogrify(squiggle sqop)(squaggle sqop))

Aufgabe 2: Normalform

Für die Sprache aus Aufgabe 1 definieren die Menge von values:

hvaluei::= ‘sqop’ | ‘squiggle’hvaluei

Außerdem definieren wir folgende Evaluationsrelation:

E-SQUIGGLE

t−→t0

squigglet−→squigglet0

E-SQUAGGLE

squagglet−→t

Beantworten Sie jeweils für die drei Terme aus Aufgabe 1 die folgenden vier Fragen:

1. Der Term heisset. Existiert ein Termt0 sodasst−→t0? Wenn ja, beweisen Sie es durch einen Ableitungsbaum.

2. Ist der Term in Normalform? Kein Beweis nötig.

3. Ist der Term ein value? Kein Beweis nötig.

4. Ist der Term stuck? Kein Beweis nötig.

Aufgabe 3: Progress und Preservation

Beweisen Sie die folgenden zwei Aussagen für die Definitionen aus Aufgabe 1 und Aufgabe 2:

1. Progress: Für allet ∈ term und T ∈ type sodasst : T gilt: entweder t ist ein value oder es existiert eint0 ∈termsodasst−→t0.

2. Preservation: Für allet, t0 ∈termundT ∈type, wennt:T undt−→t0 dannt0 :T.

Seite 2/2

Referenzen

ÄHNLICHE DOKUMENTE

• Hat eine SZK keine eingehenden Kanten, erhält man ihren Wert, indem man die kleinste obere Schranke aller Werte in der SZK berechnet :-)3. • Gibt es eingehende Kanten, muss

In der BNF können Definitionen rekursiv erfolgen, z.B.: Variablen- Name in C, beginnend mit einem Buchstaben oder Unterstrich und bestehend aus Buchstaben, Unterstrichen

alles, was nicht public: ist, ist für den Kunden versteckt, kann also nicht über Mitgliedszugriff benutzt werden. Verstecken

htermi ::= ‘squiggle’ htermi | ‘squaggle’ htermi | ‘sqop’ | ‘transmogrify’ htermi htermi Sind die folgenden Terme in der Sprache. Kein

Punkte Sie können für die Aufgaben dieser Woche jeweils zwischen 0 und 2 Punkten bekommen.. Insgesamt also zwischen 0 und

Welche zusätzlichen Konzepte bei objektorientierten Sprachen zum Einsatz kommen, sehen wir uns näher an, wenn wir uns mit der Sprache Java beschäftigen... Hier sehen Sie den

Eine Datentypdeklaration heißt direkt rekursiv, wenn der definierte Typ in einer der Alternativen der Datentypdeklaration vorkommt. Wie bei Funktionen gibt es auch verschränkt

I Das Prinzip ist die Abstraktion vom Programmzustand durch eine logische Sprache; insbesondere wird die Zuweisung durch Substitution modelliert.. I Der Trick behandelt