Sieben Wochen, sieben Sprachen

Größe: px
Ab Seite anzeigen:

Download "Sieben Wochen, sieben Sprachen"

Transkript

1 The Pragmatic Programmers Sieben Wochen, sieben Sprachen Verstehen Sie die modernen Sprachkonzepte Deutsche Übersetzung von O REILLY Bruce A. Tate Übersetzt von Peter Klicman

2 Inhaltsverzeichnis Widmung 1 Danksagung 3 Vorwort 7 1 Einführung Wahnsinn mit Methode Die Sprachen Kaufen Sie dieses Buch Kaufen Sie dieses Buch nicht Ein letzter Punkt Ruby Ein wenig Geschichte Tag 1: Ein Kindermädchen finden Tag 2: Vom Himmel herab Tag 3: Tiefgreifende Veränderung Ruby zusammengefasst Io Einführung in Io Tag 1: Blaumachen und rumhängen Tag 2: Der Würstchenkönig Tag 3: Die Parade und andere sonderbare Orte Io zusammengefasst Prolog Über Prolog Tag 1: Ein ausgezeichneter Fahrer

3 VI Inhaltsverzeichnis 4.3 Tag 2: Fünfzehn Minuten für Wapner Tag 3: Die Bank sprengen Prolog zusammengefasst Scala Über Scala Tag 1: Die Burg auf der Anhöhe Tag 2: Gesträuch beschneiden und andere neue Tricks Tag 3: Sich durch die Fusseln schneiden Scala zusammengefasst Erlang Einführung in Erlang Tag 1: Menschlich erscheinen Tag 2: Die Form ändern Tag 3: Die rote Pille Erlang zusammengefasst Clojure Einführung in Clojure Tag 1: Luke trainieren Tag 2: Yoda und die Macht Tag 3: Ein Auge für Böses Clojure zusammengefasst Haskell Einführung in Haskell Tag 1: Logisch Tag 2: Spocks große Stärke Tag 3: Gedankenverschmelzung Haskell zusammengefasst Zusammenfassung Programmiermodelle Nebenläufigkeit Programmierkonstrukte Ihre Sprache finden A Bibliografie 347 Index 349

4 Kapitel 1 Einführung Menschen lernen Sprachen aus den unterschiedlichsten Gründen. Ihre Muttersprache haben Sie gelernt, um überhaupt leben zu können. Sie stellt das Werkzeug dar, das ihnen dabei hilft, den Alltag zu meistern. Wenn Sie eine zweite Sprache erlernt haben, kann das verschiedene Gründe gehabt haben. Manchmal muss man eine zweite Sprache der Karriere wegen lernen, oder um sich an eine veränderte Umgebung anzupassen. Doch manchmal lässt man sich auf eine neue Sprache ein, nicht weil man sie lernen muss, sondern weil man sie lernen will. Eine zweite Sprache kann Ihnen dabei helfen, neue Welten zu entdecken. Sie könnten sogar Erleuchtung suchen, da Sie wissen, dass jede neue Sprache auch das Denken formt. Das Gleiche gilt für Programmiersprachen. In diesem Buch werde ich Ihnen sieben verschiedene vorstellen. Dabei möchte Sie auf eine Reise mitnehmen, die Sie aufklären und Ihren Blick auf das Programmieren verändern soll. Ich werde Sie nicht zum Experten machen, aber ich werden Ihnen mehr beibringen als bloß Hallo Welt! 1.1 Wahnsinn mit Methode Wenn ich eine neue Programmiersprache oder ein neues Framwork erlerne, suche ich meist nach einem kurzen, interaktiven Tutorial. Mein Ziel ist es, die Sprache in einer komtrollierten Umgebung zu erleben. Bei Bedarf kann ich etwas eingehender untersuchen, doch im Wesentlichen geht es mir um eine schnelle Dosis Koffein, einen Schnappschuss des syntaktischen Zuckers und um die Kernkonzepte.

5 12 Kapitel 1: Einführung Aber üblicherweise ist diese Erfahrung nicht besonders erhellend. Wenn Sie den wahren Charakter einer Sprache kennenlernen wollen, die mehr ist als eine bloße Erweiterung einer Sprache, die Sie schon kennen, dann wird ein kurzes Tutorial niemals funktionieren. Sie müssen schnell und tief eintauchen. Dieses Buch bietet Ihnen diese Erfahrung nicht nur ein-, sondern gleich siebenmal. Sie finden Antworten auf die folgenden Fragen: Welches Modell der Typisierung wird verwendet? Die Typisierung kann stark (Java) oder schwach (C), statisch (Java) oder dynamisch (Ruby) sein. Die Sprachen in diesem Buch reichen vom stark typisierten Ende des Spektrums bis hin zu einem breiten Mix aus statisch und dynamisch. Sie werden sehen, wie sich die jeweiligen Kompromisse bzw. Nachteile für den Entwickler auswirken. Das Typisierungsmodell prägt die Art und Weise, in der Sie ein Problem angehen, und kontrolliert, wie die Progammiersprache funktionert. Jede Sprache in diesem Buch hat ihre eigenen Typisierungs-Eigenarten. Welches Programmiermodell wird verwendet? Ist es objektorientiert, funktional, prozedural oder irgendeine Art Hybrid? Dieses Buch behandelt Sprachen mit vier verschiedenen Programmiermodellen, manchmal auch Kombinationen mehrerer Modelle. Sie werden eine logikbasierte Programmiersprache (Prolog) vorfinden, zwei Sprachen, die vollständig objektorientierte Konzepte unterstützen (Ruby, Scala), vier Sprachen funktionaler Natur (Scala, Erlang, Clojure, Haskell) sowie eine Prototyp-Sprache (Io). Mehrere Sprachen unterstützen auch mehrere Paradigmen, z. B. Scala. Clojures Multimethoden erlauben es Ihnen sogar, ein eigenes Paradigma zu implementieren. Das Erlernen neuer Programmierparadigmen ist eines der wichtigsten Konzepte dieses Buches. Wie interagiert man mit ihr? Sprachen werden kompiliert oder interpretiert und einige verwenden virtuelle Maschinen, andere hingegen nicht. Ich beginne meine Erkundung mit einer interaktiven Shell, wenn es denn eine gibt. Ich gehe dann zu Dateien über, wenn es an der Zeit ist, größere Projekte anzugehen. Unsere Projekte werden aber nicht groß genug sein, um vollständig in die Paketmodelle einzutauchen.

