Esterel, Philipp Schröter, Gregor Barth Institut für Informatik. Esterel. Seminar über Programmiersprachen SS13

Größe: px
Ab Seite anzeigen:

Download "Esterel, Philipp Schröter, Gregor Barth Institut für Informatik. Esterel. Seminar über Programmiersprachen SS13"

Transkript

1 Esterel, Philipp Schröter, Gregor Barth Institut für Informatik Esterel Seminar über Programmiersprachen SS13

2 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 2

3 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 3

4 Einleitung Esterel ist ein deterministische, nebenläufige und imperative Programmiersprache Unterschied zu anderen nebenläufigen Programmiersprachen: verbindliche Aussagen zum zeitlichen Ablauf 4

5 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 5

6 Reaktive Systeme Definition durch Harel und Pnueli Softwaresysteme, die in ständigem Austausch mit Umgebung stehen Reagiert auf Eingaben mit Ausgaben 6

7 Reaktive Systeme Eingabe Interface Ausgabe Reaktiver Kernel Datenverarbeitung 7

8 Reaktive Systeme Eingabe Interface Ausgabe Reaktiver Kernel Datenverarbeitung 8

9 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 9

10 Entstehung Von Jean-Paul Marmorat und Jean-Paul Rigault entwickelt Unzufrieden mit Behandlung von Zeit Unterstüzung von Gérard Berry, Sabine Moisan und Jacques Camerini Einfluss durch Structural Operational Semantics von Gordon Plotkin Erster Prototyp: Algorithmus, der regulären Ausdruck in Automaten umwandelt Anschließend Umwandlung in endlichen Automaten Überarbeitung führte zum zweiten Esterel Compiler Wurde schon in Industrie und universitären Rahmen verwendet 10

11 Entstehung Dritte Version des Esterel Compiler führte Bit-Sets als Status und Integer als Ausnahmen ein Große Teile des Bytecodes sind seit dieser Zeit unverändert Schwäche bei großen Programmen Explosion des Zustandsraums Entwicklung der vierten Version widmete sich dieser Explosion Inspiration zur Lösung durch Netzlisten Verbot zyklischer Programme Fünfte Version schränkte Verbot wieder ein Sechste Version ist in Entwicklung 11

12 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 12

13 Basic Esterel Esterel bietet die meisten der aus anderen Programmiersprachen bekannten Anweisungen Trotzdem keine vollständige Programmiersprache angewiesen auf Hostsprache 13

14 Basic Esterel Programme in Esterel bestehen aus Modulen module Mod : Declaration body 14

15 Basic Esterel Variablen var x : type in Statement1 end var Signale signal S in Statement end signal S (combine type with comb) in end Statement 15

16 Basic Esterel Signale sind in Esterel essentiell Jederzeit definierter Zustand: present absent Anwesenheit prüfen durch: present (x) then statement1 else statement2 present (x) then statement present (x) else statement Senden durch ohne und mit Wert emit S emit S(integer) 16

17 Basic Esterel Kontrollstrukturen Bedingte Verzweigung if Expression then Statement1 else Statement2 Watchdog do Statement watching Signal 17

18 Basic Esterel Schleifen loop end Statement 18

19 Basic Esterel Ausnahmebehandlung trap T in Statement if Expression then exit T end 19

20 Basic Esterel Ablaufkontrolle nothing Nulloperation halt Ende der Programmausführung 20

21 Basic Esterel Parallelität Statement1 Statement2 21

22 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 22

23 Plain Esterel Erweiterung von Basic Esterel 3 neue Funktionalitäten Signalinterfaceerweiterung Befehlserweiterung Copymodule 23

24 Plain Esterel - Signalinterfaceerweiterung strenge Trennung zwischen Input- und Output-Signalen wird gelockert ein Signal kann beide Rollen erfüllen inputoutput BUS_REQUEST 24

25 Plain Esterel - Signalinterfaceerweiterung Sensoren repräsentieren externe Geräte Signal gilt als konstant präsent Können nur gelesen werden sensor DISTANCE (METER) 25

