VU Software Paradigmen / SS 2008
|
|
- Lothar Tiedeman
- vor 6 Jahren
- Abrufe
Transkript
1 VU Software Paradigmen / SS 2008 Stephan Gspandl Institut für Softwaretechnologie sgspandl@ist.tugraz.at Institute for Software Technology
2 Lehrziele Vermittlung von einführenden Kenntnissen des Compilerbaus (Analyse der Programmsyntax) und der Ausführungskonzepte von Programmiersprachen (Semantik). Schreiben und Verstehen von einfachen Compiler Verstehen von Sprachsemantiken und deren Unterschiede Institute for Software Technology 2
3 Inhalt Organisatorisches Aufbau der LVA Benotung Ziele und Inhalt Institute for Software Technology 3
4 Organisatorisches VU (3 Wochenstunden) Vorlesungsteil (2 Wochenstunden) Jeweils Dienstag, 9:30-11:00, HS I12 Prüfungstermin: Nachklausur: Ende September 2009 Übungsteil (1 Wochenstunde) LV mit immanenten Prüfungscharakter Institute for Software Technology 4
5 Termine DI, :00-13:30 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :30-11:00 HS I12 / s.t. DI, :00-11:00 Prüfung Institute for Software Technology 5
6 Übung Übungsgruppen (siehe TUGonline) Übungsaufgaben (5 Abgabewochen): Abgabe verschoben auf: Benotet werden: Anzahl der gelösten Beispiele Präsentation der Lösungen Programmierbeispiel 2 Abgabetermine (27.4. und 8.6., 12 Uhr, per ) Institute for Software Technology 6
7 Tutoriumstermine Voraussichtlich: Montag, Uhr und Uhr Dienstag, Uhr und Uhr Mittwoch, 8-9 Uhr, 9-10 Uhr Mittwoch, Uhr und Uhr Freitag, 9-10 Uhr und Uhr Wo? IST-Seminarraum und CityTower Institute for Software Technology 7
8 Programmierbeispiel Es sind Parser und Interpreter für arithmetische Ausdrücke über den Datentyp der Kommazahlen zu schreiben. Syntax: S ::= begin E ; E end ε E ::= id := A begin E ; E end if P then E else E fi A ::= ( R op R ) R P ::= ( R rop R ) R ::= id num := ist der Assignmentoperator. In- und Output des Programms sind aus diesem Grund Variablenenvironments. Nehmen Sie weiters an, dass es die Built-in Funktionen +, - (op) sowie die Prädikate <, = (rop) geben soll. Identifier (id) enthalten nur Kleinbuchstaben, während Zahlen (num) als Folge von Ziffern dargestellt werden. Führende Nullen sind nicht gestattet. Zahlen dürfen einen Dezimalpunkt enthalten. Gültige Zahlen wären: 1, 2, 0.3, 1.5, ,. Institute for Software Technology 8
9 Programmierbeispiel Die Aufgabe soll in 2 Teilen gelöst werden: 1. Schreiben Sie einen LL(1)-Parser in Java, der die gegebene Sprache parsen kann. Sie können für diesen Teil der Aufgabe einen Parser-Generator verwenden. Der Parser soll eine Fehlermeldung ausgeben, wenn ein Programm syntaktisch nicht richtig ist. (Abgabetermin: 27. April) 2. Schreiben Sie einen Interpreter für die gegebene Sprache, die Programme entsprechend verarbeiten kann. Dieser Interpreter soll Programme der Sprache einlesen und ein Ergebnis des Ausdrucks berechnen. Definieren Sie zuerst für diesen Zweck eine formale Semantik und prüfen Sie ob Ihr Interpreter diese einhält. (Abgabetermin: 8. Juni) Die Abgabe der Lösung erfolgt spätestens am letzten Tag der Abgabe per an Ihre Tutorin bzw. Ihren Tutor. Institute for Software Technology 9
10 Benotung Noten setzt sich zusammen aus: Anzahl der gelösten Aufgaben und deren Bewertung (20 %) Programmierbeispiel (20 %) Schriftliche Prüfung am 23.6., x Uhr, HS x (60 %) Positive Note bei >50 % Institute for Software Technology 10
11 START Anmeldung UE-Teilnahme Endklausur Positiv JA Positives Zeugnis NEIN JA Nachtermin Endklausur Positiv Abmeldung NEIN JA Kein Zeugnis Negatives Zeugnis Institute for Software Technology 11
12 Bei Fragen.. Vor der VU Sprechstunde Mo Uhr nach Vereinbarung [ sgspandl@ist.tugraz.at ] [ Telephon: DW 5475 ] Institute for Software Technology 12
13 Unterlagen Lehrveranstaltungsverlauf unter Folien Skriptum Übungsangaben SWP TUG tu-graz.lv.swp Buchempfehlungen Institute for Software Technology 13
14 Ziele der LVA Sprachdefinition Syntax Semantik von Programmiersprachen Konzepte von Programmiersprachen Auswertung von Programmen Struktur von Programmen Entscheidungsprobleme Institute for Software Technology 14
15 Grober Ablauf (I) Syntax BNF Sprachhierarchie Prinzipien Institute for Software Technology 15
16 Grober Ablauf (II) Semantik Funktionale Sprachen Imperative Sprachen Logikorientierte Sprachen OO Sprachen Institute for Software Technology 16
17 Grober Ablauf (III) Entscheidungsprobleme Halteproblem Äquivalenzproblem Institute for Software Technology 17
18 Grober Ablauf (IV) Prog.sprachenkonzepte Modules Libraries Components Aspects,... Institute for Software Technology 18
19 Institute for Software Technology Überblick
20 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 20
21 Semantik? Bedeutung (der Konstrukte) einer Sprache Die Bank von Peter. Sitzbank Geldinstitut Institute for Software Technology 21
22 Bedeutung von Programmen fun test (x,y) = if x=0 then 0 else y + test(x-1,y); Was berechnet das obige SML- Programm? Institute for Software Technology 22
23 Vergleich mit math. Definition x * y = y + (( x 0 if 1)* ( x y) = 0) otherwise (Induktive) Definition der Multiplikation test implementiert die Multiplikation! Institute for Software Technology 23
24 Logik-orientierte Programme Prädikate vater(x,y)... X ist der Vater von Y Regeln can_fly(x) :- bird(x). Anfragen can_fly(papagei). Institute for Software Technology 24
25 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. Institute for Software Technology 25
26 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. Institute for Software Technology 26
27 Prolog-Programmbeispiel grossvater(x,y) :- vater(x,z), vater(z,y). X ist der Großvater von Y wenn X der Vater von Z ist und Z der Vater von Y. Institute for Software Technology 27
28 Anfragen vater(franz,karl). vater(karl,otto). grossvater(franz,otto)? Anfrage grossvater(franz,otto) muß Ja (True/Yes) liefern. Institute for Software Technology 28
29 Semantik von Imperativen Sprachen? void change(int x,y) { } int z = x; x = y; y = z; Definition über die Interpretation der einzelnen Statements. Die Statements führen dabei zu Zustandsänderung des Programms. Institute for Software Technology 29
30 Semantik von Imperativen Sprachen? void change(int x,y) { } int z = x; x = y; y = z; Was passiert hier bei Auswertung der einzelnen Statements? Institute for Software Technology 30
31 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 31
32 Beispiel [[x = e]] (Θ) = Θ mit Θ (y) = Θ(y) für alle y x Θ (x) = [[e]] (Θ) [[x]] (Θ) = Θ(x) für x VAR {Θ(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 32
33 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 33
34 Programmiersprachen / Wieso? Problemstellung Verteilung Teilprobleme Teillösungen Institute for Software Technology 34
35 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 35
36 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 36
37 Beispiel - Blocksichtweise Programm LD 1 2 LD 2 3 ADD 1 2 LD x y.. Lädt y in Speicher x ADD x y.. Addiert den Wert von x und y. Das Resultat steht in x. Speicher 1: 0 Maschine 2: 0 3: 0 Adresse 4: 0 Wert Institute for Software Technology 37
38 Beispiel Funktionale Sicht ExecuteProg IN: Programm, Speicher OUT: Speicher ExecuteStmnt IN: Statement, Speicher OUT: Speicher GetMem IN: Adresse,Speicher OUT: Value SetMem IN: Value,Adresse,Speicher OUT: Speicher Institute for Software Technology 38
39 Beispiel SML Programm fun executeprog (p,m) = if empty(p) then m else executeprog(rest(p), executestmnt(first(p),m)); fun executestmnt (s,m) = if loadstmnt(s) then executeload(s,m) else if addstmnt(s) then executeadd(s,m) else errorhandling();... Institute for Software Technology 39
40 Beispiel SML (cont.) Statement... 3-tupel (Name,Arg1,Arg2) Memory.. Liste von 2 Tupel (Addr,Val) fun loadstmnt (s,a,v) = (s== LD ); fun executeload ((s,a,v),m) = setmem (v,a,m); fun setmem (v,a,m) = if empty(m) then m else if #1(first(m))=a then (a,v)::rest(m) else first(m)::(setmem(v,a,rest(m))); Institute for Software Technology 40
41 Beispiel - Zusammenfassung Funktion kann in Teilfunktionen aufgeteilt werden Getrennte Korrektheitsüberprüfung Verständliche Programme Problemlösung wird vereinfacht Einfachere Fehlersuche Re-Use Institute for Software Technology 41
SWP Funktionale Programme
SWP Funktionale Programme Berhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie {bernhard.aichernig,alexander.felfernig}@ist.tugraz.at Institute for Software Technology Inhalt Einfache
Berechenbarkeit und Komplexität Vorlesung 11
Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.
Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
Interpreter - Gliederung
Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache
Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002
1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen
Vorlesung Programmierung
- 1 - Vorlesung Programmierung Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt es?
Semantik von Programmiersprachen SS 2017
Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Algorithmen und Berechnungskomplexität I
Algorithmen und Berechnungskomplexität I Prof. Dr. Institut für Informatik Wintersemester 2013/14 Organisatorisches Vorlesung Dienstag und Donnerstag, 12:30 14:00 Uhr (HS 1) Übungen 16 Übungsgruppen Anmeldung
Die Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
Definition von LR(k)-Grammatiken
Definition von LR(k)-Grammatiken Ziel: Ein Lookahead von k soll ausreichen um entscheiden zu können, welche Regel angewendet werden muss. Definition: FIRST k (w 1 w n ):= w 1 w k, falls n k, w 1 w n, sonst.
Funktionale Programmierung
Schleifen 1 Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 3 Teil I Jedem Anfang wohnt ein Zauber inne 4 Über mich Diplom in Informatik in Saarbrücken
Mathematik: Ausbildung im ersten Semester
Mathematik: Ausbildung im ersten Semester Mathematik 0 (Empfohlene Lehrveranstaltung) Mathematik I Vorlesung (Pflichtlehrveranstaltung) Mathematik I Übungen (Pflichtlehrveranstaltung) Mathematik I Tutorium
Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68
Klassen in Java Stephan Kleuker 68 Klassen in Java (Syntax) (1/3) class Datum { int tag; int monat; int jahr; } Java hat Schlüsselworte (z. B. class), diese dürfen z. B. nicht als Variablennamen genutzt
Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2014 0. ORGANISATORISCHES UND ÜBERBLICK Theoretische Informatik (SoSe 2014) 0. Organisatorisches und Überblick 1 / 16
VU Software Paradigmen / SS 2015
VU Software Paradigmen 716.060 / SS 2015 Stephan Frühwirt Institute for Software Technology i S T Institute for Software Technology Stephan Frühwirt 1 Inhalt Beweise in EXP 1. Beweise in EXP 2. 3. Abgabe
Grundlagen der Programmiersprachen
GPS-0-1 Grundlagen der Programmiersprachen Prof. Dr. Uwe Kastens Sommersemester 2016 Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 001 Anfang Begrüßung Ziele GPS-0-2 Die Vorlesung soll Studierende
Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1
Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2
Zusammenfassung. Stephan Gspandl Institut für Softwaretechnologie Institute for Software Technology
Zusammenfassung Stephan Gspandl Institut für Softwaretechnologie sgspandl@ist.tugraz.at SYNTAX 2 Syntax Struktur einer Sprache Werkzeug zur Beschreibung aller möglichen Sätze: Grammatik Tupel (V N,V T,S,Φ)
SWP Logische Programme
SWP Logische Programme Alexander Felfernig, Stephan Gspandl Institut für Softwaretechnologie {alexander.felfernig,sgspandl}@ist.tugraz.at Institute for Software Technology Inhalt Motivation Logische Programme
Vorlesung Programmierung
- 1 - Vorlesung Programmierung Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt es?
Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1
Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1 Einführende Gentle-Programme Dieses Papier soll die Syntax und Semantik (die Schreibweise und Bedeutung) von einfachen Gentle Programmen anhand
Funktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation
Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation http://pp.info.uni-karlsruhe.de/lehre/ss2011/tba/ LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT SS Universität 2011 desdenis
Java I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
Sprachen und Programmiersprachen
Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten
GTI. Hannes Diener. 18. Juni. ENC B-0123,
GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.
Multiparadigmen- Programmiersprachen
Multiparadigmen- Programmiersprachen Martin Grabmüller magr@cs.tu-berlin.de Fachgebiet Übersetzerbau und Programmiersprachen Fakultät IV Elektrotechnik und Informatik Technische Universität Berlin Multiparadigmen-Programmiersprachen
Programmieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
Kapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.
Methoden zur Interpretation LISPähnlicher Programmiersprachen Seminarvortrag 20.01.2017 FACHBEREICH 9 TOBIAS STUMM MATR.-NR. 4012917 1 Inhalt Motivation Lisp > Definition > Scheme Interpreter > Definition
Vorsemesterkurs Informatik
Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung
Kapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
Vorlesung Programmierung
- 1 - Vorlesung Programmierung n Inhalt der Vorlesung l Was ist ein Programm? l Was sind grundlegende Programmierkonzepte? l Wie konstruiert (entwickelt) man ein Programm? l Welche Programmier-Paradigmen
Softwareparadigmen EXP-Compiler Dokumentation v1.1 ( )
Softwareparadigmen EXP-Compiler Dokumentation v1.1 (8.5.2016) Stephan Frühwirt Inhaltsverzeichnis 1 Aufbau, Tools und Ausführung 2 1.1 Ausführung....................................... 2 2 Sprachdefinition
Ausarbeitung des Interpreter Referats
Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE3-Syntaxdiagramme (Stand 05.11.2010) Aufgabe 1: Entwickeln Sie Regeln zur Übersetzung von EBNF in Syntaxdiagramme. Aufgabe 2: Eine Zahl ist entweder
Lexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten
Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Aufgabenbeschreibung 29. Juli 2011 1 Einleitung und Motivation Der Parser-Generator Antlr [Par07] bietet die Möglichkeit, die Auswahl
Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme
Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
Welche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8
Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
Allgemeine Informatik 1
Allgemeine Informatik 1 Veranstalter: Prof. Dr. Johannes Fürnkranz: Raum S202/E304, Sprechstunde: Mittwochs 11.00 12.00, Email: fuernkranz@informatik.tu-darmstadt.de Sekretariat: Mo-Fr 9.00-12.00 Übungsleitung,
Einführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens
Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine WWW
Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de
Compilerbau (1 KU) SS 2011
Compilerbau (1 KU) 716.077 SS 2011 Univ.-Prof. Dr. Franz Wotawa, Birgit Hofer Institut für Softwaretechnologie 1 Übungsmodus Aufgabenblätter Inhalt dieser LV-Einheit it Programmieraufgabe Vorstellung Programmieraufgabe
Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung
Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität
Vorlesung Programmieren
Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache
2 Syntax versus Semantik
2 Syntax versus Semantik There are 10 types of people: those that understand binary, and those that don t. Bisher haben wir lediglich die Syntax von Sprachen sowie verschiedene Methoden zu ihrer Spezifikation
3. Grundanweisungen in Java
3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen
Mathematik: Ausbildung im zweiten Semester
Mathematik: Ausbildung im zweiten Semester Mathematik II Vorlesung (Pflichtlehrveranstaltung) Mathematik II Übungen (Pflichtlehrveranstaltung) Mathematik II Tutorium (Empfohlene Lehrveranstaltung) Mathematik
Intensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
Einführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
Funktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
Vorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010
SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4 R. C. Ladiges, D. Fast 10. Juni 2010 Inhaltsverzeichnis 4 Aufgabe 4 3 4.1 Sich mit dem Programmpaket vertraut machen.................... 3 4.1.1 Aufgabenstellung.................................
1 Funktionale vs. Imperative Programmierung
1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.
Programmier-Projekt (cs108)
Frühjahrsemester 2013 Programmier-Projekt (cs108) Prof. Dr. Heiko Schuldt Termine Vorlesung: Beginn: Donnerstag 28.02.2013 Termine: Donnerstag 10 12 Uhr Kollegienhaus, Hörsaal 114 Freitag 10 12 Uhr Kollegienhaus,
TU Kaiserslautern. Übungsblatt 2: Software-Entwicklung 1 (WS 2017/18) Hinweise zu Einreichaufgaben. Hinweise zu den Übungen
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Übungsblatt 2: Software-Entwicklung 1 (WS 2017/18) Hinweise zu Einreichaufgaben
SWP Prüfungsvorbereitung
20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c
Funktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c
3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?
3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welches der folgenden klassischen Probleme der Informatik ist entscheidbar? A. Gegeben eine kontextfreie Grammatik G. Gibt es ein
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Theorembeweiserpraktikum SS 2016
Institut für Programmstrukturen und Datenorganisation Lehrstuhl Programmierparadigmen Am Fasanengarten 5 76131 Karlsruhe http://pp.ipd.kit.edu/ Theorembeweiserpraktikum SS 2016 http://pp.ipd.kit.edu/lehre/ss2016/tba
JAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
Die Formeln von A sind Ausdrücke, die aus ganzen Zahlen, Variablen, Addition und Multiplikation gebildet werden. Hier ist ein Beispiel:
Kapitel 3 Syntax und Semantik In diesem Kapitel führen wir grundlegende Konzepte für logische Sprachen ein. Wir tun dies am Beispiel einer Sprache A, die arithmetische Ausdrücke als Formeln hat (zum Beispiel
C- Kurs 04 Anweisungen
C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm
Grundlagen der theoretischen Informatik
Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)
Inhalt Kapitel 5: Syntax
Inhalt Kapitel 5: Syntax 1 Syntax und Semantik 2 Formale Sprachen 3 Backus-Naur Form 4 Chomsky Grammatik 5 Reguläre Ausdrücke 6 Endliche Automaten 180 Syntax und Semantik Syntax Syntax: Festlegung des
Programmieren in Java
Programmieren in Java Vorlesung 07: Parsen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 32 Inhalt Vorlesungsüberblick
3. Methodik der Programmerstellung
3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms
Einführung in die Informatik
Einführung in die Informatik Einleitung Organisatorisches, Motivation, Herangehensweise Wolfram Burgard 1.1 Vorlesung Zeit und Ort: Mittwochs 14.00 16.00 Uhr Gebäude 101 HS 00-026 Informationen zur Vorlesung,
Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren?
Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Zur Diplomarbeit: Eignet sich die Skriptsprache Python
Schnelle Multiplikation
Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle
Konzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
Javakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -
2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell
Grundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de
Kapitel 1: Informationsverarbeitung durch Programme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung
Programmierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 12 (Kapitel 13)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 12 (Kapitel 13)
Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
7. Syntax: Grammatiken, EBNF
7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik
Abschnitt 4: Daten und Algorithmen
Abschnitt 4: Daten und Algorithmen 4. Daten und Algorithmen 4.1 4.2 Syntaxdefinitionen 4.3 Eigenschaften von Algorithmen 4.4 Paradigmen der Algorithmenentwicklung Peer Kröger (LMU München) Einführung in
Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung
VU Software Paradigmen / SS 2014
VU Software Paradigmen 716.060 / SS 2014 Thorsten Ruprechter ruprechter@tugraz.at Institute for Software Technology 1 Organisatorisches Ausgabe: 25.03. (heute) Fragestunde: 22.04. Abgabe: 29.04 (ausgedruckt)
Einführung in die Informatik
Einführung in die Informatik Einleitung Organisatorisches, Motivation, Herangehensweise Wolfram Burgard 1.1 Vorlesung Zeit und Ort: Mittwochs 16.00 18.00 Uhr Gebäude 101 HS 00-036 Informationen zur Vorlesung,
Grundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
Inhalt. SWP Logische Programme. Motivation. Formalisierung. Wissensbasis. Bsp (Bibel)Verwandtschaften. Motivation Sprache LP
Inhalt SWP Logische Programme Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Motivation Sprache LP Resolution Unifikation Datenbanken und logische Programme Semantik 2 Motivation Bsp
Entwicklungsumgebung für die Laborübung
Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung
Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
Informatik IV SS 2006 Institut für Informatik, Abt. I
Informatik IV SS 2006 Institut für Informatik, Abt. I Christel Baier, Sascha Klüppelholz, Jörn Ossowski, Christiane Beyer, Stefan Dombrowski, Li Le, Andreas Lenerz, Dennis Mitzel, Rebecca Reiffenhäuser,
EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217
EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?
Programmierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold s.berktold@tum.de PRÄSENZAUFGABEN Heutige Übersicht