6 Die Sprachen 13 Was sind die Entscheidungskonstrukte und die Kern-Datenstrukturen? Sie werden überrascht sein, wie viele Sprachen Entscheidungen mit etwas anderem als Varianten von ifs und whiles treffen können. Sie werden die Mustererkennung (Pattern Matching) in Erlang und die Vereinigung (unification) in Prolog kennenlernen. Collections ( Sammlungen ) spielen in nahezu jeder Sprache eine wichtige Rolle. Bei Sprachen wie Smalltalk und Lisp definieren Collections die Charakeristika der Sprache. Bei anderen, wie C++ und Java, sind Collections überall verstreut und definieren das Erleben des Benutzers durch ihr Fehlen und ein geringeres Maß an Stringenz. So oder so sollte man sich mit Collections gut auskennen. Welche Kerneigenschaften machen die Sprache einzigartig? Einige Sprachen besitzen fortgeschrittene Fähigkeiten für die nebenläufige Programmierung (concurrent programming). Andere bieten einzigartige High-Level-Konstrukte wie etwa Clojures Makros oder Ios Message-Interpretation. Andere bieten eine leistungsfähige virtuelle Maschine, wie etwa Erlangs BEAM: Dank ihr kann man mit Erlang fehlertolerante, verteilte Systeme wesentlich schneller aufbauen, als es mit anderen Sprachen möglich ist. Einige Programmiersprachen unterstützen Programmiermodelle, die sich auf ein bestimmtes Problem konzentrieren. Etwa die Verwendung von Logik zur Lösung von Beschränkungen (constraints). Wenn Sie mit diesem Buch fertig sind, werden Sie kein Experte für eine dieser Sprachen sein, aber Sie werden wissen, welche einzigartigen Eigenschaften sie besitzen. Sehen wir uns die Sprachen an. 1.2 Die Sprachen Die Auswahl der Sprachen für dieses Buch war wesentlich einfacher, als Sie vielleicht glauben: Ich habe einfach potenzielle Leser gefragt. Nachdem wir uns alle Daten näher angesehen hatten, blieben acht Kandidaten übrig. Ich habe JavaScript gestrichen, weil es mir zu beliebt ist, und durch die zweitpopulärste Prototypsprache Io ersetzt. Ich habe auch Python gestrichen, weil ich nur eine objektorientierte Sprache wollte und Ruby höher auf der Liste stand. Das schuf Raum für einen überraschenden Kandidaten, Prolog, das auf der Liste unter den Top- Ten war. Hier die Sprachen, die es geschafft haben, sowie die Gründe für ihre Wahl:

7 14 Kapitel 1: Einführung Ruby. Diese objektorientierte Sprache erhält gute Noten wegen ihrer einfachen Verwendbarkeit und guten Lesbarkeit. Ich habe kurz daran gedacht, überhaupt keine objektorientierte Sprache aufzunehmen, aber ich wollte die verschiedenen Programmierparadigmen mit der objektorientierten Programmierung (OOP) vergleichen, weshalb es wichtig war, zumindest eine OOP-Sprache aufzunehmen. Ich wollte Ruby außerdem etwas mehr fordern, als das die meisten Programmierer tun, und den Lesern eine Vorstellung von den Grundentscheidungen vermitteln, die das Design von Ruby geprägt haben. Ich habe mich entschieden, in die Ruby- Metaprogrammierung einzutauchen, was es mir erlaubt, die Syntax der Sprache zu erweitern. Ich bin recht zufrieden mit dem Ergebnis. Io. Neben Prolog ist Io die umstrittenste Sprache, die ich aufgenommen habe. Sie ist kommerziell nicht erfolgreich, doch die Konstrukte zur Nebenläufigkeit mit ihrer Einfachheit und ihrer gleichförmigen Syntax sind wichtige Konzepte. Die minimale Syntax ist leistungsfähig und die Ähnlichkeit zu Lisp manchmal verblüffend. Io hat einen kleinen Footprint, ist eine Prototypsprache wie JavaScript und besitzt einen einzigartigen Mechanismus zum Message-Dispatch, den Sie (glaube ich) interessant finden werden. Prolog. Ja, ich weiß, sie ist alt, aber eben auch extrem leistungsfähig. Das Lösen eines Sudoku-Rätsels in Prolog war eine Erfahrung, die mir die Augen geöffnet hat. Ich habe hart daran gearbeitet, schwierige Probleme in Java oder C zu lösen, die in Prolog ohne besondere Mühe hätten gelöst werden können. Joe Armstrong, der Schöpfer von Erlang, half mir dabei, ein tieferes Verständnis für diese Sprache zu entwickeln, die Erlang stark beeinflusst hat. Wenn Sie noch nicht die Gelegenheit hatten, sie zu verwenden, werden Sie angenehm überrascht sein. Scala. Als Mitglied der neuen Generation von Sprachen für die Java Virtual Machine hat Scala starke funktionale Konzepte in das Java-Ökosystem eingeführt. Sie schließt auch OOP mit ein. Rückblickend sehe ich verblüffende Ähnlichkeiten mit C++, das entscheidend dazu beigetragen hat, eine Brücke zwischen prozeduraler Programmierung und OOP zu schaffen. Wenn Sie in die Scala-Community eintauchen, werden Sie sehen, warum Scala die reine Häresie für rein funktionale Programmier ist und ein wahrer Segen für Java-Entwickler.