26 Plain Esterel - Befehlserweiterung Neue Befehle werden zur Verfügung gestellt Bestehende Befehle werden in syntaktisch äquivalente einfachere Formen überführt 26

27 Plain Esterel - Ausnahmebehandlung Trap aus Basic Esterel funktioniert nur als Abbruchbedingung Erweiterung erlaubt Handler für spezifische Exit-Events trap ALARM (combine integer with +), ZERO_DIVIDE, TERMINATE in stat handle ALARM do stat1 handle ZERO_DIVIDE do stat2 end 27

28 Plain Esterel - Kopfgesteuerte Schleifen Kombination von Schleife und Trap Das Statement wird exp Mal ausgeführt, wie in einer klassischen, vorprüfenden Schleife repeat exp times end statement 28

29 Plain Esterel - Temporäre Schleifen Aktionen werden in zeitlich genau abgestimmten Abständen ausgeführt Nach jedem eingehenden Signal wird stat ausgeführt every S do stat end stat wird sofort und nach jedem Signal ausgeführt loop stat each S 29

30 Plain Esterel - Vereinfachungen Basic Esterel: Programm wartet bis ein bestimmtes Signal eintrifft do halt watching Signal Vereinfacht in Plain Esterel await Signal do statement Warten auf unterschiedliche Signale await case SECOND do stat, case 2 METER do stat, end 30

31 Plain Esterel - Copymodule Erlaubt es bereits gecodete Module aufzurufen copymodule M Verschachtelung ist erlaubt Der Aufruf wird direkt durch den aufzurufenden Code ersetzt 31

32 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 32

33 Hostsprache Esterel keine vollständige Programmiersprache Hostsprache notwendig Esterel übernimmt Zeitkontrolle und Programmfluss und -ablauf Hostsprache übernimmt Datenverwaltung und aufwendige Berechnungen 33

34 Hostsprache Esterel Quellcode Esterel Compiler Ausführbarer Code Hostsprache Quellcode Hostsprache Compiler 34

35 Hostsprache Hostsprache kann Signale an Esterel senden, Deklaration in Esterel: input S (type) Senden an Hostsprache durch emit Vermeidung von Kollisionen, deswegen: output O (combine t with comb) und function comb( t, t ) : t 35

36 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 36

37 Semantik Drei Semantiken von Esterel: Intuitive Semantik Verarbeitung von Eingabeereignissen und zeitlicher Ablauf Formale Verhaltenssemantik Definition der Antworten auf Eingaben Ausführungssemantik Korrektheit der Reaktionen 37

38 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 38

39 Intuitive Semantik - Reaktion Eingabehistorie Eingabeereignis Verarbeitung Ausgabehistorie Ausgabeereignis 39

40 Intuitive Semantik Annahmen zum zeitlichen Ablauf: 1. Beginn hängt vom Kontext ab 2. Innere Struktur legt Terminierung fest 1. Sofortige Terminierung, wenn Beginn und Ende im gleichen Moment 3. Verlassen von trap!= Nimmt sich Zeit, wenn Beginn und Ende nicht im gleichen Moment 4. Externe Terminierung oder Unterbrechung verhindert weitere Ausführung oder Terminierung 40

41 Intuitive Semantik Module starten bei Erhalt eines Eingabeereignisses, keine Terminierung nothing tut nichts und terminiert sofort halt tut ebenfalls nichts, terminiert aber nicht Prozeduren aktualisieren den Speicher und terminieren emit sendet Wert und terminiert Bei Sequenzen startet die erste Anweisung, wenn die Sequenz startet, danach wird nach und nach abgearbeitet trap kann Ablauf unterbrechen Endlosschleifen verhalten sich wie ihr Rumpf 41

42 Intuitive Semantik Bei verzweigten Bedingungen wird die Bedingung geprüft, Verhalten danach ist gleich des gewählten Zweigs present verhält sich wie eine verzweigte Bedingung watching wartet bis Signal präsent ist, kann unterbrochen werden Parallele Anweisungen starten zeitgleich, jede kann unterbrechen und weitere Ausführung beenden Es wird immer die äußerste trap verlassen exit beendet markierten Bereich, aber nicht sich selbst Deklarationen definieren Signale und Variablen mit Initialwert und verhalten sich danach wie Rumpf 42

