29 Zusammenfassung und Ausblick

Größe: px
Ab Seite anzeigen:

Download "29 Zusammenfassung und Ausblick"

Transkript

1 29 Zusammenfassung und Ausblick 29.1 Zusammenfassung Wichtige Themen der funktionalen Programmierung Funktionale Abstraktion, Definitionen und Ausdrücke Semantik: Substitutionsmodell, Reduktionsstrategien Funktionen höherer Ordnung, Idiome, Funktionale Abschlüsse Rekursion: Definitionen, Prozesse, Algorithmen Kontrollabstraktion: Backtracking, pattern matching Objekte und generische Funktionen Memo-Funktionen, (Strom-orientierte Programmierung) Relationale Programmierung Programmierstil Zusammenfassung Verarbeitungsmodell und Programmierstil Scheme Prolog Java Funktional Relational Imperativ objektorientiert - objektorientiert Verarbeitungsmodell Denotationale Semantik Scheme Prolog Java Anwendung von Relationale Zustände von Funktionen Anfragen an von auf Werte eine Datenbasis Objekten Zusammenfassung: Semantik Denotational und operational 695

2 Scheme Prolog Java λ-kalkül, Logik und Anweisungen, Ausdrücke, Relationen, Vor- und Nach- Wertesemantik Anfragen bedingungen Sematik: operational Scheme Prolog Java Reduktionsstrategien: Unifikation Virtuelle Vorgezogene Auswertung, und Suche Maschine eval Zusammenfassung: Eigenschaften Bezugstransparenz und Richtungsunabhängigkeit Bezugstransparenz Scheme Prolog Java ja, aber nur ja nein ohne Modifikatoren Richtungsunabhängigkeit Scheme Prolog Java nein ja, aber nur nein ohne funktionale Auswerteumgebung Schlupflöcher, eingebettete Programmierstile Scheme Prolog Java Imperativ funktional - Zusammenfassung Typsystem und Typprüfung Typsystem 696

3 Scheme Prolog Java Latentes Latentes Manifestes Typsystem Typprüfung Scheme Prolog Java Laufzeit Laufzeit Übersetzungszeit Zusammenfassung Vor- und Nachteile Latente versus statische Typisierung Scheme Prolog Java Kurze Programme, frühzeitige Symbolverarbeitung, Fehlererkennung, einfache Metaprogrammierung wohldefinierte Codeerzeugung zur Laufzeit Schnittstellen Programmierumgebung Scheme Prolog Java Interpreter Interpreter Compiler Compiler exploratives Programmieren Wann wählen wir welchen Programmierstil? Wir haben die Stärken von zwei unterschiedlichen Verarbeitungsmodellen besprochen. Beachte: Die Verarbeitungsmodelle sind nicht disjunkt. 697

4 Die meisten Abstraktionen aus einem Verarbeitungsmodell haben Entsprechungen in anderen Modellen. Es ist Ihre Aufgabe, bei einem gegebenen Modell jeweils die treffendsten Abstraktionen zu finden. Es ist Ihre Aufgabe, bei einem gegebenen Problem jeweils ein adäquates Verarbeitungsmodell zu wählen. Be specific. Use abstractions. Be concise. Sechs Maximen für guten Programmierstil Use the provided tools. Don t be obscure. Be consistent. (nach Norvig 92) Ausblick: Vertiefungsmöglichkeiten im Bachelorstudium (SoSe 2010) Grundstudiumspraktikum (GPRAK) Bildverarbeitungspraktikum Modul: Wissensverarbeitung Modul: Interactive Visual Computing Grundlagen von Datenbanksystemen Klausur Erste Klausur: , 9-12 Uhr Audi-I Wiederholungsklausur: , 9-12 Uhr ESA-B Tutorien zur Klausurvorbereitung: , Uhr, R-030 Erlaubte Hilfsmittel: Die Prüfungsunterlagen zur Vorlesung, der Rivised Report on Scheme, keine elektronischen Hilfsmittel Ausweise: Ein Lichtbildausweis, Studentenausweis EN DE Viel Erfolg für das weitere Studium! 698

5 Aus der Einleitung von Norvig, 1992: The premise of this book is that you can only write something useful and interesting when you both understand what makes good writing and have something interesting to say. This holds for writing programs as well as for writing prose. As Kerningham and Plauger put it on the cover of Software Tools in Pascal: Good programming is not learned from generalities, but by seeing how significant programs can be made clean, easy to read, easy to maintain and modify, human-engineered, efficient, and reliable, by the application of common sense and good programming practices. Careful study and imitations of good programs leads to better writing. Kerningham and Plauger 699

6 700

7 29.2 Vorbereitung auf die Klausur Zur Vorbereitung auf die Klausur prüfen Sie sich selbst und versuchen Sie, ob Sie die folgenden Fragen beantworten können: Auf welche Grundoperationen beziehen wir uns bei der funktionalen Programmierung? Erklären Sie den special form operator lambda. Was ist die Bedeutung eines funktionalen Ausdrucks? denotationell, operational? Wann sind beide Semantikdefinitionen äquivalent, wann nicht? Was ist das Substitutionsmodell der Auswertung? Welche Reduktionsstrategien gibt es? Erklären Sie die Begriffe Striktheit, vorgezogene Auswertung, verzögerte Auswertung. Welche Rolle spielt die Umgebung bei der Auswertung? Was sind Funktionen höherer Ordnung? Welche Funktionen bilden den Werkzeugkasten für den Entwurf von Funktionen? Warum sind funktionale Abschlüsse so wichtig? Was ginge nicht so einfach, wenn es in Scheme keine closures gäbe? Wann ist eine Definition rekursiv? Welche Prozesse werden durch rekursive Funktionen ausgelöst? Was ist Endrekursion? Wie überführen Sie eine allgemeine lineare Rekursion in eine Endrekursion? Können Sie eine endrekursive Funktion definieren, die die Länge einer Liste errechnet, oder die Funktion map endrekursiv definieren? Nennen Sie ein Beispiel für eine Baumrekursion. Nennen Sie ein Problem, das durch backtracking gelöst werden kann. Nach welchem Schema geht man beim backtracking vor? Welche Probleme lassen sich mit dem in der Vorlesung behandelten backtracking- Schema nicht lösen? Warum nicht? Läßt sich die Unifikation als pattern matching Problem formulieren? Was ist nötig, den Strom-orientierten Programmierstil in Scheme einzubetten, d.h. welche Sprachelemente müssen wir nachbilden? Welche Vorteile bringt verzögerte Auswertung? Was ist ein Datentyp? Welches Typsystem verwendet Scheme? 701

8 Was ist ein rekursiver Datentyp? Nennen Sie ein Beispiel. Was ist eine Spezifikation? Was ist eine Zusicherung (assertion)? Wann ist ein Programm korrekt? Wie stellen Sie sicher (und beweisen Sie), daß eine rekursive Funktion terminiert? Für welche Algorithmen haben wir Modifikatoren (set!) verwendet? Warum war das nötig? Welche Konsequenzen hat der Einsatz von Modifikatoren für die Semantik eines Programms? Wie unterscheiden sich generische Funktionen in CLOS von der Nachrichtenmetapher in Java? Was sind Ergänzungsmethoden? Was ist Methodenkombination? Was sind Symbole (in Scheme)? Nennen Sie je ein Problem, für das Sie den Algorithmus zur Lösung lieber in Prolog oder lieber in Scheme programmieren würden und begründen Sie Ihren Vorschlag. 702