8 Kaufen Sie dieses Buch 15 Erlang. Als eine der ältesten Sprachen auf der Liste nimmt Erlang langsam als funktionale Sprache Fahrt auf, die Nebenläufigkeit, Verteilung und Fehlertoleranz gut im Griff hat. Die Schöpfer von CouchDB, einer der aufkommenden Cloud-basierten Datenbanken, haben sich für Erlang entschieden und es nie bereut. Sobald Sie ein wenig Zeit mit dieser verteilten Sprache verbracht haben, werden Sie sehen, warum Erlang den Entwurf nebenläufiger, verteilter und fehlertoleranter Systeme wesentlich einfacher macht, als Sie es jemals für möglich gehalten haben. Clojure. Als weitere JVM-Sprache nimmt dieser Lisp-Dialekt radikale Änderungen an der Art und Weise vor, wie wir uns Nebenläufigkeit auf der JVM vorstellen. Es ist die einzige Sprache in diesem Buch, die die gleiche Strategie in versionierten Datenbanken nutzt, um die Nebenläufigkeit zu verwalten. Als Lisp-Dialekt hat Clojure einiges zu bieten und unterstützt das vielleicht flexibelste Programmiermodell dieses Buches. Doch im Gegensatz zu anderen Lisp-Dialekten wurden die Klammern stark reduziert. Darüber hinaus können Sie auf ein riesiges Ökosystem bauen, einschließlich einer großen Java- Bibliothek und weit verbreiteter Deployment-Plattformen. Haskell. Diese Sprache ist die einzige rein funkionale Sprache in diesem Buch. Das bedeutet, dass Sie an keiner Stelle einen veränderlichen Zustand vorfinden. Die gleiche Funktion mit den gleichen Eingabeparametern liefert immer die gleiche Ausgabe zurück. Von allen stark typisierten Sprachen verwendet Haskell das anerkannteste Typisierungsmodell. Wie bei Prolog dauert es eine Weile, bis man es versteht, doch die Ergebnisse sind es wert. Es tut mir leid, wenn Ihre Lieblingssprache nicht auf der Liste steht. Sie können mir glauben, dass ich bereits Hass- s von nicht wenigen Sprachenthusiasten erhalten habe. Wir haben mehrere Dutzend Sprachen in die oben erwähnte Umfrage aufgenommen. Die von mir gewählten Sprachen sind nicht notwendigerweise die besten, doch jede davon ist einzigartig und Sie können etwas Wichtiges von ihr lernen. 1.3 Kaufen Sie dieses Buch... wenn Sie ein kompetenter Programmierer sind, der wachsen will. Das klingt vielleicht ein wenig nebulös, aber zeigen Sie etwas Nachsicht mit mir.

9 Index A Aktoren Erlang 193 Io 90 Scala anonyme Funktionen Clojure 253, 255 Erlang Haskell 306 Armstrong, Joe B Bedingungen Io 69, 71 Scala 148, 150 C Clojure 15, Agenten anonyme Funktionen 253, 255 Atome 275, 277 Ausdrücke Bindungen 251, 253 Boolesche Werte Destrukturierung 251 Forms 242 Funktionen Futures 279, 342 Installieren 240 Java-Integration 239, 266, 280, 284 Konsole 240 Lazy Evaluation , 284 leiningen 240 Lesbarkeit 285 Lisp und 238, , 285 Listen , 344 Makros Maps mathematische Operationen Metadaten 279 Multimethoden 280 Mustererkennung (Pattern Matching) 344 Nebenläufigkeit , 283 Präfix-Notation 285 Programmiermodell 340 Protokolle 266 Referenzen 273, 275 Rekursion repl 240 Schöpfer Schwächen 284, 286 Sequenzen 260, Sets Stärken 282, 284 Strings Thread-Zustand 280 Transactional Memory 273, 275, 343

10 350 Codeblöcke, Ruby 38 Typisierungsmodell 242 Unendliche Sequenzen Vektoren Codeblöcke, Ruby 38 Currying Haskell Scala 174 D Datenstrukturen 13 deklarative Sprache, Prolog als 98 Dekorte, Steve 59 domänenspezifische Sprache mit Scala 188 domänenspezifische Sprachen mit Io 86 dynamische Typisierung Clojure 242 Erlang 202, 205 Ruby 30 E Entscheidungskonstrukte 13 Erlang 15, Aktoren 193, 342 anonyme Funktionen Atome 198, 200 Ausdrücke Bibliotheken 234 Funktionen , gekoppelte Prozesse Iteration Kontrollstrukturen 207, 209 leichtgewichtige Prozesse 193, 233 Listen 198, 200, , 344 Mustererkennung (Pattern Matching) , 344 Nachrichten Nebenläufigkeit 192, 194, Programmiermodell 196, 340 Schöpfer 191, Schwächen Stärken Tupel 198, 200 Typisierungsmodell 202 F Variablen Zuverlässigkeit , foldleft-methode, Scala 174 Forms, Clojure 242 funktionale Programmiersprache Erlang als 196 Haskell als 288, Nebenläufigkeit und Scala als 162, 164 Funktionen Clojure 250, 255 Erlang , Haskell , Ruby 32 Scala Funktionen höherer Ordnung Haskell Scala Futures 342 Clojure 279 Io 91 H Haskell anonyme Funktionen 306 Ausdrücke Currying 308 Filter Folding Function Composition 296, 298 Funktionen , Funktionen höherer Ordnung 305 Klassen Lazy Evaluation 309, 311 List Comprehensions Listen , 344 Mapping Monaden 344 Mustererkennung (Pattern Matching) 344 partiell angewandte Funktionen Polymorphismus

