Seminar Synchrone Programmiersprachen

Größe: px
Ab Seite anzeigen:

Download "Seminar Synchrone Programmiersprachen"

Transkript

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

2 Agenda Beispiel Semantiken Plain-Esterel Basic-Esterel Grundlagen Einführung 2 / 91

3 Einführung Esterel kurz gefasst Reaktive Systeme Entwicklungswerkzeuge Synchronitätshypothese 3 / 91

4 Einführung Esterel Ein historischer Abriss Wann Wer Anfänge in 1982 Team der Mines ParisTech und INRIA: Marmorat, Rigault, Berry, Moisan, Gonthier, Cosserat,... Name Verwandt Esterel Gebirge (Côte d Azur) Lustre, Signal 4 / 91

5 Einführung Esterel Ein historischer Abriss Brzozowski-Algorithmus Compiler Automaten Zustandsexplosionen Hardwarecompiler Konzept Modulare Programmierung Produkt Esterel Studio TM 5 / 91

6 Einführung Esterel Eigenschaften 6 / 91

7 Einführung Reaktive Systeme Einordnung Eingebettete Eingebettete Systeme Systeme Reaktive Reaktive Systeme Systeme Echtzeitsysteme Echtzeitsysteme eingabegesteuert 7 / 91

8 Einführung Reaktive Systeme Eingabeereignisse Kommunikationsschnittstelle Kommunikationsschnittstelle Ausgabeereignisse Reaktiver Reaktiver Systemkern Systemkern Datenverarbeitung Datenverarbeitung 8 / 91

9 Einführung Einsatz reaktiver Systeme Automotive Avionik Kernkraftwerke Medizintechnik 9 / 91

10 Einführung Entwicklungswerkzeuge Werkzeuge zur Entwicklung reaktiver Systeme Automaten Petrinetze Asynchrone Programmiersprachen Synchrone Programmiersprachen 10 / 91

11 Einführung Determinismus und Nebenläufigkeit Reaktive Systeme Reaktion Reaktion 11 oft sehr komplex nebenläufige Teilkomponenten Reaktion Reaktion 22 Reaktion Reaktion 33 Kooperation Nichtdeterminismus? deterministisch, wenn bestimmte Eingabesequenz stets gleiche Ausgabesequenz 11 / 91

12 Einführung Synchronitätshypothese A E R te E A K T tr I O N ta Δt Δt = ta te 12 / 91

13 Einführung Synchronitätshypothese Eine Reaktion erfolgt unverzüglich (zero delay) te = t R Eine Reaktion ist unteilbar (atomar) Eine Reaktion geschieht Δt = 0 augenblicklich (control takes no time) Δt > 0 Δt = ta te Ausnahmen: Trigger, Watchdog, Delay, / 91

14 Einführung Synchronitätshypothese Befehle kosten Zeit Zeitkonsum ihr Zweck ist Annahme: Taktrate des Rechners ist unendlich Theoretisches Modell 14 / 91

15 Einführung Zusammenfassung 15 / 91

16 Vorankommen Beispiel Semantiken Plain-Esterel Basic-Esterel Grundlagen Einführung 16 / 91

17 Esterel Grundlagen Modul Parallelität Datendeklarationen Datenverarbeitungsebene Kommunikationsschnittstelle Relationen 17 / 91

18 Esterel Grundlagen Modul Modularisierung Esterelprogramm := mindestens 1 Modul Modul := Selbstständiges Programmfragment Modulrumpf Kein globaler Geltungsbereich lokale Deklarationen Programmcode Wiederverwendung Direktive Ähnlich C-Makros 18 / 91

19 Esterel Grundlagen Parallelität Operator Seien P1 und P2 Programme. Dann ist auch P1 P2 ein Programm. Die parallele Ausführung von P1 P2 terminiert, wenn sowohl P1 als auch P2 terminieren. 19 / 91

20 Esterel Grundlagen Parallelität Ausgaben sind öffentlich. Signal S2 wird mit Wert 1 emmitiert. P1 und P2 können sich keine Variablen teilen. 20 / 91

21 Esterel Grundlagen Datendeklarationen Primitive Datentypen: integer, boolean, triv, float, string Verbundtypen und zusammengesetzte Datentypen Deklaration benutzerdefinierter Typen Definition der Typen in Hostsprache Konstantendeklaration Wertzuweisung in Hostsprache 21 / 91

22 Esterel Grundlagen Datendeklarationen Deklaration einer Funktion Variablenparameter Annahme: seiteneffektfrei Deklaration einer Prozedur Variablenparameter Werteparameter 22 / 91

23 Esterel Grundlagen Datenverarbeitungsebene Datentyp TIME in Hostsprache C Vergleichsoperator für TIME in C

24 Esterel Grundlagen Datenverarbeitungsebene

25 Esterel Grundlagen Datenverarbeitungsebene

26 Esterel Grundlagen Kommunikationsschnittstelle Schnittstellen zur Außenwelt Signale (aktiv) Sensoren (passiv) Klassifikation Zugriff Informationsgehalt Sichtbarkeit

27 Esterel Grundlagen Kommunikationsschnittstelle Zugriff Nur-Eingabe-Signale Nur-Ausgabe-Signale Ein-und-Ausgabe-Signale Nur-Lese-Signale (Sensoren) Sichtbarkeit Schnittstellensignale lokale Signale

28 Esterel Grundlagen Kommunikationsschnittstelle Informationsgehalt wertelose Signale S(v) wertebehaftete Signale S Signalzustand entweder präsent oder nicht. Signalstatus und Signalwert über die gesamte Reaktion fix.

29 Esterel Grundlagen Kommunikationsschnittstelle Eingabesignale externe Ereignisse: Interrupts, Timer, Tastendrücke, augenblickliche Verarbeitung Lesen der Werte mit Abfrageoperator??S = v falls wertebehaftet?s = triv falls wertefrei Deklaration

30 Esterel Grundlagen Kommunikationsschnittstelle Ausgabesignale augenblicklich ausgelöst wertebehaftet S(exp) oder wertfrei S Deklaration

31 Esterel Grundlagen Kommunikationsschnittstelle Kombinationsfunktion c Signatur Notwendig bei Mehrfach-Emission Berechnet eindeutigen Ausgabewert

32 Esterel Grundlagen Kommunikationsschnittstelle Ein-und-Ausgabe-Signale Kombinierter Signaltyp Deklaration Sensor Für passive Geräte z.b. Thermometer Nur Abfrage per?-operator Deklaration

33 Esterel Grundlagen Kommunikationsschnittstelle Lokale Signale Verlassen nicht die Kernelebene Eingeschränkter Geltungsbereich Deklaration Beispiel...

34 Esterel Grundlagen Relationen Inkompatibilitätsrelation LEFT_BUTTON # RIGHT_BUTTON Synchronitätsrelation SECOND => HUNDREDTH_OF_SECONDS

35 Einführung Zusammenfassung 35 / 91

36 Vorankommen Beispiel Semantiken Plain-Esterel Basic-Esterel Grundlagen Einführung 36 / 91

37 Basic ESTEREL ESTEREL ist eine imperative Sprache Viele Sprachkonstrukte bereits intuitiv vertraut Einiges ist allerdings neu und anders

38 Basic ESTEREL Die innere Schleife wäre endlos, würde die äußere nicht die Abbruchbedingung enthalten

39 Basic-Esterel Intuitive Verhaltenssemantik beschreibt Ausführungsverhalten oberflächlich Ausführungsmoment Wann terminiert eine Anweisung? Orientierung am zeitlichen Ablauf Programm = Folge an Reaktionen Reaktion: augenblicklich und atomar

40 Sharing Law Grundsatz 1: Während einer Reaktion hat ein Signal einen konstanten Status (es ist präsent oder nicht). Grundsatz 2: Während einer Reaktion hat ein Signal einen konstanten Wert, selbst dann, wenn es nicht aktiv ist. Folgerung 1 aus den beiden Grundsätzen: Ein Signal, das nicht aktiv ist, hat immer den Wert, den es bei der letzten Reaktion hatte. Folgerung 2 aus den beiden Grundsätzen: Ist ein Signal nie aktiv gewesen, ist sein Wert undefiniert.

41 'Basic' ESTEREL: Befehlssatz (I) Basis für den erweiterten 'Plain' ESTEREL-Befehlssatz Vorsicht bei Endlosschleife: Widerspruch zur Synchronitätshypothese! (und daher nicht zulässig ohne Abbruchbedingung!) Metavariablen: type (Typen) exp (Ausdrücke) stat (Anweisungen) Vieles ist (intuitiv) bekannt aus anderen imperativen Sprachen

42 'Basic' ESTEREL: Befehlssatz (II) Es gibt 2 Arten bedingter Anweisungen: if-then-else und present-then-else ESTEREL-eigen sind: emit present watching signal comb steht für eine Kombinationsfunktion (für >=2 Signale)

43 'Basic' ESTEREL: Traps (Ausnahmen) Traps sind in anderen Sprachen, wie Java, vergleichbar mit Exceptions Das Java-Codeschnipsel unten verdeutlicht die Parallele zu ESTEREL (oben) Es werden 2 Ausnahmen gefangen und mit Handlern wird jeweils definiert, was dann zu tun ist

44 Beispiel für unerreichbaren Code X := 0, Y := 0 und Z := 0 werden simultan ausgeführt Da nach Z := 0 schon T1 verlassen wird, kann Z := 1 nicht ausgeführt werden exit T2 wird verworfen, da T1 T2 umschließt U := 0 wird nicht ausgeführt, da T1 bereits verlassen wurde Endzustand: X := 0, Y := 0, Z := 0

45 Bsp. für unterschiedliche Scopes bei Signalen Im Modul FOO stehen 2 gleichzeitige Emissionen des lokalen Signals S nicht im gleichen Kontext (also braucht man hier keine Kombinationsfunktion!) Start der Scheife: S wird mit Wert 0 emittiert und es wird auf S1 gewartet, dann S mit 1 emittiert Parallel dazu wird S2 mit dem Wert von S emittiert und auf S gewartet, dann S2 mit dem Wert von S emittiert

46 Vorankommen Beispiel Semantiken Plain-Esterel Basic-Esterel Grundlagen Einführung 46 / 91

47 Plain-Esterel NEU! Erweiterung von Basic-Esterel Kommunikationsschnittstelle Syntaktischer Zucker Ausnahmebehandlung Modularität

48 Plain-Esterel Schnittstelle Ein-und-Ausgabe-Signal Sensor Modularität Direktive

49 Plain-Esterel Syntaktischer Zucker Abwarten kopfgesteuerte Schleife Timeout für Watchdogs Ereigniszähler Immediate-Watchdog

50 Plain-Esterel Syntaxerweiterungen einfaches Abwarten gesüßt mehrfaches Abwarten ungesüßt

51 Plain-Esterel Syntaxerweiterungen kopfgesteuerte Schleife gesüßt ungesüßt

52 Plain-Esterel Syntaxerweiterungen Timeout für Watchdogs gesüßt ungesüßt

53 Plain-Esterel Syntaxerweiterungen Ereigniszähler gesüßt ungesüßt

54 Plain-Esterel Syntaxerweiterungen Beispiel für Ereigniszähler gesüßt ungesüßt

55 Plain-Esterel Syntaxerweiterungen Immediate-Watchdog gesüßt ungesüßt

56 Plain-Esterel Ausnahmebehandlung Ergänzung zu Traps Lesen von Meldungen mit Operator??

57 Einführung Zusammenfassung 57 / 91

58 Vorankommen Beispiel Semantiken Plain-Esterel Basic-Esterel Grundlagen Einführung 58 / 91

59 Formale Semantiken Entwicklung strikt nach formaler Semantik Notwendig wegen Komplexität rekativer Syteme Anforderungen an Korrektheit 2 mathematische Semantiken (BERRY, GONTHIER) formale Verhaltenssemantik Ausführungssemantik

60 Formale Semantiken Formale Verhaltenssemantik mathematische Definition der intuitiven Semantik basiert auf PLOTKIN's Kalkül stärker auf Implementierung ausgerichtet Fokus auf Ein- und Ausgabeverhalten schrittweise Programmableitung nicht ausführbar

61 Formale Semantiken Formale Verhaltenssemantik Ereignisse Historien Modulableitung

62 Formale Semantiken Formale Verhaltenssemantik Ereignis Folge emittierter Signale Signal abfragen:, leeres Ereignis: vollständiges Ereignis Speichert alle möglichen Signale Entweder oder oder

63 Formale Semantiken Formale Verhaltenssemantik Kombinationsfunktion formaler synchrone Produkt

64 Formale Semantiken Formale Verhaltenssemantik Historie Vollständige Historie

65 Formale Semantiken Formale Verhaltenssemantik Beispiel Signalmenge Historie vollständige Historie

66 Formale Semantiken Formale Verhaltenssemantik Modulableitung Eingabehistorie I Ausgabehistorie O Program P schrittweise Überführung

67 Formale Semantiken Formale Verhaltenssemantik Beispiel Signal DEC tritt ein

68 Formale Semantiken Formale Verhaltenssemantik Induktionsregeln Allgemeine Form

69 Formale Semantiken Formale Verhaltenssemantik Programmüberführung Ein Programm terminiert niemals stat entspricht dem Körper des Programmes P Ausdrucksauswertung

70 Formale Semantiken Formale Verhaltenssemantik Induktionsregeln nothing Axiom halt Axiom emit Regel

71 Formale Semantiken Formale Verhaltenssemantik Programmkorrektheit Ein Programm ist logisch reaktiv, wenn es mindestens eine Ausgabe für eine Eingabe liefert. Ein Programm ist logisch deterministisch, wenn es höchstens eine Ausgabe für eine Eingabe liefert. Ein Programm ist logisch korrekt, wenn es genau eine Ausgabe für eine Eingabe liefert

72 Formale Semantiken Formale Verhaltenssemantik Determinismus Logische Kohärenzregel: Signal S ist vorhanden Es gibt ein emit S Betrachten

73 Formale Semantiken Formale Verhaltenssemantik Annahme: S ist vorhanden then-zweig Überführt

74 Formale Semantiken Formale Verhaltenssemantik Annahme: S ist nicht vorhanden then-zweig Überführt

75 Formale Semantiken Formale Verhaltenssemantik In beiden Fällen wird abgeleitet nach Schlussfolgerung: Mehrfache Semantik weiteres Beispiel Offensichtlich ohne Semantik

76 Formale Semantiken Ausführungssemantik garantiert Korrektheit einzelner Reaktionen Reaktion: Folge von atomaren Aktionen Ein Programm unter einer Eingabe ist korrekt, wenn es eine Ausführung gibt, in der es anhält. Reaktionen sind deterministisch auch dann, wenn das Programm selbst nichtdeterministisch.

77 Formale Semantiken Ausführungssemantik Signale Implementierung als zugriffsgesteuerte geteilte Variablen Zugriffssteuerung über Statusinformation Signalspeicher speichert das Statusflag. Allgemeine Regel für Aktionen

78 Einführung Zusammenfassung 80 / 91

79 Vorankommen Beispiel Semantiken Plain-Esterel Basic-Esterel Grundlagen Einführung 81 / 91

80 Beispiel Armbanduhr

81 Beispiel Armbanduhr

82 Lesetipps und weiterführende Beispiele Ocjava: Java Code-Generierer für ESTEREL-Programme LEGO MindStorm-Roboter in ESTEREL programmieren Sehr lesenswert: Datenbank-APIs für ESTEREL Weitere Beispiele: Digitaluhr, Kommunikationsprotokoll, Reflexspiel,...

83 Fazit Das Einsatzgebiet von ESTEREL ist sehr spezifisch Die Verbreitung von ESTEREL ist (und bleibt wahrscheinlich) daher eher marginal Die wenigen gefundenen Quellen waren zumeist sehr theorielastig es waren nur wenige Beispiele zu finden. Ein sehr interessantes Thema!

84 Literatur Berry, G.; Gonthier, G.; The ESTEREL synchronous programming language: design, semantics, implementation; Ecole des Mines, Valbonne, France; INRIA, Sophia-Antipolis, France; 1991; Kapitel 1 bis 8 Berry, G.; The Esterel v5 Language Primer; Technical report; 2000 Berry, G.; Cosserat, L.; The ESTEREL Synchronous Programming Language and its Mathematical Semantics. INRIA, Sophia-Antipolis, France; 1984 Potop-Butucaru, D.; de Simone, R.; Talpin, J.-P.: The Synchronous Hypothesis and Synchronous Languages; IRISA, Rennes, France; INRIA, Sophia-Antipolis, France; 2004 Berry, G. et al: The Esterel v5_21 System Manual; Ecole des Mines, Valbonne, France; INRIA, Sophia-Antipolis, France; 1999 Dayaratne, M. W. S.; Roop, P. S.; Salcic, Z.: Direct Execution of Esterel Using Reactive Microprocessors; Dept. of Computer Engineering, University of Auckland, New Zealand; In: Electronic Notes in Theoretical Computer Science Palshikar, G. K.; An introduction to Esterel. Embedded Systems Programming; (November) 2001

85 Literatur

86 Literatur

87 Literatur

88 Literatur

89 Bildquellen Folie 1: stevebkennedy, modified Folie 4 (Esterel-Logo): Folie 5 (Logo): Folie 7: Flickr, Fabio Penna, retuschiert Folie 9: G. Morin, Flugzeugsicherheit fürs Kraftfahrzeug, pp , Wortwolken mit wordle.net erstellt

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

Esterel, Philipp Schröter, Gregor Barth Institut für Informatik. Esterel. Seminar über Programmiersprachen SS13 Esterel, Philipp Schröter, Gregor Barth Institut für Informatik Esterel Seminar über Programmiersprachen SS13 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain

Mehr

Example Ptolemy Model of Comp.: Synchronous Reactive

Example Ptolemy Model of Comp.: Synchronous Reactive Prinzip: Example Ptolemy Model of Comp.: Synchronous Reactive Annahme: unendlich schnelle Maschine Diskrete Ereignisse (DE) werden zyklisch verarbeitet (Ereignisse müssen nicht jede Runde eintreffen) Pro

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

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

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 58 Was sind Aktoren? Fragen zur letzten Vorlesung Unterscheidung zum Begriff Aktoren aus der Mechatronik? Wie zuverlässig ist der generierte

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

Korrektheit und Hoare-Kalkül für Imperative Programme

Korrektheit und Hoare-Kalkül für Imperative Programme Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül

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

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

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

Programmierung Paradigmen und Konzepte

Programmierung Paradigmen und Konzepte Programmierung Paradigmen und Konzepte Mit 79 Bildern, 85 Beispielen, 130 Aufgaben und Kontrollfragen und 19 Referatsthemen Fachbuchverlag Leipzig im Carl Hanser Verlag 1 Einführung und Überblick 11 1.1

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten

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

Kapitel 4: Formale Verifikation

Kapitel 4: Formale Verifikation Kapitel 4: Formale Verifikation Inhalt 4.1 Grundlagen 4.2 Verifikation auf axiomatischer Basis 4.3 Verifikation einzelner Eigenschaften 4.4 Stärken und Schwächen formaler Verifikation Schlüsselbegriffe

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 10 10 V Wirtschaftsinformatik für Wirtschaftwissenschaftler Algorithmen und ihre Programmierung -Teil 1 - Dr. Chris Bizer WS 007/008 Einführung Definition: Algorithmus Ein Algorithmus

Mehr

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-Maschinen: Ein abstrakes Maschinenmodell Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen

Mehr

Korrektheit durch modulare Konstruktion. Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Korrektheit durch modulare Konstruktion. Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Korrektheit durch modulare Konstruktion Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Ansatz: Durch systematische Konstruktion (Schlagwort: strukturierte Programmierung für parallele Programmiersprachen)

Mehr

Semantik von Programmiersprachen Theorie und Anwendungen (Informatik III, Wintersemester 03/04)

Semantik von Programmiersprachen Theorie und Anwendungen (Informatik III, Wintersemester 03/04) Eidgenossische Technische Hochschule Zurich Ecole polytechnique federale de Zurich Politecnico federale di Zurigo Swiss Federal Institute of Technology Zurich Semantik von Programmiersprachen Theorie und

Mehr

Propädeutikum Programmiersprache C und Mathematik 2014

Propädeutikum Programmiersprache C und Mathematik 2014 Propädeutikum Programmiersprache C und Mathematik 2014 Fakultät für Mathematik und Informatik Universität Leipzig Dipl.-Inf. Stefan Freitag, URZ & UBL Stefan Freitag Einführungsveranstaltung Ziel und Zweck

Mehr

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Korrektheit durch modulare Konstruktion Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Ansatz: Durch systematische Konstruktion (Schlagwort: strukturierte Programmierung für parallele Programmiersprachen)

Mehr

Abstract State Machines

Abstract State Machines Abstract State Machines Patrick Köhnen Seminar Systementwurf Übersicht 1. Historie und Praxis 1.1 Yuri Gurevic 1.2 ASMs in der Praxis 2. Was sind ASMs 2.1 Transitionssystem 2.2 Signatur 2.3 -Algebra 2.4

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

Richtig einsteigen: Access 2007 VBA-Programmierung

Richtig einsteigen: Access 2007 VBA-Programmierung Lorenz Hölscher Richtig einsteigen: Access 2007 VBA-Programmierung Miaosott Teill Erste Schritte 1 Einleitung 9 1.1 Die Themenschwerpunkte dieses Buches 9 Visual Basic for Applications 9 Die Beispiel-Datenbank

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

1 Algorithmische Grundlagen

1 Algorithmische Grundlagen 1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003

Mehr

Die Programmiersprache C Eine Einführung

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

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 11: Korrektheit von imperativen Programmen Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961

Mehr

C++ PROGRAM- MIERER/-IN

C++ PROGRAM- MIERER/-IN C++ PROGRAM- MIERER/-IN Verdienst: 80.000 EUR Ähnliche freie Stellen in Deutschland: ca. 2.000-3.000 C++ PROGRAMMIERER/-IN LEHRGANGSBESCHREIBUNG LEHRGANGSGEBÜHR: 5.011,20 EUR DAUER: 12 Wochen Vollzeit

Mehr

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C I Grundlagen...1 1 Grundprinzipien der Datenverarbeitung...2 1.1 Historische Entwicklung der Datenverarbeitung...2 1.1.1 Von A wie Abakus bis Z wie Zuse...2 1.1.2 Die Rechnergenerationen...3 1.1.3 Computer

Mehr

Softwareentwicklung eingebetteter Systeme

Softwareentwicklung eingebetteter Systeme Xpert.press Softwareentwicklung eingebetteter Systeme Grundlagen, Modellierung, Qualitätssicherung Bearbeitet von Peter Scholz 1. Auflage 2005. Buch. xii, 232 S. Hardcover ISBN 978 3 540 23405 0 Format

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

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 12. März 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,

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

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

1 Programmiersprachen 1.1 1

1 Programmiersprachen 1.1 1 1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada

Mehr

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen...

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen... Datei: 00b.doc, Seite3 1. Oktober 2010 Inhaltsverzeichnis Teil I Erste Schritte 1 Einleitung.... 9 1.1 Die Themenschwerpunkte dieses Buches... 9 Visual Basic for Applications... 9 Die Beispieldatenbank...

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

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

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

Korrektheit imperativer Algorithmen

Korrektheit imperativer Algorithmen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Abschnitt 9 Korrektheit imperativer Algorithmen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester

Mehr

Programmierkurs II. C und Assembler

Programmierkurs II. C und Assembler Programmierkurs II C und Assembler Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2003 1-1 Inhalt Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke

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

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man umgangssprachlich,

Mehr

Vorwort...10 Einleitung...12 Lernen Üben Anwenden...12 Inhalt und Aufbau des Buches...13 Inhalt...13 Aufbau Access 2007 (fast) alles ist

Vorwort...10 Einleitung...12 Lernen Üben Anwenden...12 Inhalt und Aufbau des Buches...13 Inhalt...13 Aufbau Access 2007 (fast) alles ist Vorwort...10 Einleitung...12 Lernen Üben Anwenden...12 Inhalt und Aufbau des Buches...13 Inhalt...13 Aufbau...14 1 Access 2007 (fast) alles ist neu...16 Sinnvolle Optionseinstellungen...17 Standarddatenbankordner

Mehr

Richtig einsteigen: Access 2010 VBA-Programmierung

Richtig einsteigen: Access 2010 VBA-Programmierung Richtig einsteigen: Access 2010 VBA-Programmierung Von den Grundlagen bis zur professionellen Entwicklung von Lorenz Hölscher 1. Auflage Richtig einsteigen: Access 2010 VBA-Programmierung Hölscher schnell

Mehr

2 Programmieren in Java I noch ohne Nachbearbeitung

2 Programmieren in Java I noch ohne Nachbearbeitung 1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe

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

C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007

C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007 C. A. R. Hoare An Axiomatic Basis for Computer Programming Nicolas Schelp Proseminar Assertions SS 2007 Inhalt Motivation Kurze Biographie Der Hoare-Kalkül Axiome und Inferenzregeln des Hoare-Kalküls Die

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.1 Prinzipien der funktionalen Programmierung - 1 - 1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung

Mehr

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)

Mehr

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)

Mehr

ECDL MODUL COMPUTING. Syllabus Version 1.0

ECDL MODUL COMPUTING. Syllabus Version 1.0 ECDL MODUL COMPUTING Syllabus Version 1.0 DLGI Dienstleistungsgesellschaft für Informatik Am Bonner Bogen 6 53227 Bonn Tel.: 0228-688-448-0 Fax: 0228-688-448-99 E-Mail: info@dlgi.de, URL: www.dlgi.de In

Mehr

Ideen und Konzepte der Informatik

Ideen und Konzepte der Informatik Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert

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

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure 2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie

Mehr

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen, Vorlesung Höhere Programmiersprachen, WS 2003/04 Teil 2: Formale Semantik Axiomatische Semantik Inhaltsübersicht - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

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

2.2 Syntax, Semantik und Simulation

2.2 Syntax, Semantik und Simulation 2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?

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

Datentypen: integer, char, string, boolean

Datentypen: integer, char, string, boolean Agenda für heute, 13. April, 2006 Der Datentyp integer Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen Zusammengesetzte if-then-else-anweisungen Var i: integer; Teilbereich der ganzen Zahlen,

Mehr

Praktische Informatik I

Praktische Informatik I Praktische Informatik I WS 2005/2005 Prof. Dr. Wolfgang Effelsberg Lehrstuhl für Praktische Informatik IV Universität Mannheim 1. Einführung 1-1 Inhaltsverzeichnis (1) 1. Einführung 1.1 Was ist Informatik?

Mehr

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:

Mehr

Java Ablaufsteuerung (Beispiele)

Java Ablaufsteuerung (Beispiele) Informatik 1 für Nebenfachstudierende Grundmodul Java Ablaufsteuerung (Beispiele) Kai-Steffen Hielscher Folienversion: 16. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Blöcke Anweisungen

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen Verhalten Def. und Nutzen von Verhalten Algorithmen Pseudocode Schreibtischtest Verhalten & Pseudocode Das Verhalten beschreibt, wie sich die Datenstrukturen (Variablen) eines Programms verändern müssen,

Mehr

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert

Mehr

Inhalte des Moduls Programmieren 1

Inhalte des Moduls Programmieren 1 Inhalte des Moduls Programmieren 1 Einführung: Algorithmus und Programm, Programmiersprache Erste Schritte in Java Grundlagen der Sprache: Datentypen, Ausdrücke und Anweisungen, imperative Programmierung

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

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit Kapitel 3 Nebenläufigkeit 136 Inhalt Motivation Unterbrechungen (Interrupts) (Software-) Prozesse Threads Interprozesskommunikation (IPC) 137 Links: Literatur Maurice Herlihy, Nir Shavit, The Art of Multiprocessor

Mehr

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax Einführung in die Programmierung für NF Algorithmen, Datentypen und Syntax Ziele Begriffsbildungen: InformaCk, Algorithmus, Programm, Compiler und andere Einordnung von Java Ein einfaches Java- Programm

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

Algorithmen und ihre Programmierung -Teil 2-

Algorithmen und ihre Programmierung -Teil 2- Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung -Teil 2- Veronika Waue WS 07/08 Wiederholung: Algorithmen Variablen und Datentypen Variablen haben einen Namen, einen Datentypen und einen

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)

n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein

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

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Was bisher geschah... Konzepte: Klassen und ihre...... Instanzen, die

Mehr

Syntax der Sprache PASCAL

Syntax der Sprache PASCAL Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +

Mehr

Mathematische Beweise und Symbolische Tests

Mathematische Beweise und Symbolische Tests Mathematische Beweise und Symbolische Tests Arne Meier Universität Hannover Institut für praktische Informatik Fachgebiet Software Engineering Seminar Werkzeuggestützte Softwareprüfungen 19. April 2006

Mehr

Formale Spezifikation mit Java Modeling Language

Formale Spezifikation mit Java Modeling Language Formale Spezifikation mit Java Modeling Language Daniel Bruns Praxis der Software-Entwicklung, 25 November 2010 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

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

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

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.

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen

Mehr