9 A Verzeichnisse 703

10 Index =, 96 E/A-Relation, 60 Church-Rosser-Eigenschaft, 159 Übungsschein, 37 8-Damen-Problem, 312 als backtracking-problem, 327 Abbilden(map), 242 Ableitungsbaum, 113 abs, 90 Abschluß, siehe closure Abstraktion Datenabstraktion, 48, 111 funktionale Abstraktion, 48 Funktionsobjekt, 54 Namensgebung, 48 acos, 90 add1, 117 Akkumulator Endrekursion, 224 Akzessoren, 84 Algorithmus Beschreibung als Programm, 12 Definition, 12, 620 determiniert, 13 deterministisch, 13 Implementation, 263 nebenläufig, 13 nicht-deterministisch, 13 sequentiell, 13 Spezifikation, 263 terminieren, 13 Alphabet, 70 and, 97 and/or-trees, 415 Animation, 290 append, 102, 109 applikativ, 165 Argument Funktion, 60 Aristoteles, 409 ASCII-Zeichensatz, 132 asin, 90 assertions, 177 assoc, 112, 127 Assoziationsliste, 112 assq, 112, 127 assv, 112, 127 atan, 90 Atome, 43 Aufrufkeller, 223 Ausdruck, 43 Konstruktion, 46 Auslöschung, 92 Auswertung Normal form, 163 verzögert, 97, 164 vorgezogen, 97, 164 Backtracking, 311 objektorientiert, 535 Suchraum, 322 Backtracking-Schema, 323 Baukastenansatz, 239 Baum Ableitungsbaum, 113 baumartig Rekursion, 210 Bezugstransparenz, 161, 690 Definition, 159 Block, 68 blocks world, 449 bottom,

11 caching, 630 car, 105, 106 catch-all, 63 cddddr, 106 cdr, 105, 106 ceiling, 90 char, 133 Church, Alonzo, 54, 56 Clobbered Sibling Goal Problem, 423 CLOS Meta-Methoden, 467 closure, 281 Common Lisp, 28 complex?, 89 cons, 104, 109 Punktnoatation, 104 cons-zellen, 106 contract Modul, 263 contract.ss, 179 cos, 90 Curry-Verfahren, 277 Datenabstraktion, 84 Datenstruktur rekursiv, 107 Datentyp, 84, siehe Typ abstrakt, 84 Datum Julianisch, 99 debugging, siehe Fehlersuche defclass, 460 define-struct, 147 deklarativ, 159 Delegation, 534 deriv, 237 Dichte, 496 digit, 140 Disjunktion, 96 dotted pair, 109 draw.ss, 214 DrScheme Aufruf, 39 Fehlermeldungen, 42 teachpacks, 37 eager evaluation, 164 Eliza, 345, 346 Endrekursion, 224 environment, siehe Umgebung eq?, 125 equal?, 96, 125 eqv?, 125 Eratosthenes, 628 Ereignisquellen, 511 Ereignisse Weckaufträge, 511 Erfolgslisten-Verfahren, 321 Ergänzungsmethoden, 483, 484 evaluation eager, 97 lazy, 97 evaluator, 38 Evaluierung, 162 exp, 90 expressions, 38 expt, 90 extent, siehe Lebensdauer Fakten, 645 Fallunterscheidungen, 61 einseitig unless, 62 when, 62 Konditional cond, 62 zweiseitig if, 62 Falten, 245 Fehlersuche, 167 Fehlervermeidung,

12 first-name, 111 floor, 90 folding, 245 for-each, 340 fractals-module.ss, 214 Frege, G., 201 Funktion E/A-Relation, 60 partielle Anwendung, 277 Definition als Abstraktion, 53 generisch, 88, 464 kombinatorisch, 306 Memo-Funktion, 631 polymorph, 88 Signatur, 60 Typ, 60 Funktionen höherer Ordnung, 234 Funktionsdefinition, 58 Funktionskomposition, 280 Definition, 280 garbage collection, 226 Genauigkeit, 91 Generische Funktion, 464 gensym, 615 Gleichheit Listen, 123 Gleichheitsprädikate, 125 Gleichverteilung, 492 goldener Schnitt, 210 GPS, 406 Repräsentation der Regeln, 411 GPS Version 2, 429 gps1, 413 graphing.ss, 235 gui.ss, 285 Hoare, 26 Hopper Grace, 167 Identität, 123 Instanziierungsvariante, 647 integer?, 89 interleave, 307 Iteration, 249 join, 654 Julianisches Datum, 99 Kalender, 99 kanonisch, 162 Kardinalität, 85 Klassenattribute, 461 Klassenpräzedenzliste, 479 Klausel, 645, 648 Kopf, 648 Körper, 648 Kleene-Stern, 120 Klötzchenwelt, 449 Kochsche Schneeflocke, 212 Kombinatorik, 306 Kommentar, 46 Konfluenz, 159, 161 Kongruenzmethode, 495 Konjunktion, 96 Konkatenation Listen, 102 Konstruktoren, 84 Kontrollabstraktion Delegation, 534 Koreferenz, 353 Korrektheit, 177 partiell, 177 total, 177 lambda-abstraktor, 54 last-name, 110 lazy evaluation, 164 Leaping Before You Look Problem, 424 Lebensdauer, 69 Leerer Wert,

13 length, 101, 103 let lambda, 66 Lexikalische Analyse, 384 Lexikalische Einheiten, 51 lilies-module.ss, 220 Lisp-Familie, 28 list, 101, 109 list-ref, 130 Liste als Menge, 103 Definition, 100 leere Liste, 101 rekursive Definition, 107 Repräsentation, 122 Unterlisten, 306 Listen als closure, 149 Konstruktion, 104 Permutationen, 308, 309 Unterlisten, 307 Verweben, 307 List of successes, 321 Literatur Kommentare, 203 Programmierung funktional, 33 logisch, 34 objektorientiert, 34 relational, 34 log, 90 M.C. Escher 3 Welten, 114 Macro Definition, 608 Effizienzsteigerung, 611 make-vector, 145 mapping, 242 max, 90 means-ends-analysis, 407 Mehrfachauswertung bei Macros, 613 Mehrfachvererbung Methodenkombination, 480 member, 103, 126 member?, 128 memoization, 630 memq?, 126 memv?, 126 Mensa-Szenario, 522 Methodenkombination, 480 Akzessorfunktion, 482 Initialisierung, 500 Operatormethodenkombination, 482 Standard-Methodenkombination, 484 Methodenkonbination, 479 min, 90 Modell dynamisch, 522 Simulation, 487 statistisch, 490 Modifikatoren, 162 Modul, 253 Modularisierung, 267 modulo, 90 Monkey and banana problem, 441 Muster Variable, 349 my-cons, 149 my-length, 128 Nachklappern, 223 Nachrichtenmetapher, 531 broadcast, 533 CLOS, 533 Name nicht atomar, 55 Namen Scheme,