11 logic Programmiersprachen, Prolog als 98, Programmiermodell 288, , 340 Rekursion 294, rekursive Typen Schöpfer 302, 304, 312 Stärken starten 288 Tupel Typen , Typisierungsmodell 288, 333 Wertebereiche (Ranges) HaskellFunktionen höherer Ordnung 308 Hilfskonstruktoren 157 I Interaktionsmodell 12 interpretierte Sprache Io als 61 Ruby als 25 Io 14 Aktoren 90, 342 Bedingungen 69, 71 Bedingungsanweisungen 74, 76 clone, Nachricht 61 domänenspezifische Sprache mit 83, 86 forward, Nachricht 86, 88 Futures 91, 342 installieren 61 interpretiertes Modell 61 Iteration 74, 76 Listen 67, 69 Maps 68 Methoden 65, 67 Nachrichten 60, 67, 78, 81 Nebenläufigkeit 88, 91, 94 Objekte 60 61, 65, 67 Operatoren 76, 78 Performance 95 Programmiermodell 339 Prototypen 60, 67 Reflexion 81 Schleifen Schöpfer 59, Schwächen slots in Objekte 61, 67 Stärken Typisierungsmodell 64 Vererbung 63, 65 Zuweisung 77 Iteration Erlang Io 74, 76 Scala , J Java Clojure und 239, 266, 280, 284 Scala integriert in 143 Scala und 142, 187 K Klassen Haskell Ruby 38, 41 Scala kompilierte Sprache Erlang als 197 Prolog als 99 Scala als 147 L Lazy Evaluation Clojure 284 Haskell leichtgewichtige Prozesse, Erlang 233 Lisp, Clojure und 238, , 285 Listen 344 Clojure Erlang 198, 200, Haskell Io 67, 69 Prolog 115, 119 Scala , logic Programmiersprachen, Prolog als 98, 339

12 352 Maps M Maps Clojure Haskell Io 68 Scala Metadaten, Clojure 279 model Erlang 202 Monaden, Haskell , 344 Mustererkennung (Pattern Matching) 344 Erlang Scala N Nachrichten, Io 60, 67 natürliche Sprachverarbeitung, Prolog 137 Nebenläufigkeit Clojure , 283 Erlang 192, 194, Io 88, 91, 94 Ruby 56 Scala , , , 187 O Objekte Io Objektorientierte Sprachen Io als 60 Ruby als 26, 338 Scala als 338 P partiell angewandte Funktionen, Haskell Performance Io 95 Ruby 56 Programmiermodell 12 Programmiersprachen installieren 18 lernen 12 13, Prolog 14 Abfragen (Queries) 102, 104 Acht Damen, Beispiel 130, 135 append, Regel 120, 123 Großschreibung bei 99 Inferenz Landkarte einfärben, Beispiel 104, 106 Listen 115, 119 Mathematik 117, 119 Mustererkennung (Pattern Matching) 344 Programmiermodell Rekursion , 117, 119 Scheduling, Beispiel 111 Schöpfer 98 Schwächen 138 Stärken Sudoku, Beispiel 125, 130 Tupel 115, 117 Unifikation 106, 108, 115, 117, 345 Wissensdatenbank 99 PrologUnifikation 117 Protokolle, Clojure Prototypen, Io 67 Prototyp-Programmiersprache, Io als 60 R Reflexion, Io 81 Rekursion Clojure Haskell 294, Prolog , 117, 119 Scala 171 Ruby 14, 21, 57 Arrays aus Datei ausführen 38 Codeblöcke 36 Entscheidungskonstrukte 26, 29 Entwickler von Funktionen 32 Geschichte 22 Hashes 34, 36 installieren 24

13 Transactional Memory, Clojure S interaktive Console 25 interpretiertes Modell 25 Klassen 38, 41 Metaprogrammierung 45 method_missing-verhalten 48 Mixins 41, 44 Module 41, 44, 49, 52 Nebenläufigkeit 56 offen 47 offene Klassen Performance 56 Produkteinführungszeit (time to market) 55 Programmiermodell 26, 338 Raumschiff- (Spaceship) Operator 42 Schwächen Skripting 54 Stärken Typisierungsmodell Typsicherheit 57 Verarbeitung von Strings 25 Web-Entwicklung 54 Scala 14, Aktoren , 342 Any, Klasse 168 Ausdrücke Bedingungen Collections Currying 174 domänenspezifische Sprachen mit 188 foldleft, Methode 174 Funktionen Funktionen höherer Ordnung 169 Integration mitjava 143 Iteration , Java und 142, 187 Klassen 154, , 160 Listen , Maps Mustererkennung (Pattern Matching) , 344 Nebenläufigkeit , , , 187 Nothing (Typ) 168 Programmiermodell 338, 340 Rekursion 171 Schöpfer 145 Schwächen 188 Sets Stärken 186, 188 Traits 159 Tupel 154 Typen Typisierungsmodell 150, 189 unveränderliche Variablen Vererbung 158 Wertebereiche (Ranges) XML und 176, 180, 188 semantisches Web, Prolog für 138 Sequenzen, clojure Sets Clojure Scala Skripting, Ruby 54 Slots in Objekten, Io 61, 67 Spiele, Prolog für 138 stark typisierte Sprachen Clojure 242 Erlang 205 Haskell 288, 333 Ruby 29 Scala 147 statische Typisierung Haskell 288 Scala 150, 189 Strings Clojure Rubys Verarbeitung von 25 syntaktischer Zucker 22 T Tarbox, Brian 111 Thread-Zustand, Clojure 280 Traits, Scala 159 Transactional Memory, Clojure 343