43 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 43

44 Formale Verhaltenssemantik Ereignis E = S 1 (v 1 ) * S 2 (v 2 ) * * S n (v n ), n 0 oder ε S 1...n ϵ E Falls S(v) = k S(v) ϵ E E = E 1 * E 2 S(v 1 ) E 1 S E 2 S(v 1 ) E S(v 2 ) E 2 S E 1 S(v 2 ) E S(v 1 ) E 1 S(v 2 ) E 2 S(v 1 *s v 2 ) E ( Kombinationsfuntkion) S E 1 S E 2 S E E * ε = E Vollständiges Ereignis Ê = S + (v) S - (v) 44

45 Formale Verhaltenssemantik Historie H = E 0, E 1,, E n, Endlich E[n] Vollständige Historie H = Ê 0, Ê 1,, Ê n, Zustände der Signale der Ereignisse während Reaktion unveränderlich Wert eines Signals ist aktueller Wert, vorheriger oder (falls nicht vorgekommen) 45

46 Formale Verhaltenssemantik E 0 E 1 E 2 E 3 H S 1 (0) S 2 (1) ε S 1 (2) * S 2 (2) Ê 0 Ê 1 Ê 2 Ê 3 H S 1+ (0) * S 2- ( ) S 1- (0) * S 2- (1) S 1- (0) * S 2- (1) S 1+ (2) * S 2+ (2) 46

47 Formale Verhaltenssemantik Modulableitung P = P 0 O 0 Î 0 > P 1 O 1 Î 1 > P 2 module P: input SECOND; output BEEP; await 21 SECOND do emit BEEP end; halt 47