14 Namenskonventionen, 80 Natürliche Zahlen, 204 Negation, 96 Newton-Verfahren, 264, 269, 270 Normalform Auswertung, 162 not, 97 Notation Kommentar, 46 null?, 101 number?, 89 one-of, 115 Operator Opratorpräzedenz, 43 Operatoren logische, 96 or, 97 Paare, 104 pair?, 104 Parameter Aktualparameter, 60 Formalparameter, 60 PARRY, 348 pattern matching, 649 pattern matching Eliza, 349 Peanosche Axiome, 204 Planen, 430 Polymorphie Formen von, 88 Funktionen, 88 leere Liste, 101 Typen, 88 Pradikate zweiter Ordnung, 660 Pragmatik, 157 Primzahlen Sieb des Eratosthenes, 626 Problemlösen, 406 process.ss, 143 Programmentwurf Phasen, 406 Programmieren explorativ, 421 Programmiersprache, 153, 157 berechnungsuniversell, 27 Common Lisp, 28 deklarativ, 159 Lisp-Familie, 28 scripting language, 29 Programmierstil, 14, 689 Programmierung, 381 applikativ, 47 funktional, siehe applikativ Grundstile der Programmierung, 14 Spaghetti-Code, 15 stromorientiert, 618 von-neumann Programmierung, 14 programmierung imperativ, 636 zustandsoroentiert, 636 Prolog, 644 Fakten, 645 Klausel, 645 Regeln, 645 Prozeß baum-rekursiv, 225, 631 iterativ, 224 linear-rekursiv, 222 Prädikat Semiprädikat, 352 Prädikate Semiprädikat, 103 Präzedenzgraph, 475 Quelltyp, 85 quotient, 90 Quotierung, 75 random,

15 random-elt, 115, 117 random-real, 117 rapid prototyping, 421 rational?, 89 real?, 89 recursive subgoal problem, 425, 426 Reduktion äußere, 163 Aufwand, 164 innere, 163 Reduktionsstrategie Scheme, 165 Referentielle Transparenz, 159 Regel deklarativ, 647 oprational, 647 prozedural, 647 Regeln, 645 Rekursion Rekursiver Abstieg, 114 rekursiver Abstieg, 114 allgemein, 208 baumartig, 210 Definition, 204 endrekursiv, 224 geschachelt, 217 indirekt, 209, 415 linear, 206 minimalrekursiv, 205 Prozesse, 221 verschränkt, 209 remainder, 90 reverse, 110 Richtungsunabhängigkeit, 690 round, 90 Rucksackproblem, 309 Running around the Block Problem, 421 Rückwärtsverkettung, 647 s-expressions Lisp, 43 Schaltjahr, 99 Scheinobjektivität, 25 Schlüsselwörter, 52 scope, siehe Sichtbarkeit Segmentvariable, 357 Seiteneffekt bei Macros, 613 Seiteneffekte, 161 Semantik, 157 denotational, 690 denotationell, 158 in hybriden Sprachen, 160 operational, 158, 690 Scheme Ausdrücke, 165 strikt, 172 Semiotik, 71 Semiprädikat, 103 Definition, 352 Sequenz, 169 Sichtbarkeit, 68 Sieb des Eratosthenes, 626 Signatur einer Funktion, 60 Simulation, 487 Ablaufschema, 502 Basissystem, 498 diskret ereignisorientiert, 489 Weckermetapher, 511 Mensa-Szenario, 522 Modell, 487 Validierung, 487 Simulationsszenario, 503 sin, 90 special form define, 50 Reduktionsstrategie, 167 special form operator, 168 special form,

16 Sprachsynthese, 143 Sprunganweisung, 15, 637 sqrt, 90, 265 stack, 466 Stapel, 466 Steuerzeichen, 133 Stilistik Scheme, 130 Stream, siehe Strom Striktheit, 172 Scheme, 173 string Konkatenation, 136 string-append, 136 string-length, 136 string=?, 125 Strings, 135 Strom Generatoren, 618 Kopfform, 620 rekursive Struktur, 619 Stromfunktion, 620 Transformatoren, 618 strong typing, 86 structure, 147 sub1, 117 Substitutionsmodell, 162 Suche nicht-deterministisch, 335 super call, 483 Symbol, 71 Scheme, 74 Symbole, 74 Mehrdeutigkeit, 71 Symboltabelle, 50 Syntax, 157 Systemaufrufe, 143 tan, 90 Tangente an eine Funktion, 270 teachpack, 262 draw.ss, 214 fractals-module.ss, 214 graphing.ss, 235 gui.ss, 285 lilies-module.ss, 220 my-vector-graphics.ss, 214 show-queen.ss, 317 tools-module.ss, 116, 248 world.ss, 298 Term, siehe Ausdruck Terminalzeichen, 113 Terminierungsbeweis mymap, 220 power, 219 Testfälle, 199 trace, 119 Traversieren eines Baumes, 392 truncate, 90 Typ, 84 einer Funktion, 60 Disjunktheit, 87 elementar, 84 Funktionstyp, 84 generisch, 84 strukturiert, 84 Typisierung dynamisch, 86 statisch, 86 Typsystem latent, 86, 691 manifest, 86, 691 Umgebung, 67 global, 67 lokal, 67, 68, 281 Umlaute, 132 und/oder-bäume, 415 Unifikation, 649 Universum der Werte, 83 untrace, 119 Validierung,

17 Variable, 50 Bindung, 51 freie, 59 gebundene, 59 Lebensdauer, 69 metalinguistisch, 113 referenzieren, 50 Sichtbarkeit, 68 vector, 145 Vektoren, 145 Verarbeitungsmodell, 13, 689 Benutzermodell, 22 funktional, 18 imperativ, 15, 16 logisch, 644 mystisch, 23, 25 objektoerientiert, 17 relational, 20, 643 stromorientiert, 21 Verbund, 147 Vereinfachung, 162 Vererbung, 466, 472 Attribute, 474 Mehrfachvererbung, 473, 474 Attribute, 473 Präzedenzgraph, 475 Veretilung Exponentialverteilung, 492 Normalverteilung, 493 Vergleichsoperatoren, 94 Vergleichsprädikate =, 96 equal?, 96 Verschatten Namen, 67 Verteilung Gleichverteilung, 492 Vierfarbenproblem, 338 weak typing, 86 Webpage zur Vorlesung, 35 Weckermetapher, 511 Wert eines Terms, 161, 162 undefiniert, 169 Wiederholung, 249 Wissensrepräsentation, 406 writeln, 117 Wurzel, 113 Zebra-Rätsel, 662 Zeichen, 70, 71 ASCII, 132 Codierung, 134 druckbar, 133 Unicode, 135 Zeichenketten, 135 Zieltyp, 85 Zufallszahlen Kongruenzmethode, 495 Transformationsmethode, 496 Zufallszahlengeneratoren, 494 Zusammensetzung Listen, 102 strings, 136 Zusicherungen, 177, 179 Wahrheitswerte, 94 Wandlung Präfix-Infix,