14 354 Tupel Tupel Erlang 198, 200 Haskell 295, 298 Prolog 115, 117 Typisierungsmodell 12 Clojure 242 Haskell 333 Io 64 Ruby 29, 31 Scala Typsicherheit, Ruby 57 V veränderliche Zustände, Kontrolle 341 Vererbung Io 63, 65 Scala 158 W Web-Entwicklung, Ruby 54 Wissensdatenbank, Prolog 99 U Unifikation, Prolog 345 X XML Scala mit 178 XML, Scala und 180 XML, Scala und XPath 188

Funktionale Programmierung (in Clojure)

Funktionale Programmierung (in Clojure) Funktionale Programmierung (in Clojure) Einführung Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Wintersemester 2014/15 Übersicht Paradigmen von Programmiersprachen Paradigmen von Programmiersprachen

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

Scala & Lift. Ferenc Lajko 04.02.2010

Scala & Lift. Ferenc Lajko 04.02.2010 Scala & Lift Ferenc Lajko 04.02.2010 Gliederung 1. Scala 1.1. Allgemein 1.2. Merkmale 1.3. Unterschiede zu Java 1.4. Code-Beispiel 1.5. Vorteile zu anderen Sprachen 2. Lift 2.1. Allgemein 2.2. Idee 2.3.

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

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

Android Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-10-30 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater, der für diese Vorlesung auf Alexander Kollers Java-Kurs basierte) Organisatorisches Wöchentliche

Mehr

Informatik Programmiersprachen eine kurze Übersicht

Informatik Programmiersprachen eine kurze Übersicht Informatik eine kurze Übersicht Seite 1 natürliche Sprachen (nach Wikipedia) ca 6500 gesprochene Sprachen davon etwa die Hälfte im Aussterben etwa 500 Schriftsprachen mit gedruckten Texten P. Bueghel Turmbau

Mehr

Übersicht. Einführung in die Funktionale Programmierung: Einleitung & Motivation. Klassifizierung von Programmiersprachen (1)

Übersicht. Einführung in die Funktionale Programmierung: Einleitung & Motivation. Klassifizierung von Programmiersprachen (1) Motivation Funktionale Programmiersprachen Haskell Übersicht Einführung in die Funktionale Programmierung: Einleitung & Motivation Prof Dr. Manfred Schmidt-Schauß 1 Motivation Übersicht Programmierparadigmen

Mehr

Groovy eine dynamische Ergängzung zu Java

Groovy eine dynamische Ergängzung zu Java Groovy eine dynamische Ergängzung zu Java Johannes Hellrich 12. Juni 2013 Johannes Hellrich Groovy 1 / 30 Alternativen zu Java Groovy Möglichkeiten der Sprache Groovy und Java im Vergleich Domain Speciffic

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,

Mehr

Softwareentwicklung Allgemeines und prozedurale Konstrukte

Softwareentwicklung Allgemeines und prozedurale Konstrukte Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Allgemeines und prozedurale Konstrukte E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung

Mehr

Organisatorisches/Einstieg

Organisatorisches/Einstieg 1/31 Organisatorisches/Einstieg Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/31 Outline 1 Motivation Theoretische Grundlagen

Mehr

Inhalt. Teil I: Der Sprachkern von JavaScript

Inhalt. Teil I: Der Sprachkern von JavaScript Inhalt Vorwort.... 1 Einführung in JavaScript... 1 1.1 Der JavaScript-Sprachkern... 4 1.2 Clientseitiges JavaScript... 9 Teil I: Der Sprachkern von JavaScript 2 Die lexikalische Struktur... 21 2.1 Zeichensatz...