48 Formale Verhaltenssemantik Induktionsregeln <stat, p> E,b,T > <stat', p'> Ê Speichermodifikation leerer Speicher Ø Schreiben: p.(x = v')[x v] = p.(x = v) ( bereits im Speicher) p.(y = v')[x v] = p[x v].(y = v') ( nicht im Speicher) 48

49 Formale Verhaltenssemantik Beispiele <halt, p> ͼ,ff, > <halt, p> <exit T, p> ͼ,ff,(t) > <halt, p> Ê 49

50 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 50

51 Ausführungssemantik Mögliche Zustände des Speichers S = v: noch nicht geschrieben, v = p i-1.(s) S = v: bereits geschrieben, v = p i.(s), weitere Schreibvorgänge möglich kann nicht gelesen werden S + = v: bereits geschrieben, keine weiteren Schreibvorgänge,?S = v S - = v: noch nicht geschrieben, keine Schreibvorgänge möglich,?s = v 51

52 Ausführungssemantik Lesen des Speichers θ (S x = v)(s) = v, nur wenn x ϵ {+, -} Schreiben in den Speicher Θ.(S v) Θ.(S )[S v'] = Θ.(S = v') Θ.(S )[S v'] = Θ.(S = v *s v') 52

53 Ausführungssemantik Aktionsregeln Senden < exp, p, Θ > v < emit S (exp), p, Θ + > < nothing, p, Θ[S v] > Bedingte Verzweigung S + ϵ Θ < present S then statestat 1 else state 2 end, p, Θ > <stat 1, p, Θ > ϵ Θ < present S then statestat 1 else state 2 end, p, Θ > <stat 2, p, Θ > Schleife < stat, p, Θ > < stat, p, Θ > < loop stat end, p, Θ > <stat; loop stat end, p, Θ > S 53

54 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 54

55 Codebeispiel Armbanduhr als Beispiel für typisches reaktives System Input durch Timer und Buttons Anknüpfung an Programm in C 55

56 Codebeispiel Grundstruktur eines Moduls erstellen module WATCH: end module 56

57 Codebeispiel Anbinden der Hostsprache, indem Typen und Konstanten definiert werden module WATCH: type TIME; constant INITIAL_TIME : TIME; constant ONE_SECOND, ONE_MINUTE, ONE_HOUR : TIME; end module 57

58 Codebeispiel Prozeduren der Hostsprache und deren Input definieren module WATCH: type TIME; constant INITIAL_TIME : TIME; constant ONE_SECOND, ONE_MINUTE, ONE_HOUR : TIME; procedure INCREMENT (TIME) (TIME), RESET_SECONDS (TIME) (); end module 58

59 Codebeispiel Relationen definieren Alle externen Signale sind exklusiv module WATCH: type TIME; constant INITIAL_TIME : TIME; constant ONE_SECOND, ONE_MINUTE, ONE_HOUR : TIME; procedure INCREMENT (TIME) (TIME), RESET_SECONDS (TIME) (); input SECOND, SET_HOUR, SET_MINUTE; output TIME: TIME; relation SECOND # SET_HOUR # SET_MINUTE; end module 59

60 Codebeispiel Ausgangszeit in der Variable TIME speichern TIME konstant emittieren module WATCH: type TIME; constant INITIAL_TIME : TIME; constant ONE_SECOND, ONE_MINUTE, ONE_HOUR : TIME; procedure INCREMENT (TIME) (TIME), RESET_SECONDS (TIME) (); input SECOND, SET_HOUR, SET_MINUTE; output TIME: TIME; relation SECOND # SET_HOUR # SET_MINUTE; var TIME := INITIAL_TIME : TIME in emit TIME (TIME); end module 60

61 Codebeispiel Main Loop fungiert als Switch es wird konstant auf eingehende Signale gelauscht und auf diese reagiert loop await case SECOND do call INCREMENT (TIME) (ONE_SECOND) case SET_MINUTE do call RESET_SECONDS (TIME) (); call INCREMENT (TIME) (ONE_MINUTE) case SET_HOUR do call INCREMENT (TIME) (ONE_HOUR) end await; emit TIME (TIME) end loop end var 61

62 Codebeispiel Increment-Funktion in C INCREMENT(tp, t) TIME *tp; TIME t; { tp->seconds += t.seconds; if (tp->seconds >= 60){ tp->seconds -= 60; tp->minutes++; } tp->minutes += t.minutes; if (tp->minutes >= 60){ tp->minutes -= 60; tp->hours++; } tp->hours += t.hours; if (tp->hours > 12){ tp->hours -= 12; tp->am_pm_flag =!tp->am_pm_flag; } } 62

63 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 63

64 Fazit Durchdacht und für Zweck geeignet Ausführlicher theoretischer Teil Ziele durch Annahmen bezüglich Zeit erreicht Verbreitung fragwürdig Im vorgesehenen Anwendungsbereich sinnvoll 64

65 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 65

66 Compiler Aktueller Compiler für Windows, Linux und Solaris CEC Compiler von der University of Columbia Alle Compiler werden als Quellcode bereitgestellt Keiner der offiziellen Compiler war frei von gravierenden Fehlern CEC Compiler ist unter Windows lauffähig Benutzerfreundlichkeit für nichtkommerzielle Anwender ist sehr gering 66

67 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain Esterel 5. Hostsprache 6. Semantik 1. Intuitive Semantik 2. Formale Verhaltenssemantik 3. Ausführungssemantik 7. Codebeispiel 8. Compiler 9. Fazit 10. Diskussion 67

68 Diskussion Wie groß wäre der Vorteil, wenn überhaupt, wenn Esterel eine vollwertige Programmiersprache wäre? Eindruck von Esterel? Wo sehen sie den Vorteil von der Verwendung von Esterel? Können zeitsensitive Entscheidungen wie im Codebeispiel nicht auch in C implementiert werden? 68

Esterel. Synchronous Programming Language

Esterel. Synchronous Programming Language Esterel Synchronous Programming Language Inhalt Abstract... 3 1. Einleitung... 4 2. Entstehung... 5 3. Zeiteinteilung... 6 4. Struktur und Aufbau... 6 4.1 Module... 6 4.2 Zustände... 7 4.3 Kontrollstrukturen...

Mehr

Modellierung von Echtzeitsystemen

Modellierung von Echtzeitsystemen Modellierung von n Reaktive Systeme Werkzeuge: SCADE, Esterel Studio 71 Klausurtermin Für Studenten, die einen Schein benötigen, wird am Ende der Vorlesung eine schriftliche Klausur angeboten. Stoff der

Mehr

Die Programmiersprache Esterel

Die Programmiersprache Esterel Freie Universität Berlin Seminar für Programmiersprachen Wintersemester 14/15 Die Programmiersprache Esterel Zell, Christopher zell.christopher@fu-berlin.de 21. November 2014 1 Einleitung Die folgende

Mehr

Seminar Synchrone Programmiersprachen

Seminar Synchrone Programmiersprachen Die synchrone, imperative Sprache Design, Semantik und Implementierung ESTEREL Seminar Synchrone Programmiersprachen Samuel Eickelberg Johannes Dahlke Freie Universität Berlin, Institut für Informatik,

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

An Overview of the Signal Clock Calculus

An Overview of the Signal Clock Calculus An Overview of the Signal Clock Calculus, Jennifer Möwert Inhaltsverzeichnis Synchrone Programmiersprachen Clock Calculus Synchrone Paradigmen SLTS Clocks SIGNAL Definitionen Endochrony Bäume, Jennifer

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

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

Mehr

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales

Mehr

Konzepte von Programmiersprachen

Konzepte von Programmiersprachen Konzepte von Programmiersprachen Kapitel 3: Ausdrücke Phillip Heidegger Universität Freiburg, Deutschland SS 2009 Phillip Heidegger (Univ. Freiburg) Konzepte von Programmiersprachen KvP 1 / 17 Inhalt Let

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

Mehr

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 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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration: Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,

Mehr

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 - n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Interpreter - Gliederung

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

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Ü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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

Kapitel 3: Anweisungen

Kapitel 3: Anweisungen Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -66 Kapitel : Anweisungen Bedingte Anweisungen (Verzweigungen) Wiederholte Anweisungen (Schleifen) Abweisschleife Durchlaufschleife

Mehr

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49) Anweisungen Eine Anweisung ist eine in einer beliebigen Programmiersprache abgefaßte Arbeitsvorschrift für einen Computer. Jedes Programm besteht aus einer bestimmten Anzahl von Anweisungen. Wir unterscheiden

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Ü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

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

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.