18 Verzeichnis der Definitionen Ableitungsbaum, 113 Algorithmus, 12 Eigenschaften, 13 Implementation, 263 Auswertung verzögert, 164 vorgezogen, 164 baumartig Rekursion, 210 berechnungsuniversell, 27 Bezugstransparenz, 159 closure, 68 Curry-Verfahren, 277 Datentyp, 84 Disjunktheit der Typen, 87 Deklarative Sprache, 159 evaluation eager, 164 lazy, 164 Funktion höherer Ordnung, 234 Funktionaler Abschluß closure, 68 Funktionskomposition, 280 Kardinalität, 85 Kopfform, 620 Korrektheit, 177 partiell, 177 total, 177 Liste, 100 Macro, 608 Natürliche Zahlen, 204 Normalform eines Terms, 162 Parameter Formale und Aktualparameter, 60 Programmiersprache, 158 Prädikat Semiprädikat, 352 Referentielle Transparenz, 159 Rekursion Definition, 204 Endrekursion, 223 geschachtelt, 217 indirekt, 209 linear, 206 minimalrekursiv, 205 verschränkt, 209 Semantik Bedeutung eines Terms, 161 strikt, 172 Semiprädikat, 352 Sichtbarkeit, 68 Striktheit einer Funktion, 172 Auswertung, 172 Stromfunktion, 620 Symbol, 71 in Scheme, 74 Typsystem latent, 86 manifest, 86 Umgebung 712

19 global, 67 lokal, 67 Variable Lebensdauer, 69 Sichtbarkeit, 68 Vearbeitungsmodell, 13 Wert eines Terms,

20 Verzeichnis der Beispiele 8-Damen-Problem, 312 alle Löungen, 319 als allgemeines Backtrackingproblem, 327 Ableitungsfunktion, 237 Ackermann-Funktion, 217 amb-collect: Summanden von Sieben, 337 Anzug Aggregat Methodenkombination, 480 Backtracking CLOS, Delegation, 535 Suche in den natürlichen Zahlen, 325 allgemeines Schema, 323 nicht-deterministisch, 342 broadcast: Nachricht an alle Objekte, 533 case, 79 CLOS Queue,Schlangen, 459 broadcast, 533 Closures als Listenrepräsentation, 149 Denksportaufgabe: Missionare auf der Hängebrücke, 330 Dialog-Werkzeug allgemein, 380 Dreiecke, 78 mit contract, 182 Eliza, 362 Fakultät, 91 Fenster mit Eingabefeld, 287 Fenster mit QUIT-button, 287 Fibonacci-Zahlen baumrekursiv, 210 Fibonaccizahlen endrekursiv, 225 GPS Version 1, 413 Version 2, 430 Klötzchenwelt, 450 Labyrinthsuche, 444 Monkey and banana problem, 441 Inhalt einer Kugel, 53 Initialisierung mittels initialize, 501 Klötzchenwelt, 450 Kunden-Bediensystem, 515 Labyrinthsuche, 444 Lazy Scheme, natürliche Zahlen, 175 Listen Unterlisten, 307 Länge einer Liste endrekursiv, 224 Länge einer Liste Nachklappern, 222 Macro Mittelwert von mehreren Zahlen, 611 my-unless, 610 my-when, 610 my-while, 610 myif,

21 quasiquote, 609 Maikatzen von Storm, 300 member funktional, 128 relational, 659 Memoization, 631 Mensa-Szenario 1, 522 Modulo-Funktion geschachtelt rekursiv, 217 Monkey and banana problem, 441 Multiplikationsalgorithmus funktional, 19 imperativ, 16 Mustervergleich (pattern matching), 349 my-if Nicht-Striktheit von Kontrollstrukturen, 174 n-tes Element einer Liste, 130 Negator, 379 Newton-Verfahren allgemeines, 270 msqrt, 265 mit contract, 266 Parsing von Namen Variante 1, 129 Parsing: Vor- und Nachname, 110 Permutationen von Listenelementen, 309 Potenzieren Induktionsbeweis, 219 Prolog in Scheme Severus Snape s Rätsel, 667 Zebra-Rätsel, 662 member, 659 Prolog: Ahnentafel, 653 Pythagoras: Mein erstes Scheme- Programm, 50 Quadratwurzel, 263 Queue CLOS, Schlangen, 459 FIFO-Queue, Warteschlange, 467 LIFO-Queue, Stack, 466 Stack, 466 Rucksackproblem: Geld wechseln, 309 Schaltjahr mit Konditional, 98 mit logischen Operatoren, 100 Severus Snape s Rätsel, 667 Sieb des Eratosthenes stromorietentiert, 626 Simulation Mensa-Szenario 1, 522 Mensa-Szenario 2: Spezialisierte Essensausgaben und Gäste, 525 Basissystem, 498 Kunden-Bediensystem, 515 Strom Natürliche Zahlen, 622 Sieb des Eratosthenes, 626 Teilstücke, 624 stream-ref, 623 abbilden, 623 filtern, 623 for-each, 624 Implemetation, 622 Test cases, 200, 718 Testfälle für my-length, 201 Textaufgaben lösen, 382 Textformatierung justify, 137 Textgenerierung Adjektive und Präpositionen, 120 rekursiver Abstieg, 114 Grammatik 715

22 endliche Sprache, 112 The Name of The Song, 77 Uhr world.ss, 292 Verweben von Listen, 307 Vierfarbenproblem mit amb, 338 Wandlung von Zahlen zu Text, 138 Zebra-Rätsel, 662 Übersetzer regelbasiert,

23 Verzeichnis der Autoren Abelson, Harold, 8, 10, 34, 203, 632 Adams, Douglas, 73, 273 Aristoteles, 408 Bauer, F. L., 12 Bird, R., 7, 33, 152, 172 Bobrow, Daniel G., 382 Brinch-Hansen, Per, 253 Carroll, Lewis, 72, 77, 155, 156 Church, Alonzo, 56 Clocksin, W.F., 641 Clocksin, W. F., 34 Conan Doyle, Sir Arthur, 641 Dijkstra, E. W., 15 Frege, G., 201 Goos, G., 12 Graham, Paul, 34, 203, 277 Hoare, C. A. R., 26, 609 Hofstadter, D. R., 203 Holyer, Ian, 202, 617 Keene, S., 34 Klaus, Heinz-Günther, 637 Knuth, Donald, 494 McCarthy, John, 19, 28 McDermott, Drew, 456 Mellish, C., 641 Meschkowski, H., 204 Norvig, Peter, 7, 29, 31, 37, 56, 109, 203, 240, 609, 636, 641 Orwell, George, 125 Page, Bernd, 488 Paul Graham, 482 Press, W. H., 494 Raphael, Bertram, 154, 643 Reiser, Martin, 459, 488, 516 Rowling, J.K., 667 Schefe, Peter, 12 Schönfinkel, M., 277 Shapiro, E., 34 Shapiro, Ehud, 641 Sterling, E., 34, 641 Storm, Theodor, 211 Strube, G., 160 Sussman, Gerald, 423 Sussman, Gerald J., 8, 10, 34, 203, 632 Sussman, Julie, 8, 10, 34, 203, 632 Wadler, P., 7, 33, 152, 172 Weigert, Alfred, 99 Weizenbaum, Joseph, 24, 345 Wirth, Niklas, 84, 459, 488, 516 Zimmermann, H., 99 Zwittlinger, H., 68 Züllighoven, Heinz, 177, 204 Nagel, H.-H., 24 Newell, Alan,