Mehr

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag Martin Marinschek- Wolfgang Radinger Ruby on Rails Einstieg in die effiziente Webentwicklung [Tu dpunkt.verlag Inhaltsverzeichnis 1 Ruby on Rails -»Bitte Einsteigen«1 1.1 Web-Entwicklung und Entwicklung

Mehr

Selda Garip MatrikelNr.: 0200012 Kennzahl: 533 seldaaa83@hotmail.com

Selda Garip MatrikelNr.: 0200012 Kennzahl: 533 seldaaa83@hotmail.com Selda Garip MatrikelNr.: 0200012 Kennzahl: 533 seldaaa83@hotmail.com Agenda Geschichte der OOP Geschichte von Self Definition Syntax und Semantik Besonderheiten und Anwendungen Vorteile & Nachteile Motivation

Mehr

Ein Streifzug durch die Programmiersprachenlandschaft in der Schule. Gerald Futschek TU Wien Informatiktag 2013

Ein Streifzug durch die Programmiersprachenlandschaft in der Schule. Gerald Futschek TU Wien Informatiktag 2013 Ein Streifzug durch die Programmiersprachenlandschaft in der Schule Gerald Futschek TU Wien Informatiktag 2013 Urwald der Programmiersprachen COBOL Visual Basic Modula-2 Logo Pascal SQL APL BASIC LISP

Mehr

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia Kenntnisse im Programmieren für das World Wide Web mit der Programmiersprache JAVA werden vermittelt, ebenso das Erstellen von

Mehr

Programmieren 3. Programmieren in C und Python. Prof. Dr. Peter Barth. Hochschule RheinMain. Fachbereich Design Informatik Medien.

Programmieren 3. Programmieren in C und Python. Prof. Dr. Peter Barth. Hochschule RheinMain. Fachbereich Design Informatik Medien. Programmieren 3 Programmieren in C und Python Prof. Dr. Peter Barth Hochschule RheinMain Fachbereich Design Informatik Medien Medieninformatik 10. Dezember 2015 Prof. Dr. Peter Barth (HS-RheinMain) Programmieren

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

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

Skriptsprachen am Beispiel Python

Skriptsprachen am Beispiel Python Seminar Programmiersprachen Skriptsprachen am Beispiel Python Norman Thomas 8. Juni 2004 Überblick Was sind Skriptsprachen? Was ist Python? Python und Syntax Datentypen Kontrollstrukturen Module Ausführung

Mehr

Funktionale Programmierung mit C++

Funktionale Programmierung mit C++ Funktionale Programmierung mit C++ Überblick Programmierung in funktionaler Art Warum funktionale Programmierung? Was ist funktionale Programmierung? Charakteristiken funktionaler Programmierung Was fehlt

Mehr

Einführung in die Programmiersprache Python

Einführung in die Programmiersprache Python Einführung in die Programmiersprache Python Dipl.-Inf. Frank Hofmann 10. April 2007 Zielsetzung Fragen, die sich jeder stellt Kann ich damit Programmieren lernen? Hilfe! Noch eine Programmiersprache?!

Mehr

Einleitung und Begriffliches. Einleitung. Programmiersprachen. Software-Komplexität ist inhärent und hat vor allem folgende Ursachen

Einleitung und Begriffliches. Einleitung. Programmiersprachen. Software-Komplexität ist inhärent und hat vor allem folgende Ursachen Einleitung Einleitung und Begriffliches Software-Komplexität ist inhärent und hat vor allem folgende Ursachen Komplexität des gegebenen Problems Schwierigkeiten beim Management des Entwicklungsprozesses

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

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Skriptsprachen Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby 16.10.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden

Mehr

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012 Programmieren Lernen mit BYOB Informatiktag 2012 Gerald Futschek 5. November 2012 Erste Programmier Schritte in der Schule Sehr viele verschiedene Dinge zu lernen: Syntax und Semantik der Befehle, Algorithmen,

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

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

Mehr

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

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

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27 Inhaltsverzeichnis Über den Autor 7 Einführung 19 Wie Sie dieses Buch verwenden 19 In diesem Buch verwendete Konventionen 19 Was Sie nicht lesen müssen 20 Törichte Voraussetzungen 20 Wie dieses Buch aufgebaut

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

Programmierung in Java

Programmierung in Java TAE Technische Akademie Esslingen Ihr Partner für Weiterbildung seit 60 Jahren! Maschinenbau, Produktion und Fahrzeugtechnik Tribologie Reibung, Verschleiß und Schmierung Elektrotechnik, Elektronik und

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

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 1: Grundlagen 1/27/2012 1 Vorstellung Kursleiter Florian Rappl 9 Jahre Erfahrung mit C# Ausbildung zum Fachinformatiker bei

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

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

1 Einführung... 13. 2 Erste Schritte... 19. 3 Programmierkurs... 33. 4 Datentypen... 81. 5 Weiterführende Programmierung... 139

1 Einführung... 13. 2 Erste Schritte... 19. 3 Programmierkurs... 33. 4 Datentypen... 81. 5 Weiterführende Programmierung... 139 Auf einen Blick 1 Einführung... 13 2 Erste Schritte... 19 3 Programmierkurs... 33 4 Datentypen... 81 5 Weiterführende Programmierung... 139 6 Objektorientierte Programmierung... 191 7 Verschiedene Module...

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

Existierende Systeme I Bibliotheken & Frameworks

Existierende Systeme I Bibliotheken & Frameworks Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen Existierende Systeme I Bibliotheken & Frameworks Von Christian Schneider Paderborn, den 18.06.2004 Übersicht Motivation Dynamische

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Funktionale Programmierung bringt s! Ein Ausflug mit Haskell in die Praxis

Funktionale Programmierung bringt s! Ein Ausflug mit Haskell in die Praxis Funktionale Programmierung bringt s! Ein Ausflug mit Haskell in die Praxis Stefan Wehr (wehr@factisresearch.com) factis research GmbH, Freiburg im Breisgau 17. Juli 2013 Developer MeetUp Freiburg Funktionale

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

Roberto lerusalimschy. Programmieren mit Lua

Roberto lerusalimschy. Programmieren mit Lua Roberto lerusalimschy Programmieren mit Lua \ Vorwort 13 1 Die Sprache 21 1 Einführung/ 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale Variablen 27 1.4 DerStand-alone-Interpreter

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Softwaretechnik. Wesentliche Inhalte der Vorlesung

Softwaretechnik. Wesentliche Inhalte der Vorlesung Softwaretechnik Prof. Dr. Bernhard Schiefer schiefer@informatik.fh-kl.de http://www.informatik.fh-kl.de/~schiefer Prof. Dr. Bernhard Schiefer 1-1 Wesentliche Inhalte der Vorlesung Phasen der Software-Entwicklung

Mehr

Web und Mobile Apps Programmieren mit Dart

Web und Mobile Apps Programmieren mit Dart Web und Mobile Apps Programmieren mit Dart Marco Jakob Workshop INFOS 2013 in Kiel 28.09.2013. ZIEL attraktiv aktuell Programmierunterricht wenig Hürden Inhalt Weshalb Web und Mobile im Unterricht? aktuelle

Mehr

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode The B Method B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode P. Schmitt: Formal Specification and Verification of Software p.1 The B Method

Mehr

Thorben Meier 25.01.2012

Thorben Meier 25.01.2012 F# Thorben Meier 25.01.2012 1 Einleitung F# ist eine Multi-Paradigmen-Programmiersprache, die neben funktionalen auch imperative und objektorientierte Sprachelemente enthält. Ihre größten Einflüsse kommen

Mehr

Clojure in Lehre und Forschung

Clojure in Lehre und Forschung Clojure in Lehre und Forschung Johannes Brauer NORDAKADEMIE Hochschule der Wirtschaft 29. Mai 2015 Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen 2015 1 / 22 Johannes Brauer

Mehr

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4 Vorwort Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41644-4

Mehr

Android will doch nur spielen. Java Eine kurze Einführung

Android will doch nur spielen. Java Eine kurze Einführung Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach

Mehr

2 Grundlagen der Programmierung

2 Grundlagen der Programmierung 2 Grundlagen der Programmierung In diesem Kapitel bereiten wir die Grundlagen für ein systematisches Programmieren. Wichtigstes Ziel ist dabei die Herausarbeitung der fundamentalen Konzepte von Programmiersprache.

Mehr

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren?

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Zur Diplomarbeit: Eignet sich die Skriptsprache Python

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle Erweiterung des generierten Codes. 16. Januar 2013 Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene

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

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

Lua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )

Lua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua ) Lua Marcus Brenscheidt Marcin Golkowski Dynamische Programmiersprachen June 9, 2015 June 9, 2015 1 / 15 Geschichte I Entwickelt von Roberto Ierusalimschy, Luiz Henrique und Waldemar Celes Mitglieder der

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Algorithmen und Programmieren II Einführung in Python

Algorithmen und Programmieren II Einführung in Python Algorithmen und Programmieren II Einführung in Python SS 2012 Prof. Dr. Margarita Esponda 1 Was ist Python? eine Skript-Sprache Anfang der 90er Jahre entwickelt. Erfinder: Guido van Rossum an der Universität

Mehr

Programmieren in Haskell Einführung

Programmieren in Haskell Einführung Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

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

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

Kurs für Microsoft Online Kurs Microsoft Analysten Programmierer

Kurs für Microsoft Online Kurs Microsoft Analysten Programmierer Kurs für Microsoft Online Kurs Microsoft Analysten Programmierer Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses für Microsoft Modul 1 Basis Programm Erste Lerneinheit Einführung

Mehr

Funktionale Programmierung

Funktionale Programmierung Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 2 Teil II Typen mit Werten und Ausdruck, sogar listenweise 3 Haskell Programme Programm Module ein

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

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

Kommerzielle Softwareentwicklung mit Haskell

Kommerzielle Softwareentwicklung mit Haskell Kommerzielle Softwareentwicklung mit Haskell Ein Erfahrungsbericht Stefan Wehr factis research GmbH, Freiburg im Breisgau 7. Oktober 2011, Hal6 in Leipzig Viele Fragen Wer sind wir? Wer bin ich? Wie setzen

Mehr

Smalltalk. Gespräche über alltägliche, allgemeine und unwichtige Dinge. Smalltalk ist die Kunst zu reden, ohne zu denken.

Smalltalk. Gespräche über alltägliche, allgemeine und unwichtige Dinge. Smalltalk ist die Kunst zu reden, ohne zu denken. Gespräche über alltägliche, allgemeine und unwichtige Dinge. Wikipedia Smalltalk ist die Kunst zu reden, ohne zu denken. Andreas Tenzer, Dozent für Philosophie Inhalt: Vorwort Geschichte Eigenschaften

Mehr

Oracle PL/SQL und Datenbankprogrammierung - LVC

Oracle PL/SQL und Datenbankprogrammierung - LVC Oracle University Kontakt: +43 (0)1 33 777 401 Oracle PL/SQL und Datenbankprogrammierung - LVC Dauer: 5 Tage Lerninhalte Dieser Kurs richtet sich an Oracle8i-, Oracle9i- und Oracle Database 10g-Benutzer.

Mehr

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de DYNAMISCHE SEITEN Warum Scriptsprachen? Stand: 11.04.2005 CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de I N H A L T 1 Warum dynamische Seiten?... 3 1.1 Einführung... 3 1.2 HTML Seiten...

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

Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung

Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de

Mehr

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal Groovy und CouchDB Ein traumhaftes Paar Thomas Westphal 18.04.2011 Herzlich Willkommen Thomas Westphal Software Engineer @ adesso AG Projekte, Beratung, Schulung www.adesso.de thomas.westphal@adesso.de

Mehr

Michael Weigend. Python GE-PACKT

Michael Weigend. Python GE-PACKT Michael Weigend Python GE-PACKT E Einleitung 11 E.i Was ist Python? ai E.2 Einige besondere Merkmale von Python n E.3 Hinweise zum Lesen dieses Buches 13 1 Basiskonzepte von Python 15 1.1 Python im interaktiven

Mehr

Einführung in Prolog. Literatur

