Formale Spezifikation mit Java Modeling Language
|
|
- Alexa Junge
- vor 6 Jahren
- Abrufe
Transkript
1 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 Forschungszentrum in der Helmholtz-Gemeinschaft wwwkitedu
2 Software ist allgegenwärtig Daniel Bruns Formale Spezifikation mit JML /14
3 Software ist allgegenwärtig Das bedeutet: Software kann immer und überall Fehler verursachen Daniel Bruns Formale Spezifikation mit JML /14
4 Formale Methoden Fehler sollen möglichst früh erkannt oder vermieden werden Manche Methoden greifen daher bereits in der Entwurfsphase Alle Methoden basieren auf elementaren mathematischen Konzepten wie Mengentheorie, Prädikatenlogik, etc Aber: Viele sind nur für Experten verständlich Java Modeling Language (JML) hat einen anderen Ansatz und zielt darauf ab, vom Durchschnittsprogrammierer genutzt zu werden speziell für die Spezifikation von Java-Programmen baut syntaktisch auf Java auf wird direkt als Kommentar in java-dateien geschrieben reichhaltige Sprache; man muss aber nicht alle Features nutzen kann verschiedene Werkzeuge bedienen: zb statische oder Laufzeitanalysen oder Testfallgenerierung Daniel Bruns Formale Spezifikation mit JML /14
5 Formale Methoden Fehler sollen möglichst früh erkannt oder vermieden werden Manche Methoden greifen daher bereits in der Entwurfsphase Alle Methoden basieren auf elementaren mathematischen Konzepten wie Mengentheorie, Prädikatenlogik, etc Aber: Viele sind nur für Experten verständlich Java Modeling Language (JML) hat einen anderen Ansatz und zielt darauf ab, vom Durchschnittsprogrammierer genutzt zu werden speziell für die Spezifikation von Java-Programmen baut syntaktisch auf Java auf wird direkt als Kommentar in java-dateien geschrieben reichhaltige Sprache; man muss aber nicht alle Features nutzen kann verschiedene Werkzeuge bedienen: zb statische oder Laufzeitanalysen oder Testfallgenerierung Daniel Bruns Formale Spezifikation mit JML /14
6 Formale Methoden Fehler sollen möglichst früh erkannt oder vermieden werden Manche Methoden greifen daher bereits in der Entwurfsphase Alle Methoden basieren auf elementaren mathematischen Konzepten wie Mengentheorie, Prädikatenlogik, etc Aber: Viele sind nur für Experten verständlich Java Modeling Language (JML) hat einen anderen Ansatz und zielt darauf ab, vom Durchschnittsprogrammierer genutzt zu werden speziell für die Spezifikation von Java-Programmen baut syntaktisch auf Java auf wird direkt als Kommentar in java-dateien geschrieben reichhaltige Sprache; man muss aber nicht alle Features nutzen kann verschiedene Werkzeuge bedienen: zb statische oder Laufzeitanalysen oder Testfallgenerierung Daniel Bruns Formale Spezifikation mit JML /14
7 Formale Methoden Fehler sollen möglichst früh erkannt oder vermieden werden Manche Methoden greifen daher bereits in der Entwurfsphase Alle Methoden basieren auf elementaren mathematischen Konzepten wie Mengentheorie, Prädikatenlogik, etc Aber: Viele sind nur für Experten verständlich Java Modeling Language (JML) hat einen anderen Ansatz und zielt darauf ab, vom Durchschnittsprogrammierer genutzt zu werden speziell für die Spezifikation von Java-Programmen baut syntaktisch auf Java auf wird direkt als Kommentar in java-dateien geschrieben reichhaltige Sprache; man muss aber nicht alle Features nutzen kann verschiedene Werkzeuge bedienen: zb statische oder Laufzeitanalysen oder Testfallgenerierung Daniel Bruns Formale Spezifikation mit JML /14
8 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } Daniel Bruns Formale Spezifikation mit JML /14
9 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
10 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
11 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
12 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
13 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
14 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
15 Motivierendes Beispiel int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
16 Motivierendes Beispiel ensures \result == x + y; int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
17 Motivierendes Beispiel requires x >= 0; //@ ensures \result == x + y; int add (int x, int y) { while (0 < x--) y++; return y; } x y res Daniel Bruns Formale Spezifikation mit JML /14
18 Grundlegende Syntax Alle JML-Spezifikationen sind spezielle Kommentare können daher von normalen Java-Parsern ignoriert werden Zeile: requires x >= 0; Block: /*@ requires x >= Im Block ist es üblich, eine neue Zeile zu beginnen JML-Spezifikationen können auch Kommentare enthalten beginnen mit Schlüsselwort (zb requires) und enden mit Semikolon /*@ requires x >= requires true; // nicht requires /* das auch nicht */ Daniel Bruns Formale Spezifikation mit JML /14
19 Grundlegende Syntax Alle JML-Spezifikationen sind spezielle Kommentare können daher von normalen Java-Parsern ignoriert werden Zeile: requires x >= 0; Block: /*@ requires x >= Im Block ist es üblich, eine neue Zeile zu beginnen JML-Spezifikationen können auch Kommentare enthalten beginnen mit Schlüsselwort (zb requires) und enden mit Semikolon /*@ requires x >= requires true; // nicht requires /* das auch nicht */ Daniel Bruns Formale Spezifikation mit JML /14
20 Grundlegende Syntax Alle JML-Spezifikationen sind spezielle Kommentare können daher von normalen Java-Parsern ignoriert werden Zeile: requires x >= 0; Block: /*@ requires x >= Im Block ist es üblich, eine neue Zeile zu beginnen JML-Spezifikationen können auch Kommentare enthalten beginnen mit Schlüsselwort (zb requires) und enden mit Semikolon /*@ requires x >= requires true; // nicht requires /* das auch nicht */ Daniel Bruns Formale Spezifikation mit JML /14
21 Ausdrücke in JML && logisches UND logisches ODER ==> logische Implikation <==> logische Äquivalenz ==!= (Un-)Gleichheit (wie in Java!) + - * / % Arithmetik wie in Java < <= > >= Vergleiche wie in Java \result Rückgabewert einer Methode \old(x) Wert von x im Anfangszustand Daniel Bruns Formale Spezifikation mit JML /14
22 Ausdrücke in JML && logisches UND logisches ODER ==> logische Implikation <==> logische Äquivalenz ==!= (Un-)Gleichheit (wie in Java!) + - * / % Arithmetik wie in Java < <= > >= Vergleiche wie in Java \result Rückgabewert einer Methode \old(x) Wert von x im Anfangszustand Daniel Bruns Formale Spezifikation mit JML /14
23 Beispiel public class Example { private int x; } /*@ ensures x == \old(x)-1 (x!= 0 ==> \result == public int foo (int y) { if (x-- == 1) return 42; else return y/x; } Daniel Bruns Formale Spezifikation mit JML /14
24 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires α; //@ ensures β; T m (T1 p1,, Tn pn); Daniel Bruns Formale Spezifikation mit JML /14
25 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires α; //@ ensures β; T m (T1 p1,, Tn pn); Daniel Bruns Formale Spezifikation mit JML /14
26 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires α; //@ ensures β; T m (T1 p1,, Tn pn); Daniel Bruns Formale Spezifikation mit JML /14
27 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires α; //@ ensures β; T m (T1 p1,, Tn pn); Daniel Bruns Formale Spezifikation mit JML /14
28 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires x >= 0; //@ ensures \result == x + y; int add (int x, int y); Daniel Bruns Formale Spezifikation mit JML /14
29 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires x >= 0; //@ ensures \result == x + y; int add (int x, int y); Daniel Bruns Formale Spezifikation mit JML /14
30 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires x >= 0; //@ ensures \result == x + y; int add (int x, int y); Daniel Bruns Formale Spezifikation mit JML /14
31 Methodenverträge Design by Contract (Meyer 1992) Wenn eine Methode m in einem Zustand aufgerufen wird, in dem eine Vorbedingung α erfüllt ist, dann gilt, nach erfolgreicher Ausführung, eine Nachbedingung β Zwischen aufrufender und aufgerufener Methode wird ein Vertrag geschlossen: Der Aufrufer garantiert die Vorbedingung und der Aufgerufene garaniert die Nachbedingung //@ requires x >= 0; //@ ensures \result == x + y; int add (int x, int y); Daniel Bruns Formale Spezifikation mit JML /14
32 Exceptions Beispiel ensures behandelt nur den Fall, dass die Methode normal terminiert, dh ohne Ausnahmen Erwartete Ausnahmen werden mit signals (E e) angegeben (mit Exception-Parameter) und Nachbedingung ensures \result == signals (ArithmeticException e) x == signals (NullPointerException d) y == public int strangedivide (int x, Integer y) { return yintvalue()/x; } Daniel Bruns Formale Spezifikation mit JML /14
33 Exceptions Beispiel ensures behandelt nur den Fall, dass die Methode normal terminiert, dh ohne Ausnahmen Erwartete Ausnahmen werden mit signals (E e) angegeben (mit Exception-Parameter) und Nachbedingung ensures \result == signals (ArithmeticException e) x == signals (NullPointerException d) y == public int strangedivide (int x, Integer y) { return yintvalue()/x; } Daniel Bruns Formale Spezifikation mit JML /14
34 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires ensures signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
35 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires ensures signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
36 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires ensures signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
37 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet werden requires ensures signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
38 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires ensures signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
39 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet werden requires ensures signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
40 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires p!= null && ensures \result!= null && signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
41 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires p!= null && ensures \result!= null && signals (E e) public/*@ T m (/*@ U p, ); Daniel Bruns Formale Spezifikation mit JML /14
42 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires p!= null && ensures \result!= null && signals (E e) public T m ( U p, ); Daniel Bruns Formale Spezifikation mit JML /14
43 Default-Werte Leere Klauseln sind immer true normal_behavior steht für signals false exceptional_behavior steht für ensures false non_null ist der Default Ansonsten muss nullable verwendet requires ensures signals (E e) public/*@ T m (/*@ U p, ); Daniel Bruns Formale Spezifikation mit JML /14
44 Mehrere Spezifikationsfälle Klauseln gleichen Typs werden konjunktiv verknüft requires α 1 requires α 2 ensures β 1 ensures β 2 Mehrere Verträge sind unabhängig voneinander /*@ requires ensures requires signals (E e) Daniel Bruns Formale Spezifikation mit JML /14
45 Mehrere Spezifikationsfälle Klauseln gleichen Typs werden konjunktiv verknüft requires α 1 && α ensures β 1 && β Mehrere Verträge sind unabhängig voneinander /*@ requires ensures requires signals (E e) Daniel Bruns Formale Spezifikation mit JML /14
46 Mehrere Spezifikationsfälle Klauseln gleichen Typs werden konjunktiv verknüft requires α 1 && α ensures β 1 && β Mehrere Verträge sind unabhängig voneinander /*@ requires ensures requires signals (E e) Daniel Bruns Formale Spezifikation mit JML /14
47 Literatur Gary T Leavens, Albert L Baker, and Clyde Ruby Preliminary design of JML: A behavioral interface specification language for Java Technical Report 98-06y, Iowa State University, 2003 Gary T Leavens et al JML reference manual Entwurfsfassung Revision 1235, verfügbar unter September 2009 Peter H Schmitt Spezifikation und Verifikation von Software, 2010 Skript zur Vorlesung Verfügbar unter Daniel Bruns Formale Spezifikation mit JML /14
48 Übungsaufgabe 1 public class Riddle { private int x; } public int twiddle (int z) { return (z + x)/ ++x ; } Daniel Bruns Formale Spezifikation mit JML /14
49 Übungsaufgabe 2 public class Mystery { private int secret; } public static void do (Mystery a, Mystery b){ int x = asecret--; bsecret += asecret; asecret -= x; } Daniel Bruns Formale Spezifikation mit JML /14
Design by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
MehrKlausur Formale Systeme Fakultät für Informatik SS 2017
Klausur Formale Systeme Fakultät für Informatik SS 2017 Prof. Dr. Bernhard Beckert 3. August 2017 Name: Vorname: Matrikel-Nr.: Die Bearbeitungszeit beträgt 60 Minuten. A1 (14) A2 (6) A3 (6) A4 (8) A5 (11)
MehrKlausur Formale Systeme Fakultät für Informatik SS Prof. Dr. Bernhard Beckert. 3. August Die Bearbeitungszeit beträgt 60 Minuten.
Name: Vorname: Klausur Formale Systeme Fakultät für Informatik Matrikel-Nr.: SS 2017 Prof. Dr. Bernhard Beckert 3. August 2017 Die Bearbeitungszeit beträgt 60 Minuten. A1 (14) A2 (6) A3 (6) A4 (8) A5 (11)
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
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
MehrQualitätssicherung in der Softwareentwicklung
VU 3 Institut für Softwaretechnologie (IST) TU Graz Sommersemester 2012 Übersicht der Vorlesung 1 Invarianten in JML 2 3 4 5 JML Beispiele Invariant package org.jmlspecs.samples.jmlrefman Purse [Burdy
MehrSoftware Entwicklung 1. Spezifikation von Prozedureigenschaften. Spezifikation prozeduraler Programme. Warum Spezifikationen?
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Spezifikation von Prozedureigenschaften Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrElementare 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)
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrSoftwaretechnik. Vorlesung 06: Design by Contract (Entwurf gemäß Vertrag) Peter Thiemann SS Universität Freiburg, Germany
Softwaretechnik Vorlesung 06: Design by Contract (Entwurf gemäß Vertrag) Peter Thiemann Universität Freiburg, Germany SS 2008 Inhalt Design by Contract Verträge für prozedurale Programme Verträge für objekt-orientierte
MehrFormale Systeme. Organisatorisches. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft
Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017 Organisatorisches KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK www.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft Personen
MehrProgramm 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
MehrLösungshinweise/-vorschläge zum Übungsblatt 5: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 5: Software-Entwicklung 1 (WS 2017/18)
MehrAlgorithmen 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
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrHow To Prove A Propositional Logic
Klausur Formale Systeme Fakultät für Informatik SS 2015 Prof. Dr. Bernhard Beckert 31. Juli 2015 Vorname: Matrikel-Nr.: Die Bearbeitungszeit beträgt 60 Minuten. A1 (10) A2 (8) A3 (6) A4 (7) A5 (9) A6 (11)
MehrFormale Systeme. Organisatorisches. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft
Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017 Organisatorisches KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK www.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft Personen
MehrFormale Modellierung Vorlesung 13 vom : Rückblick und Ausblick
Rev. 2226 1 [19] Formale Modellierung Vorlesung 13 vom 01.07.13: Rückblick und Ausblick Serge Autexier & Christoph Lüth Universität Bremen Sommersemester 2013 2 [19] Fahrplan Teil I: Formale Logik Teil
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrWarum Programme Verträge schließen sollten
1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrSystem.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrVerifikation von Programmen in Java 5
Verifikation von Programmen in Java 5 ObjektForum Karlsruhe Mattias Ulbrich Betreuung: Prof. Dr. P. H. Schmitt Institut für Theoretische Informatik Universität Karlsruhe (TH) 8. Oktober 2007 Mattias Ulbrich
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Ø Vorbedingungen Ø Nachbedingungen
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrKlausur Formale Systeme Fakultät für Informatik SS 2018
Klausur Formale Systeme Fakultät für Informatik SS 2018 Prof. Dr. Bernhard Beckert 30. Juli 2018 Name: Vorname: Matrikel-Nr.: Die Bearbeitungszeit beträgt 60 Minuten. A1 (13) A2 (8) A3 (6) A4 (8) A5 (9)
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
MehrAusnahmen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 27.6.
Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.6.07 G. Bohlender (IANM UNI Karlsruhe) Ausnahmen 27.6.07 1 / 8 Übersicht 1 Einführung
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrChapter A. Korrekte Programme. Korrektes Programm. Lecture Algorithmen & Datenstrukturen
Chapter A Lecture Algorithmen & Datenstrukturen.09.01 Berner Fachhochschule Technik und Informatik A.1 Das Programm endet nach endlich viel Zeit. Das Programm endet nach endlich viel Zeit. Damit dies erfüllt
MehrMartin 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 Welche Arten von Anweisungen gibt es? Anweisungen
MehrProgrammieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Vorbedingungen Nachbedingungen
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
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):
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
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrKlausur Formale Systeme Fakultät für Informatik SS Prof. Dr. Bernhard Beckert. 31. Juli Die Bearbeitungszeit beträgt 60 Minuten.
Name: Vorname: Klausur Formale Systeme Fakultät für Informatik Matrikel-Nr.: SS 2015 Prof. Dr. Bernhard Beckert 31. Juli 2015 Die Bearbeitungszeit beträgt 60 Minuten. A1 (10) A2 (8) A3 (6) A4 (7) A5 (9)
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Vorbedingungen Nachbedingungen
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
MehrAusnahmen (Exceptions)
Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
MehrVorlesung 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),
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
MehrProgrammieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik
Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung
MehrInformatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -
Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete
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
MehrMartin 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
MehrVor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel
Wer ist denn das? Vor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel Programmspezifikation mit Vor- und Nachbedingungen (C) 2007-2018, Ralf Lämmel, Universität Koblenz-Landau 2 3 Gesprächsprotokoll
MehrObjektorientiertes Programmieren (Java)
Grundlagen Objektorientiertes Programmieren (Java) Java folgt gewissen Rechtschreibregeln die Syntax. Diese besagt, dass hinter jeden Befehl ein Semikolon( ; ) stehen muss, damit der Computer weiß, dass
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten
MehrKapitel 10 Delegationsvariablen
Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrVorlesung 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
MehrMartin 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
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrAusnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung
MehrAusnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrRO-Tutorien 17 und 18
RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der
MehrJava: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
MehrKorrekte Software: Grundlagen und Methoden Vorlesung 11 vom : Funktionen und Prozeduren
18:10:49 2016-07-07 1 [14] Korrekte Software: Grundlagen und Methoden Vorlesung 11 vom 06.06.16: Funktionen und Prozeduren Serge Autexier, Christoph Lüth Universität Bremen Sommersemester 2016 Korrekte
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
MehrAutotest. Automatische Testgenerierung mit Design by Contract. von Simon Greiner am 12. Juli 2007
Autotest Automatische Testgenerierung mit Design by Contract von Simon Greiner am 12. Juli 2007 Autotest 1. Testen 2. Design by Contract 3. Strategien zur Testerstellung 1. Zufallsstrategie 2. Planungsstrategie
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
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
MehrArithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
MehrDie Klasse MiniJava ist in der Datei MiniJava.java definiert:
Die Klasse MiniJava ist in der Datei MiniJava.java definiert: import javax.swing.joptionpane; import javax.swing.jframe; public class MiniJava { public static int read () { JFrame f = new JFrame (); String
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrProgrammieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Spezial Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe bei primitivem Datentypen (Wertkopie) public class MethodParameters
Mehr3. 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
MehrKlausur Formale Systeme Fakultät für Informatik WS 2017/2018. Prof. Dr. Bernhard Beckert. 28. Februar **Vorname** **Familienname** **Matr.-Nr.
Klausur Formale Systeme Fakultät für Informatik WS 2017/2018 Prof. Dr. Bernhard Beckert Vorname: Name: Matrikel-Nr.: Hörsaal: Code: 28. Februar 2018 **Vorname** **Familienname** **Matr.-Nr.** **Hörsaal**
Mehr2 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