24 Verzeichnis der wörtlichen Zitate Abelson und Sussmann A computer language is not just a way of getting a computer to perform operations, 10 Adams, Douglas So long and thanks for all the fish., 73 The Ultimate Question of Life, the Universe, and Everything, 273 Aristoteles Unsere Überlegung betrifft nicht das Ziel, sondern die Mittel es zu erreichen., 408 Brinch-Hansen, Per Nesting is for Birds., 253 Carroll, Lewis Jabberwocky, 156 The name of the song is called Haddocks Eyes., 77 There s a nice knock-down argument for you, 72 Conan Doyle, Sir Arthur How, in the name of good fortune, did you know all that, Mr. Holmes?, 641 Frege, G. Die Mathematik sollte eigentlich ein Muster an logischer Klarheit sein., 201 Hoare, C. A. R. One thing the language designer should not do is to include untried ideas of his own., 609 Eine unzuverlässige Programmiersprache, aus der unzuverlässige Programme hervorgehen, 26 Klaus, Heinz-Günther Satire: Man mordet nicht nach Sprungbefehl, 637 McDermott, Drew Remember GPS?, 456 Nagel, H.-H. Wer die Ergebnisse unbesehen glaubt, sollte gar nicht erst anfangen, Informatik zu studieren, 24 Newell, Alan It is not my aim to surprise or to shock you, 405 Norvig, Peter Lisp s flexibility allows it to adapt as programming styles change, 31 The first step in writing a macro, 609 The name lambda comes from the mathematician Alonzo Church, 56 You will never become proficient in a foreign language by studying vocabulary lists.,

25 Orwell, George All animals are equal, but some animals are more equal than others., 125 Press, W. H. A working, though imprecise, definition of randomness, 494 Storm, Theodor Von Katzen, 211 Weizenbaum, Joseph It is said that to explain is to explain away.,

26 Scheme-Sprachelemente :initarg, 469 :initializer, 470 :initvalue, 469 length acc, 224 string->symbol, 74 symbol->string, 74 add, 205 always, 284 amb, 335 amb-assert, 336 and, 45 apply, 240 begin, 169 big-bang, 291 call-next-method, 484 case, 79 change-class, 527 check-error, 201, 718 check-expect, 200, 201, 718 choice-index, 286 clas-cpl, 479 class-of, 468 CLOS call-next-method, 484 defclass, 460 defgeneric, 464 defmethod, 464 tell, 533 compose, 280 cond, 62 conjoin, 284 count-change, 311 create-window, 285 current-seconds, 297 date, 297 defclass, 461 defclass*, 461 defgeneric, 464 defgeneric*, 464 define, 49, 50 defmethod, 464 delay, 621 dialog-tool, 380 disjoin, 284 dolist, 611 dotimes, 611 draw-message, 286 else, 63 empty-stream?, 622 enqueue, 466 eqv?, 74 even?, 209 filter, 244 find-all, 411 find-all-not, 411 findall, 661 force, 621 general-backtracking, 323 generic-arity, 468 generic-methods, 468 graph-fun, 235 head-stream, 622 hide-window, 285 if, initialize, 501 iterate,

27 lambda, 55 let, 64, 65, 67 letrec, 249 make, 469 make-button, 286 make-choice, 286 max, 45, 240 memo, 632 mod, 217 more-specific?, 468 my-length, 222 my-reverse, 228 mymap, 206 negate, 411 newton, 271 odd?, 209 on-key-event, 291 on-redraw, 291 on-tick-event, 291 or, 45 power, 219 push, 466 quasiquote splice, 610 queue, 459 quote, 75 reduce, 246 reduce-right, 248 reverse append, 230 reverse-akk, 232 round, 237 rule-based-translator, 378 set, 166 setf, 506 show-window, 285 sim-actor, 499 sin, 45 special form define, 50 special form operator case, 79 cond, 62 else, 63 define, 49 if, lambda, 55 let, 64, 65 unless, 62 when, 62 splice quasiquote, 610 sqrt, 43, 45 stop-when, 292 stream-ref, 623 STUDENT, 382 student, 393 subclass?, 468 subs, 306, 307 symbol?, 74 tail-stream, 622 teachpack graphing.ss, 235 text-contents, 286 truncate, 237 undefined, 170 unless, 62 until, 611 untilm, 251 void, 171 void?, 171 when, 62 while, 610,

28 722

29 B Kurzreferenz: Scheme B.1 Funktionslexikon Verknüpfung von Funktionen (curry f arg1... argn) : Partielle Anwendung von f auf arg1... argn von links nach rechts (rcurry f argm... argn) : Partielle Anwendung von f, Bindung der Argumente von rechts nach links (compose f1... fn) : Funktionskomposition, Hintereinanderausführung (f1 (... (fn x))) (conjoin p1?... pn?) : Konjunktion von Prädikaten (disjoin p1?... pn?) : Disjunktion von Prädikaten (always x) : Die konstante Funktion, deren Wert unabhängig von den Argumenten x ist Idiome der funktionalen Programmierung (apply f xs) : Anwendung einer Funktion f auf eine Liste von Argumenten xs (map f xs1... xsn) : Abbilden einer oder mehrerer Listen auf die Liste der Bilder der Elemente. Die Stelligkeit der Funktion f muß mit der Anzahl der angegebenen Listen xs1... xsn usw. übereinstimmen. (filter p? xs) : Die Liste der Elemente von xs, die p? erfüllen (reduce f xs seed) : Paarweise Verknüpfung der Elemente von xs mit f, Startwert seed, (f x1 (f x2 (... (f xn seed)))) (iterate f end? start) : Die Liste der Funktionsanwendungen, bis end? erfüllt ist, (start (f start) (f (f start))...) (untilm f end? start) : Der erste Wert der Folge start, (f start), (f (f start)),... erfüllt der end? (some p? xs) : Finde das erste Element von xs, das das Prädikat p? erfüllt, ansonsten gebe #f zurück. (every p? xs) : wahr, wenn alle Elemente von xs das Prädikat p? erfüllen. (assoc key alist) : Suche in der Assoziationsliste alist das erste Paar, daß das als Kopf den Schlüssel key enthält. (rassoc key alist) : Suche in723 der Assoziationsliste alist das erste Paar, daß das als Rest den Schlüssel key enthält.