Einführung in Prolog. Literatur Einführung in Prolog Literatur Clocksin/Mellish Programming in Prolog Skript aus dem Kurs Max Hadersbeck Skript aus dem Kurs Hans Leiss Bratko Prolog Programming for Artificial Intelligence Prolog Lexikon

Mehr

Funktionale Programmierung mit Haskell. Jan Hermanns

Funktionale Programmierung mit Haskell. Jan Hermanns Funktionale Programmierung mit Haskell Jan Hermanns 1 Programmiersprachen imperativ deklarativ konventionell OO logisch funktional Fortran Smalltalk Prolog Lisp C Eiffel ML Pascal Java Haskell 2 von Neumann

Mehr

Michael Weigend. Python GE-PACKT. 5. Auflage

Michael Weigend. Python GE-PACKT. 5. Auflage Michael Weigend Python GE-PACKT 5. Auflage E Einleitung 13 E.i Was ist Python? 13 E.2 Einige besondere Merkmale von Python 13 E.3 Python 2 und 3 14 E.4 Hinweise zum Lesen dieses Buches 15 1 Basiskonzepte

Mehr

Java 6 lernen mit Eclipse

Java 6 lernen mit Eclipse Gottfried Wolmeringer Java 6 lernen mit Eclipse Galileo Press Danksagung 15 Vorwort 17 Hinweise zur Benutzung des Buches 18 Learning by Doing 19 TEIL I Grundlagen 1.1 Warumprogrammieren? 23 1.2 Was ist

Mehr

Oberseminar Softwareentwicklung

Oberseminar Softwareentwicklung Oberseminar Softwareentwicklung Data structures programs / Daten strukturieren Programme Pieter Hauffe Data structures programs Die Wahl der Datenrepräsentation in Software beeinflusst die gesamte Entwicklung

Mehr

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

Programmieren. Programmieren. Webseiten aufpeppen. Grafikkarte ausreizen. Coole Sprachen. Kinect am PC. 3D-Programmierung

Programmieren. Programmieren. Webseiten aufpeppen. Grafikkarte ausreizen. Coole Sprachen. Kinect am PC. 3D-Programmierung jquery: E-Book und Video auf DVD DVD Listings: Win-8-App im Eigenbau E-Book: jquery Das JavaScript- Framework für interaktives Design Videotutorial Moderne Webseiten gestalten mit jquery UI Visual Studio

Mehr

Andy Hunt. Programmieren lernen. mit Minecraft-Plugins. dpunkt.verlag

Andy Hunt. Programmieren lernen. mit Minecraft-Plugins. dpunkt.verlag Andy Hunt Programmieren lernen mit Minecraft-Plugins dpunkt.verlag Hier geht es los! 1 Für wen ist dieses Buch gedacht? 2 Erste Schritte 2 Ein Sprung ins kalte Wasser 3 Wo bekommst du Hilfe? 4 Schreibweisen

Mehr

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen Clemens Gull Joomlal-Extensions mit PHP entwickeln Mit 322 Abbildungen 11 Inhaltsverzeichnis 1 Einführung 15 1.1 Wasistjoomla? 15 1.1.1 Content-Management-System 15 1.1.2 Open-Source-Software 16 1.2 Der

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

Funktionale Programmierung. Frank Adler

Funktionale Programmierung. Frank Adler F# Funktionale Programmierung Frank Adler Was ist funktionale Programmierung Funktionale Programmierung ist die Komposition von Funktionen. Funktionale Konzepte First-Class Functions Higher-Order Functions

Mehr

Programmierung in Python

Programmierung in Python Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P

Mehr

Cloud Computing mit mathematischen Anwendungen

Cloud Computing mit mathematischen Anwendungen Cloud Computing mit mathematischen Anwendungen Vorlesung SoSe 2009 Dr. Marcel Kunze Karlsruhe Institute of Technology (KIT) Steinbuch Centre for Computing (SCC) KIT the cooperation of Forschungszentrum

Mehr

28. April 2006. Python ist eine Interpreter Sprache. einfach durch eigene C Module erweiterbar. Daten werden dynamisch getypt

28. April 2006. Python ist eine Interpreter Sprache. einfach durch eigene C Module erweiterbar. Daten werden dynamisch getypt Python in der Schule 28. April 2006 1 Grundlagen Wir 1 beziehen uns in unserer Zusammenfassung auf die Python Version 2.3.5 vom 8. Februar 2005. 2 Die Haupteigenschaften von Python sind: Python ist eine

Mehr

LEHRPLAN INFORMATIK. für das. ORG unter besonderer Berücksichtigung der Informatik

LEHRPLAN INFORMATIK. für das. ORG unter besonderer Berücksichtigung der Informatik LEHRPLAN INFORMATIK für das ORG unter besonderer Berücksichtigung der Informatik 5. Klasse Inhalte Kompetenzen Hinausgehend über den Lehrplan Informatik neu, gültig ab 2004/2005: Einführung: Bildbearbeitung

Mehr

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die

Mehr

Proseminar Funktionales Programmieren. Stephan Kreutzer

Proseminar Funktionales Programmieren. Stephan Kreutzer Proseminar Funktionales Programmieren Die Programmiersprache LISP Stephan Kreutzer Teil I: Funktionales Programmieren Imperative Sprachen Imperative Sprachen: Befehlsorientiert Imperative Sprachen orientieren

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

JavaScript kinderleicht!

JavaScript kinderleicht! JavaScript kinderleicht! Einfach programmieren lernen mit der Sprache des Web Bearbeitet von Nick Morgan 1. Auflage 2015. Taschenbuch. XX, 284 S. Paperback ISBN 978 3 86490 240 6 Format (B x L): 16,5 x

Mehr