RWD - Volker Lehnen - 2012 Responsive Web Design Werkzeug oder Paradigmen-Wechsel?
VU Software Paradigmen 716.060 / SS 2011
-
Upload
cynthia-strong -
Category
Documents
-
view
23 -
download
0
description
Transcript of VU Software Paradigmen 716.060 / SS 2011
Institute for Software Technology
VU Software Paradigmen716.060 / SS 2011
Alexander FelfernigInstitut für Softwaretechnologie
Institute for Software Technology 2
Lehrziele
Vermittlung von einführenden Kenntnissen des Compilerbaus (Analyse der Programmsyntax) und der Ausführungskonzepte von Programmiersprachen (Semantik)
Verstehen und Entwickeln von einfachen Compilern
Verstehen von Sprachsemantiken
Institute for Software Technology 3
Inhalt
Organisatorisches Aufbau der LV Benotung
Ziele und Inhalt
Institute for Software Technology 4
Organisatorisches
VU (3 Wochenstunden) Vorlesungsteil (2 Wochenstunden)
Jeweils Dienstag, 9:30-11:00 (s.t.), HS I12 Prüfungstermin: 28.6.2011 Nachklausur: Ende September 2011
Übungsteil (1 Wochenstunde) Jeweils Montag, 16:00-17:30 (s.t.), HS I1
(Verbundhörsaal; Ausnahme: 14.3. HS I12)
LV mit „immanentem Prüfungscharakter“
Institute for Software Technology 5
TermineDI, 1.3 9:30-11:00 HS I12 / s.t.
DI, 8.3. 9:30-11:00 HS I12 / s.t.
DI, 15.3. 9:30-11:00 HS I12 / s.t.
DI, 22.3. 9:30-11:00 HS I12 / s.t.
DI, 29.3. 9:30-11:00 HS I12 / s.t.
DI, 5.4. 9:30-11:00 entfällt.
DI, 12.4. 9:30-11:00 HS I12 / s.t.
DI, 10.5. 9:30-11:00 HS I12 / s.t.
DI 17.5. 9:30-11:00 HS I12 / s.t.
DI, 24.5. 9:30-11:00 HS I12 / s.t.
DI, 31.5. 9:30-11:00 HS I12 / s.t.
DI, 7.6. 9:30-11:00 HS I12 / s.t.
DI, 21.6. 9:30-11:00 HS I12 / s.t.
DI, 28.6. 8:00-11:00 Prüfung
Institute for Software Technology 6
Übung
Organisatorisches wird in der 1en Übungseinheit besprochen: MO, 7.3., 16.00 – 17.30 (s.t.), HS I1 (Verbundhörsaal)
Kontakt: [email protected]
Institute for Software Technology 7
Benotung
Note setzt sich zusammen aus: Anzahl der gelösten Aufgaben und deren
Bewertung (1/3) (jedes Übungsblatt > 50%) Schriftliche Prüfung
Bewertung (2/3) (> 50%)
Positive Note bei>50 %
Institute for Software Technology 8
Anmeldung
UE-Teilnahme
Endklausur
NachterminEndklausur
Positiv
PositivPositives Zeugnis
Negatives Zeugnis
Kein Zeugnis
JA
NEIN
NEIN
JA
JA
START
Abmeldung
Institute for Software Technology 9
Bei Fragen…
Vor der VU
Sprechstunde nach Vereinbarung
[ E-Mail: [email protected] ]
[ Telefon: DW 5710 ]
Institute for Software Technology 10
Unterlagen
Lehrveranstaltungsverlauf unter http://www.ist.tugraz.at/swp11.html
Folien Skriptum Übungsangaben
SWP Newsgroup @ TUGtu-graz.lv.swp
Buchempfehlungen
Institute for Software Technology 11
Ziele der LV
Sprachdefinition Syntax Semantik von Programmiersprachen
Konzepte von Programmiersprachen Auswertung von Programmen Struktur von Programmen
Entscheidungsprobleme
Institute for Software Technology 12
Grober Ablauf (I)
Syntax
BNFBNFSprachhierarchieSprachhierarchiePrinzipienPrinzipien
Institute for Software Technology 13
Grober Ablauf (II)
Semantik
Funktionale SprachenFunktionale SprachenImperative SprachenImperative SprachenLogikorientierte SprachenLogikorientierte SprachenOO SprachenOO Sprachen
Institute for Software Technology 14
Grober Ablauf (III)
Entscheidungsprobleme
HalteproblemÄquivalenzproblemHalteproblemÄquivalenzproblem
Institute for Software Technology 15
Grober Ablauf (IV)
Prog.sprachen-konzepte
ModulesModulesLibrariesLibrariesComponentsComponentsAspects,...Aspects,...
Institute for Software Technology 17
Klassifikation von Sprachen
Syntaktische Kriterien / Grammatik Wie wird ein Programm strukturiert? Ist die Sprache einfach zu lernen? Unterstützt eine Sprache die
Programmierung großer SW-Systeme? ...
Semantische Kriterien Auswertung von Programmen
Institute for Software Technology 18
Semantik? Bedeutung (der Konstrukte) einer
Sprache
„Die Bank von Peter.“
a = b + c
Zuweisung, Bedingung, Gleichung.
Sitzbank Geldinstitut
Institute for Software Technology 19
Bedeutung von Programmen
Was berechnet das obige SML-Programm ?
fun test (x,y) = if x=0 then 0else y + test(x-1,y);
Institute for Software Technology 20
Vergleich mit math. Definition
(Induktive) Definition der Multiplikation
test implementiert die Multiplikation!
otherwiseyxy
xifyx
)*)1((
)0(0*
Institute for Software Technology 21
Logik-orientierte Programme
Prädikatevater(X,Y) ... X ist der Vater von Y
Regeln
can_fly(X) :- bird(X). Anfragen
can_fly(papagei).
Institute for Software Technology
Prolog-Programmbeispiel
Formalisieren Sie mit Hilfe von vater das Prädikat grossvater(X,Y), das wahr ist, wenn X der Großvater von Y ist.
22
Institute for Software Technology
Prolog-Programmbeispiel
Formalisieren Sie mit Hilfe von vater das Prädikat grossvater(X,Y), das wahr ist, wenn X der Großvater von Y ist.
„X ist der Großvater von Y wenn X der Vater von Z ist und Z der Vater von Y.“
23
Institute for Software Technology 24
Prolog-Programmbeispiel
„X ist der Großvater von Y wenn X der Vater von Z ist und Z der Vater von Y.“
grossvater(X,Y) :- vater(X,Z),vater(Z,Y).
Institute for Software Technology 25
Anfragen
Anfrage grossvater(franz,otto) muß Ja (True/Yes) liefern.
vater(franz,karl).vater(karl,otto).
grossvater(franz,otto) ?
Institute for Software Technology 26
Semantik von Imperativen Sprachen?
Definition über die Interpretation der einzelnen Statements. Die Statements führen dabei zu Zustandsänderung des Programms.
void change(int x,y) {int z = x;x = y;y = z;
}
Institute for Software Technology 27
Semantik von Imperativen Sprachen?
Was passiert hier bei Auswertung der einzelnen Statements?
void change(int x,y) {int z = x;x = y;y = z;
}
Institute for Software Technology 28
Semantikfunktion
Interpretation eines Statements s[[s]]: env env
Environment: env: VAR D env(x)D
wobei x eine Variable ist und D der Wertebereich (Domain) von x ist.
Institute for Software Technology 29
Beispiel [[x = e]] () = ‘ mit
‘(y) = (y) für alle yx ‘(x) = [[e]] ()
[[x]] () = (x) für xVAR
{(x)=1, (y)=2}z = x;{(x)=1, (y)=2, (z)=1}x = y;{(x)=2, (y)=2, (z)=1}y = z;{(x)=2, (y)=1, (z)=1}
Institute for Software Technology 30
Entscheidungsprobleme
Gegeben: Frage Antwort: Ja oder Nein Halteproblem: Gibt es ein
Programm, daß für beliebige Programme entscheiden kann, ob diese für alle Eingaben halten?
Äquivalenzproblem: Gibt es ein Programm, daß die Äquivalenz zweier beliebiger Programme feststellen kann?
Institute for Software Technology 31
Programmiersprachen / Wieso?
Problemstellung
Teilprobleme
Verteilung
Teillösungen
Institute for Software Technology 32
Erstellung großer Software
Problemstellung für Einzelne zu groß
Teamarbeit
Aufteilung in Teile, die getrennt gelöst werden können
Zusammenführen der Einzellösungen zur Lösung des Gesamtproblems
Unterstützung in der Programmiersprache?
Institute for Software Technology 33
Funktionale Sichtweise
Beispiel: Interpreter für eine Sprache
Programm = Sequenz von Befehlen
Maschine hat Speicher und führt ein Programm aus.
Befehle verändern den Inhalt des Speichers.
Institute for Software Technology 34
Beispiel - Blocksichtweise
LD 1 2LD 2 3ADD 1 2
Maschine
1: 02: 03: 04: 0
Programm Speicher
Adresse Wert
LD x y .. Lädt y in Speicher xADD x y .. Addiert den Wert von
x und y. Das Resultat stehtin x.
Institute for Software Technology 35
Beispiel – Funktionale Sicht
ExecuteProgIN: Programm, SpeicherOUT: Speicher
ExecuteStmntIN: Statement, SpeicherOUT: Speicher
SetMemIN: Value,Adresse,SpeicherOUT: Speicher
GetMemIN: Adresse,SpeicherOUT: Value