30 B.2 CLOS Klassen ( defclass <Name der Klasse> ({ <Oberklassen> }) {( <Slot> {<Slot keys> })} {<Class keys>} ) Optionen für die Attribute (slots): :initarg keyword: <key> Schlüsselwort für den Konstruktor :initializer <func> Initialisierungsfunktion :initvalue <value> Defaultwert :reader <name> Akzessorfunktion zum Lesen des Wertes :writer <name> Akzessorfunktion zum Schreiben des Wertes :accessor <name> Akzessorfunktion zum Lesen und Schreiben des Wertes :accessor <name> Akzessorfunktion zum Lesen und Schreiben des Wertes :type <type> Typdefinition für die Klasse des slots ( defgeneric <name>( { ( <arg> <class> )} {<arg> }) {:combination <combination>} { :documentation <string> } ) ( defmethod <name> [ < q u a l i f i e r > ] ( { ( <arg> <class> )} {<arg> }) { :documentation <string> } ) Ergänzungsmethoden < q u a l i f i e r > : : = : a f t e r :before :around Methodenkombinationen generic + combination g e n e r i c l i s t c o m b i n a t i o n generic min combination generic max combination generic append combination 724

31 generic append! combination generic begin combination generic and combination generic or combination B.3 Prolog-in-Scheme-Lexikon Variable:?X : Die Namen von Variablen beginnen mit einem Fragezeichen. Anonyme Variable:? : Ein Fragezeichen bezeichnet eine anonyme Variable, die in Ausgaben unterdrückt wird. Regeln: Klauseln mit Prämissen (Zielen) : <Klausel Kopf> : <Ziel 1>... <Ziel n> Negation: not : Der not-oprator negiert eine Klausel : (not <Klausel>) Ungleichheit:!= : Das!=-Prädikat ist wahr, wenn zwei Strukturen oder Variablen nicht unifizieren : (! = <struktur1> <struktur2> ) Das assert-macro: : Trage eine Klausel in die Datenbasis ein. (< <Klausel> ) Das query-macro:?- : Anfrage, durch welche Variablenbindungen die Konjunktion der Ziele in der Anfrage erfüllt werden kann. (? <Ziel 1>... <Ziel n>) findall: findall sammelt alle Resultate des Prädikatsaufrufs <Ziel> in einer Liste <Liste> als instanziierte Varianten des Ausdrucks <Term>. ( f i n d a l l <Term> <Ziel> <Liste> ) count: count zählt die Resultate des Prädikatsaufrufs <Ziel> und bindet die Anzahl an die Variable <Var>. ( count <Var> <Ziel> ) 725

32 Funktionale Auswertung: is: Das is-prädikat bindet den Wert eines funktionalen Ausdrucks an eine Variable. Alle Variablen des Ausdrucks müssen vorher an Werte gebunden sein. ( i s <Var> <Ausdruck> ) Funktionale Auswertung: test: Das test-prädikat evaluiert einen funktionalen Ausdruck. Das Prädikat ist erfüllt, wenn der Ausdruck wahr ist. Alle Variablen des Ausdrucks müssen vorher an Werte gebunden sein. ( t e s t <Ausdruck> ) 726

33 B.4 Unterschiede zwischen den Schemedialekten, DrScheme, Version Zahl der Operanden Lehresprachen: Fortgeschritten Für +,, and, or sind mindestens zwei Operanden notwendig. Sprache: F o r t g e s c h r i t t e n ; > (+ 1) procedure + : expects at l e a s t 2 arguments, given 1 : 1 > ( and #t ) and: expected at l e a s t two expressions a f t e r and... Kombo, R5RS, Module (#lang scheme): Für +,, and, or ist die Operandenzahl beliebig. Sprache: F o r t g e s c h r i t t e n ; > (+ ) 0 > (+ 1) 1 > ( ) 4 > ( and ) #t > ( and #t ) #t Lehresprachen: Fortgeschritten eval ist undefiniert. eval Sprache: F o r t g e s c h r i t t e n ; > eval reference to an i d e n t i f i e r before i t s d e f i n i t i o n : eval > ( eval 1) reference to an i d e n t i f i e r before i t s d e f i n i t i o n : eval Kombo, R5RS, Module (#lang scheme): eval ist eine Standardfunktion. Sprache: F o r t g e s c h r i t t e n ; Sprache: Kombo ; > ( eval ( cons 1 2 ) ) (1. 2) > eval # <procedure:eval> 727

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Funktionale Programmierung: Scheme Grundlagen funktionaler Programmierung Idee: Zu lösendes Problem wird als mathematische Funktion formuliert Beispiel Rechtschreibprüfung:

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...

Mehr

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2008/09 Organisatorisches Vorlesung Di und Do, 11-13 Uhr, HS 101-00-036 Dozent Prof. Dr. Peter

Mehr

Übung - Modellierung & Programmierung II

Übung - Modellierung & Programmierung II 1 Übung - Modellierung & Programmierung II Mathias Goldau, Stefan Koch, Wieland Reich, Dirk Zeckzer, Stefan Philips, Sebastian Volke math@informatik.uni-leipzig.de stefan.koch@informatik.uni-leipzig.de

Mehr

Hansa-Gymnasium Scheme-Einführung Uwe Debacher 2007-1 -

Hansa-Gymnasium Scheme-Einführung Uwe Debacher 2007-1 - - 1 - Alle heute gebräuchlichen Computer-Sprachen fallen unter den Oberbegriff problemorientierte Sprachen, womit eine weitgehende Unabhängigkeit gekennzeichnet wird von der Maschine auf der die Software

Mehr

Dynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50

Dynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Dynamische Programmiersprachen David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Organisatorisches Aufbau: Vorlesung 2 SWS Übung Kurzreferat Projekt Prüfung Übung wöchentliches Aufgabenblatt in

Mehr

Die Programmiersprache Scheme... DrRacket: Die Programmierumgebung http://www.racket-lang.org/ Sprache: Semantik. Sprache: Syntax

Die Programmiersprache Scheme... DrRacket: Die Programmierumgebung http://www.racket-lang.org/ Sprache: Semantik. Sprache: Syntax Informatik I 21. Oktober 2010 2. Informatik I 2. Jan-Georg Smaus 2.1 2.2 Albert-Ludwigs-Universität Freiburg 21. Oktober 2010 Jan-Georg Smaus (Universität Freiburg) Informatik I 21. Oktober 2010 1 / 40

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Lernumgebungen fürs Programmieren: Karas... und Turtles

Lernumgebungen fürs Programmieren: Karas... und Turtles Lernumgebungen fürs Programmieren: Karas und die Turtles Raimond Reichert raimond.reichert@acm.org beta Eine Kernidee der Informatik: Computer formales System Intuition Formale Beschreibung Das Ziel: Algorithmisches

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Verträge für die funktionale Programmierung Design und Implementierung

Verträge für die funktionale Programmierung Design und Implementierung 1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Einführung in ActionScript

Einführung in ActionScript Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012 Agenda Allgemeine Einführung

Mehr

Ruby. Programmieren mit Zucker. Thomas Kühn

Ruby. Programmieren mit Zucker. Thomas Kühn Ruby Programmieren mit Zucker Thomas Kühn Gliederung Geschichte Philosophie Syntax mit Zucker Sprachkonzepte Pakete und Frameworks Ausblick Beispiele Yukihiro Matz Matsumoto Geboren am 14.April 1965 Geschichte

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen,

Mehr

Funktionale Programmierung

Funktionale Programmierung Schleifen 1 Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 3 Teil I Jedem Anfang wohnt ein Zauber inne 4 Über mich Diplom in Informatik in Saarbrücken

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

-Which word (lines 47-52) does tell us that Renia s host brother is a pleasant person?

-Which word (lines 47-52) does tell us that Renia s host brother is a pleasant person? Reading tasks passend zu: Open World 1 Unit 4 (student s book) Through a telescope (p. 26/27): -Renia s exchange trip: richtig falsch unkar? richtig falsch unklar: Renia hat sprachliche Verständnisprobleme.

Mehr

WS 2011/2012. Georg Sauthoff 1. November 10, 2011

WS 2011/2012. Georg Sauthoff 1. November 10, 2011 in in WS 2011/2012 Georg 1 AG Praktische Informatik November 10, 2011 1 gsauthof@techfak.uni-bielefeld.de Kontakt in Dr. Georg Email: gsauthof@techfak.uni-bielefeld.de M3-128 in Organisation der Übungen

Mehr

CLOS. Objektorientierte Programmierung in Lisp. Thomas Rühr, Lorenz Mösenlechner. awbs-is@in.tum.de

CLOS. Objektorientierte Programmierung in Lisp. Thomas Rühr, Lorenz Mösenlechner. awbs-is@in.tum.de CLOS Objektorientierte Programmierung in Lisp Thomas Rühr, Lorenz Mösenlechner awbs-is@in.tum.de CLOS p. Überblick Klassen Instanzen Generische Funktionen nkombination Vergleich zu Java CLOS p. Klassen

Mehr

Vorlesung Software-Reengineering

Vorlesung Software-Reengineering Vorlesung Software-Reengineering Prof. Dr. R. Koschke 1 D. Simon 2 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 2 Institut für Software Technologie Fakultät

Mehr

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf.

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf. 1 The zip archives available at http://www.econ.utah.edu/ ~ ehrbar/l2co.zip or http: //marx.econ.utah.edu/das-kapital/ec5080.zip compiled August 26, 2010 have the following content. (they differ in their

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Stichworte zur Ideengeschichte der Programmiersprachen

Stichworte zur Ideengeschichte der Programmiersprachen Stichworte zur Ideengeschichte der Programmiersprachen Faculty of Technology robert@techfak.uni-bielefeld.de Vorbemerkung Diese Notzien dienen zur Erläuterung des O Reilly Posters über die Entwicklung

Mehr

Kopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen

Kopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen Prolog Syntax Liste, Variable [ Term Liste ] Listenelemente: Trennung durch Komma [1, pferd, klaus] Kopf und Rest einer Liste (head and tail): Trennung durch [K R] = [1, pferd, klaus] (K = 1, R = [pferd,

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache

Mehr

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Fragen f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Wozu evaluiert [f [ ], f [ ]]? Weiteres Beispiel: f [ ] y = [

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

(Prüfungs-)Aufgaben zum Thema Scheduling (Prüfungs-)Aufgaben zum Thema Scheduling 1) Geben Sie die beiden wichtigsten Kriterien bei der Wahl der Größe des Quantums beim Round-Robin-Scheduling an. 2) In welchen Situationen und von welchen (Betriebssystem-)Routinen

Mehr

ISO 15504 Reference Model

ISO 15504 Reference Model Prozess Dimension von SPICE/ISO 15504 Process flow Remarks Role Documents, data, tools input, output Start Define purpose and scope Define process overview Define process details Define roles no Define

Mehr

Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen

Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Überblick Teil 1: Lexen und Parsen Die Sprache LFP +C Professur

Mehr

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health)

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health) Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health) 1 Utilitarian Perspectives on Inequality 2 Inequalities matter most in terms of their impact onthelivesthatpeopleseektoliveandthethings,

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