Mehr

Java Anweisungen und Ablaufsteuerung

Java Anweisungen und Ablaufsteuerung Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

Einfache Bedingte Ausführung

Einfache Bedingte Ausführung Kontrollstrukturen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

1 Funktionale vs. Imperative Programmierung

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.

Mehr

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Informatik I Übung, Woche 40

Informatik I Übung, Woche 40 Giuseppe Accaputo 1. Oktober, 2015 Plan für heute 1. Nachbesprechung Übung 2 2. Vorbesprechung Übung 3 3. Zusammenfassung der für Übung 3 wichtigen Vorlesungsslides Informatik 1 (D-BAUG) Giuseppe Accaputo

Mehr

BKTM - Programmieren leicht gemacht.

BKTM - Programmieren leicht gemacht. BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 3: Anweisungen, Blöcke und Programmfluss Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

Grundlagen der Theoretischen Informatik: Übung 10

Grundlagen der Theoretischen Informatik: Übung 10 Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f

Mehr

Kapitel 4. Kontrollstrukturen

Kapitel 4. Kontrollstrukturen Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen

Mehr

Unterprogramme. Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen:

Unterprogramme. Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen: Unterprogramme Dr. Wolfgang Günther Unterprogramme 2 Unterprogramme Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen: Prozeduren

Mehr

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language 7. Konkretisierungen im Feindesign 7.1 Zustandsdiagramme 7.2 Object Constraint Language 173 Verfeinerte Modellierung Durch die verschiedenen Sichten der Systemarchitektur wird der Weg vom Anforderungsmodell

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration

Mehr

Semantik von Programmiersprachen SS 2017

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

Mehr

Javakurs für Anfänger

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

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:

Mehr

Reactive C - Eine Erweiterung von C zur Programmierung von reaktiven Systemen

Reactive C - Eine Erweiterung von C zur Programmierung von reaktiven Systemen Reactive C - Eine Erweiterung von C zur Programmierung von reaktiven Systemen Markus Rudolph Institut für Informatik Freie Universität Berlin Takustr. 9 14195 Berlin rudolph@mi.fu-berlin.de Abstract: Diese

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Kapitel 04: Was ist ein Algorithmus? Software Entwicklung 1

Kapitel 04: Was ist ein Algorithmus? Software Entwicklung 1 Kapitel 04: Was ist ein Algorithmus? Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller In diesem Abschnitt beschäftigen wir uns dem Begriff des Algorithmus, der in der Informatik eine

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

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

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND

Mehr

Kapitel 4. Kontrollstrukturen

Kapitel 4. Kontrollstrukturen Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen

Mehr

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen Agenda für heute, 26. März, 2009 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative

Mehr

Programmablaufpläne. Vorgehen zur Erstellung eines lauffähigen C-Programms

Programmablaufpläne. Vorgehen zur Erstellung eines lauffähigen C-Programms Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms Dieser Leitfaden soll eine Einführung in das Erstellen von Programmablaufplänen (kurz: PAP) geben. PAP erleichtern das Erstellen

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

Was ist ein Algorithmus? Software Entwicklung 1

Was ist ein Algorithmus? Software Entwicklung 1 Was ist ein Algorithmus? Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller In diesem Abschnitt beschäftigen wir uns dem Begriff des Algorithmus, der in der Informatik eine zentrale Rolle

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der Java-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 3: Kontrollstrukturen Einfache Anweisungen Anweisungsblöcke Steuerung

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Der Begriff des Algorithmus Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 48 Der Begriff

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Informatik I Übung, Woche 40

Informatik I Übung, Woche 40 Giuseppe Accaputo 2. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

TI-Basic. Programme und Funktionen

TI-Basic. Programme und Funktionen Dieser Artikel behandelt die Programmiersprache für TI-Taschenrechner. Die Programmiersprache für den TI 99/4A Heimcomputer findet sich unter TI BASIC (TI 99/4A). ist der inoffizielle Name einer Programmiersprache,

Mehr

4 Schleifen -= Entstanden unter Excel 2003 =-

4 Schleifen -= Entstanden unter Excel 2003 =- Excel KnowHow / Visual Basic (VBA) 4 Schleifen -= Entstanden unter Excel 2003 =- Die erste Schleife habe ich bereits im letzten Kapitel benutzt: Die FOR-Schleife. Schauen wir uns das Beispiel noch einmal

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Zuverlässige Software mit GoTo Ludwig Suski

Zuverlässige Software mit GoTo Ludwig Suski Zuverlässige Software mit GoTo Ludwig Suski 12.06.2009 Zuverlässige Software mit GoTo - Ludwig Suski 1 Gliederung Historischer Hintergrund Dijkstra: Go To Statement Considered Harmful [1] Notwendigkeit?

Mehr

Aufgabe Total Punkte

Aufgabe Total Punkte Lösung der Informatikprüfung Klasse 4 Sa Kantonsschule XY 2007 Name :...Vorname :... Du hast 90 Minuten Zeit. Spicken ist nicht erlaubt (Die Prüfung wird sofort eingezoegen und Deine mögliche Bestnote

Mehr

Grundlagen der Programmierung in C Funktionen

Grundlagen der Programmierung in C Funktionen Der erste Mechanismus für Code-Reuse! Grundlagen der Programmierung in C Funktionen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Ältester Mechanismus für Code-Reuse:

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Imperative vs. Funktionale Programmierung

Imperative vs. Funktionale Programmierung Beispiel: Entwerfe eine Funktion, die testet, ob eine Zahl n eine Primzahl ist oder nicht. Beobachtung: (1) Wenn n Primzahl ist, ist die Menge der Teiler von n leer. (2) Die Menge der Teiler von n sind

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

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

Mehr

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr