Seminar Synchrone Programmiersprachen
|
|
- Bernd Weber
- vor 5 Jahren
- Abrufe
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 Gliederung 1. Einleitung 2. Reaktive Systeme 3. Entstehung 4. Syntax 1. Basic Esterel 2. Plain
MehrExample 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
MehrDie 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
MehrModellierung 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
MehrEsterel. 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...
MehrModellierung 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
MehrAn 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
MehrKorrektheit 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
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
Mehrzu 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
Mehrzu 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
MehrProgrammierung 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
MehrInformationsverarbeitung 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
Mehrn 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
MehrKapitel 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
MehrAlgorithmen 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
MehrTuring-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
MehrKorrektheit 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)
MehrSemantik 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
MehrPropä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
MehrWie 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)
MehrAbstract 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
Mehr1 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.
MehrRichtig 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
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
Mehr1 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
MehrDie 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
MehrAbschnitt 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
MehrC++ 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
MehrInhaltsverzeichnis 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
MehrSoftwareentwicklung 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
MehrEinfü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
MehrTechnische 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:
MehrGliederung. 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
MehrUE 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,
MehrEinfü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
MehrTechnische 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:
Mehr1 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
MehrInhaltsverzeichnis. 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...
MehrIdeen 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
MehrJavakurs 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
MehrDank. 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
MehrKorrektheit 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
MehrProgrammierkurs 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
MehrJava 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
MehrEINI 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
MehrIdeen 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,
MehrVorwort...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
MehrRichtig 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
Mehr2 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
MehrJavakurs 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
MehrC. 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
MehrIII.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
MehrProgrammierkurs 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)
MehrProgrammierkurs 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)
MehrECDL 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
MehrIdeen 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
MehrDas 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
MehrJava 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
Mehr2. 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,
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
MehrVorkurs 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
MehrReactive 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
Mehr2.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?
Mehr4.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):
MehrDatentypen: 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,
MehrPraktische 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?
MehrAlgorithmen 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:
MehrJava 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
MehrKapitel 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
MehrVerhalten. 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,
MehrFunktionale 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
MehrInhalte 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)
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
MehrFakultä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
MehrEinfü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
MehrInstitut 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrInhaltsverzeichnis. 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
Mehrn 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
MehrInformatik 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
MehrPraktische 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
MehrSyntax 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 +
MehrMathematische 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
MehrFormale 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
MehrTechnische 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
MehrGedä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
MehrEinfü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
MehrBerechenbarkeit 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.
MehrJavaprogrammierung 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
MehrEinfü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
MehrSprachkonstrukte. 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