August Macke 1887-1914 Abschied, 1914 Museum Ludwig, Köln

August Macke 1887-1914 Abschied, 1914 Museum Ludwig, Köln August Macke 1887-1914 Abschied, 1914 Museum Ludwig, Köln Ideas for the classroom 1. Introductory activity wer?, was?, wo?, wann?, warum? 2. Look at how people say farewell in German. 3. Look at how people

Mehr

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Eine Betrachtung im Kontext der Ausgliederung von Chrysler Daniel Rheinbay Abstract Betriebliche Informationssysteme

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Software development with continuous integration

Software development with continuous integration Software development with continuous integration (FESG/MPIfR) ettl@fs.wettzell.de (FESG) neidhardt@fs.wettzell.de 1 A critical view on scientific software Tendency to become complex and unstructured Highly

Mehr

Answer Set Programming

Answer Set Programming Answer Set Programming mit Answer Set Prolog (A-Prolog) Wangler Thomas Logikprogrammierung Institut für Computerlinguistik Universität Heidelberg Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

Kybernetik Das Kybernetische Modell

Kybernetik Das Kybernetische Modell Kybernetik Das Kybernetische Modell Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 05. 06. 2012 Das Modell Das Modell Was ist ein Modell? Ein Modell

Mehr

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part II) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Tel. 0531 295-2599 E-Mail: Hartmut.Helmke@DLR.DE. Vorstellung der eigenen Person

Tel. 0531 295-2599 E-Mail: Hartmut.Helmke@DLR.DE. Vorstellung der eigenen Person Prof. Dr.-Ing. Hartmut Helmke in Deutsches Zentrum für Luft- und Raumfahrt e.v. (DLR) Institut für Flugführung Abteilung Lotsenassistenzsysteme Postfach 32 67 38108 Braunschweig Know-How-Abfrage Fragebogen

Mehr

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe Anfragen für Listen Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe 1 MapReduce-Verfahren Google u.a. verwenden Map-Reduce-Verfahren zur Verarbeitung riesiger

Mehr

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes.

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes. Prediction Market, 28th July 2012 Information and Instructions S. 1 Welcome, and thanks for your participation Sensational prices are waiting for you 1000 Euro in amazon vouchers: The winner has the chance

Mehr

Der Wetterbericht für Deutschland. Read the weather reports and draw the correct weather symbols for each town.

Der Wetterbericht für Deutschland. Read the weather reports and draw the correct weather symbols for each town. Der Wetterbericht für Deutschland Read the weather reports and draw the correct weather symbols for each town. Es ist sehr heiß in Berlin und es donnert und blitzt in Frankfurt. Es ist ziemlich neblig

Mehr

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber Konsequent agile Entwicklung mit funk4onaler Programmierung Michael Sperber Individualso4ware branchenunabhängig Scala, Clojure, Erlang, Haskell, F# Schulungen, Coaching www.acave- group.de funkaonale-

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Teil 4,9 Ich habe mein Handy, aber wo sind meine Schlüssel?

Teil 4,9 Ich habe mein Handy, aber wo sind meine Schlüssel? Teil 4,9 Ich habe mein Handy, aber wo sind meine Schlüssel? Üben wir! Vokabular (I) Fill in each blank with an appropriate word from the new vocabulary: 1. Ich lese jetzt Post von zu Hause. Ich schreibe

Mehr

Hallo, ich heiße! 1 Hallo! Guten Tag. a Listen to the dialogs. 1.02. b Listen again and read along.

Hallo, ich heiße! 1 Hallo! Guten Tag. a Listen to the dialogs. 1.02. b Listen again and read along. We will learn: how to say hello and goodbye introducing yourself and others spelling numbers from 0 to 0 W-questions and answers: wer and wie? verb forms: sein and heißen Hallo, ich heiße! Hallo! Guten

Mehr

Besser PHP programmieren

Besser PHP programmieren Carsten Möhrke Besser PHP programmieren Handbuch professioneller PHP-Techniken Galileo Press Vorwort zur dritten Auflage ц JjlJlli!fJÜIj SI!IS* 1.1 Lernen Sie Ihr Arbeitsgerät kennen 13 1.2 Der Editor,

Mehr

Einführung in die Computerlinguistik Einführung in Python (1)

Einführung in die Computerlinguistik Einführung in Python (1) Einführung in die Computerlinguistik Einführung in Python (1) Dozentin: Wiebke Petersen 10. Foliensatz Wiebke Petersen Einführung CL 1 Compiler Ein Compiler (auch Übersetzer oder Kompilierer genannt) ist

Mehr

System Modell Programm

System Modell Programm Wolfgang P. Kowalk System Modell Programm Vom GOTO zur objektorientierten Programmierung Spektrum Akademischer Verlag Heidelberg Berlin Oxford Inhaltsverzeichnis Vorwort 3 Inhaltsverzeichnis 5 1 Einleitung

Mehr

Kybernetik Intelligent Agents- Decision Making

Kybernetik Intelligent Agents- Decision Making Kybernetik Intelligent Agents- Decision Making Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 03. 07. 2012 Intelligent Agents Environment Agent Intelligent

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Monaden in anderen Programmiersprachen

Monaden in anderen Programmiersprachen Monaden in anderen Programmiersprachen Themen Informatik-Seminar SS 2013: Programmiersprachen und Sprachsysteme Bei: Prof. Dr. Schmidt, FH Wedel inf9500 Sebastian Philipp Überblick Motivation Monaden in

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Funktionale Programmiersprachen

Funktionale Programmiersprachen BERUFSAKADEMIE MANNHEIM STAATLICHE STUDIENAKADEMIE Fachrichtung Informationstechnik Seminar Informationstechnik von Martin Kolleck Matrikelnr.: 181984 Thijs Metsch Matrikelnr.: 197534 Mannheim, den 6.

Mehr

Die freie Programmiersprache Python mit Beispielen für ihren praktischen Einsatz. Python User Group Köln www.pycologne.de

Die freie Programmiersprache Python mit Beispielen für ihren praktischen Einsatz. Python User Group Köln www.pycologne.de Die freie Programmiersprache Python mit Beispielen für ihren praktischen Einsatz Python User Group Köln www.pycologne.de Übersicht Python pycologne Anwendungsbeispiele Python Klar strukturierte Allzweck-

Mehr

Ruby - Objektorientiertes Scripting, aber richtig!

Ruby - Objektorientiertes Scripting, aber richtig! Ruby - Objektorientiertes Scripting, aber richtig! Andreas Krennmair krennmair@acm.org 2. November 2003 0-0 Ruby - Objektorientiertes Scripting, aber richtig! 0-1 Aga Ruby s Syntax Ruby s coole Konzepte

Mehr

Funktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I Lambda-Kalkül Teil IVb WS 2012/2013 λ-kalkül-parser Hilfsfunktionen: Die break-funktion ist eine Funktion höherer Ordnung, die eine Liste beim ersten Vorkommen einer Bedingung in zwei Listen spaltet.

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Semantic Web Technologies II SS 2009. 25.05.2009 Übung: Ontologiemodellierung in OWL

Semantic Web Technologies II SS 2009. 25.05.2009 Übung: Ontologiemodellierung in OWL Semantic Web Technologies II SS 2009 25.05.2009 Übung: Ontologiemodellierung in OWL Dr. Sudhir Agarwal Dr. Stephan Grimm Dr. Peter Haase PD Dr. Pascal Hitzler Denny Vrandecic 1 Übersicht Einführung in

Mehr

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS Master Seminar Empirical Software Engineering Anuradha Ganapathi Rathnachalam Institut für Informatik Software & Systems Engineering Agenda Introduction

Mehr

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel XML-QL Querysprachen für XML Zusätzliche Quellen: http://www.w3.org/tr/xquery/ http://www.w3schools.com/xquery/ XML-QL ist eine Querysprache für XML mit folgenden Eigenschaften: Kombiniert die XML-Syntax

Mehr

Regelbasierte Systeme mit JBoss Drools. Paul Weinhold JUG Görlitz, 29.07.2015

Regelbasierte Systeme mit JBoss Drools. Paul Weinhold JUG Görlitz, 29.07.2015 Regelbasierte Systeme mit JBoss Drools Paul Weinhold JUG Görlitz, 29.07.2015 Warum regelbasierte Systeme? Regeln gibt es überall Regeln sind ein Bestandteil der Fachlichkeit Menschen denken in Regeln

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Scrum @FH Biel. Scrum Einführung mit «Electronical Newsletter» FH Biel, 12. Januar 2012. Folie 1 12. Januar 2012. Frank Buchli

Scrum @FH Biel. Scrum Einführung mit «Electronical Newsletter» FH Biel, 12. Januar 2012. Folie 1 12. Januar 2012. Frank Buchli Scrum @FH Biel Scrum Einführung mit «Electronical Newsletter» FH Biel, 12. Januar 2012 Folie 1 12. Januar 2012 Frank Buchli Zu meiner Person Frank Buchli MS in Computer Science, Uni Bern 2003 3 Jahre IT

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1 2D22 1 Inhalte der Lehrveranstaltung Einführung in die Programmierung mit PHP Literatur: Theis, Thomas (2010): Einstieg in PHP 5.3 und MySQL 5.4. [für Programmieranfänger geeignet]. 6., aktualisierte Aufl.

Mehr

Software Engineering verteilter Systeme. Hauptseminar im WS 2011 / 2012

Software Engineering verteilter Systeme. Hauptseminar im WS 2011 / 2012 Software Engineering verteilter Systeme Hauptseminar im WS 2011 / 2012 Model-based Testing(MBT) Christian Saad (1-2 students) Context Models (e.g. State Machines) are used to define a system s behavior

Mehr

Ruby. Erfinder: Yukihiro Matsumoto Japan 1993 Einflüsse: Smalltalk Perl Eigenschaften: Objektorientiert Interpretiert

Ruby. Erfinder: Yukihiro Matsumoto Japan 1993 Einflüsse: Smalltalk Perl Eigenschaften: Objektorientiert Interpretiert Ruby Erfinder: Yukihiro Matsumoto Japan 1993 Einflüsse: Smalltalk Perl Eigenschaften: Objektorientiert Interpretiert I believe that the purpose of live is, at least in part, to be happy. Based on this

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

EEX Kundeninformation 2002-08-30

EEX Kundeninformation 2002-08-30 EEX Kundeninformation 2002-08-30 Terminmarkt - Eurex Release 6.0; Versand der Simulations-Kits Kit-Versand: Am Freitag, 30. August 2002, versendet Eurex nach Handelsschluss die Simulations -Kits für Eurex

Mehr