Sie sind hier
E-Book

Scala

Objekt-funktionale Programmierung

AutorOliver Braun
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2010
Seitenanzahl330 Seiten
ISBN9783446426221
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis27,99 EUR
Sie sind neugierig auf Scala, die neue, universale Programmiersprache, die Objektorientierung und funktionale Programmierung vereint? Sie wollen diese Sprache kennen lernen und erfahren, welche Vorzüge sie hat? Dann sind Sie hier richtig.
Oliver Braun führt Sie detailliert in die Sprache und ihre Syntax ein und stellt die Arbeitsumgebung für die Programmierung von Scala und die Ausführung des Codes vor. Er geht auf die für die Praxis wichtigen Themen Dokumentation und Testen ein und macht Sie mit den wichtigsten Bibliotheken und Frameworks vertraut. Besonders stark ist Scala im Bereich der nebenläufigen Programmierung, daher ist auch diesem Thema ein eigenes Kapitel gewidmet.
Insgesamt erhalten Sie einen umfassenden Überblick, welche Vorzüge Scala in der Praxis tatsächlich hat und eignen sich die Sprache anhand der vielen nachvollziehbaren Beispiele rasch an.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
"Kapitel 7 Actors – Concurrency und Multicore-Programmierung (S. 193-194)

Nebenläufige Programmierung insbesondere unter Nutzung mehrerer Cores wird immer mehr zur Standardaufgabe für Softwareentwickler. Das liegt daran, dass die Prozessoren nicht mehr schneller werden, sondern dass sich in einem Prozessor immer mehr Kerne befinden. Ein Prozessor mit sehr wenigen Kernen kann in der Regel durch Betriebssystemprozesse noch ganz ordentlich ausgenutzt werden. Nun können z.B. zwei Prozesse, die sonst abwechselnd rechnen durften, parallel arbeiten.

Werden es aber immer mehr Kerne, wird es essenziell notwendig, die Programme selbst in mehrere Prozesse oder Threads aufzuteilen. Nachdem Scala auf der Java Virtual Machine oder auf einer .NET-Runtime ausgeführt wird, ist natürlich alles aus Java bzw. .NET verfügbar, um nebenläufig (engl. concurrent) zu programmieren. Scala bietet aber noch eine weitere, sehr elegante Abstraktionsmöglichkeit, die auf einem mathematischen Modell von nebenläufi- ger Programmierung basiert: die Actors1.

Es gibt Implementierungen des Actor-Modells in einigen Programmiersprachen bis hin zu actorbasierten, general purpose Programmiersprachen wie z.B. ActorScript2. Die Scala-Implementierung lehnt sich von der Syntax stark an die Actor- Implementierung in der funktionalen Programmiersprache Erlang3 an. Actors sind ganz nach der Scala-Philosophie nicht im Sprachkern, sondern als Library im Package scala.actors verfügbar.

Die Grundidee des Actor-Modells ist, dass ein Actor mit anderen Actors nur über Messages kommuniziert. Wird einem Actor eine Message gesendet, landet diese in seiner Mailbox und bleibt dort, bis der Actor sie herausnimmt. Das heißt also, die Kommunikation ist grundsätzlich asynchron4. In diesem Kapitel geben wir Ihnen eine Einführung in die Welt der Scala-Actors. Wir beginnen in Abschnitt 7.1 damit, den Zusammenhang zwischen Actors und Threads zu erläutern. Wie ein Actor Messages empfangen und darauf reagieren kann, wird in Abschnitt 7.2 dargestellt. Besondere Aktoren, nämlich Reaktoren und Dämonen, sind Gegenstand von Abschnitt 7.3. Für Aktoren wird ein Scheduling benötigt. Informationen darüber finden Sie in Abschnitt 7.4. Das Kapitel schließt mit einem Blick auf Remote Actors (siehe Abschnitt 7.5)."
Inhaltsverzeichnis
Inhaltsverzeichnis8
Vorwort12
1 Einführung14
1.1 Was Führungskräfte über Scala wissen sollten16
1.2 Java-Scala-Integration17
1.3 Über dieses Buch18
1.4 Typographische und sonstige Konventionen19
2 Einrichten der Arbeitsumgebung22
2.1 Die Scala-Shell und die Kommandozeile22
2.1.1 Der Scala-Interpreter24
2.1.2 Die Scala-(De-)Compiler26
2.1.3 Der Dokumentationsgenerator29
2.2 Buildtools30
2.2.1 Das Maven-Scala-Plugin30
2.2.2 Simple Build Tool32
2.3 IDE-Support35
2.3.1 Eclipse35
2.3.2 NetBeans36
2.3.3 IntelliJ IDEA37
3 Grundlagen40
3.1 Ein kleines bisschen Syntax40
3.2 Imperative Programmierung52
3.3 Ein ausführbares Programm55
3.4 Annotations57
4 Reine Objektorientierung60
4.1 Klassen und Objekte60
4.1.1 Felder und Methoden60
4.1.2 Was Klassen sonst noch enthalten können73
4.1.3 Konstruktoren75
4.1.4 Enumerations78
4.1.5 Vererbung und Subtyping80
4.1.6 Abstrakte Klassen86
4.2 Codeorganisation91
4.2.1 Packages91
4.2.2 Package Objects92
4.2.3 Importe93
4.3 Traits95
4.3.1 Rich Interfaces96
4.3.2 Stapelbare Modifikationen101
4.4 Implicits und Rich-Wrapper108
5 Funktionales Programmieren114
5.1 Lazy Evaluation115
5.2 Funktionen und Rekursionen117
5.3 Higher-Order-Functions121
5.4 Case-Klassen und Pattern Matching127
5.4.1 Case-Klassen132
5.4.2 Versiegelte Klassen135
5.4.3 Partielle Funktionen137
5.4.4 Variablennamen für (Teil-)Pattern139
5.4.5 Exception Handling139
5.4.6 Extraktoren141
5.4.7 Pattern Matching mit regulären Ausdrücken143
5.5 Currysierung und eigene Kontrollstrukturen145
5.6 For-Expressions154
5.7 Typsystem160
5.7.1 Standardtypen160
5.7.2 Parametrischer Polymorphismus und Varianz161
5.7.3 Upper und Lower Bounds164
5.7.4 Views und View Bounds167
5.7.5 Context Bounds168
5.7.6 Arrays und @specialized168
5.7.7 Generalized Type Constraints171
5.7.8 Self-Type-Annotation173
5.7.9 Strukturelle und existenzielle Typen175
6 Die Scala-Standardbibliothek178
6.1 Überblick und das Predef-Objekt178
6.2 Das Collection-Framework183
6.3 Scala und XML189
6.4 Parser kombinieren193
6.5 Ein kleines bisschen GUI200
7 Actors – Concurrency und Multicore-Programmierung206
7.1 Ein Thread ist ein Actor207
7.2 Empfangen und Reagieren209
7.3 Dämonen und Reaktoren220
7.4 Scheduler222
7.5 Remote Actors224
8 Softwarequalität – Dokumentieren und Testen228
8.1 Scaladoc229
8.2 ScalaCheck234
8.2.1 Grundlagen234
8.2.2 Generatoren237
8.2.3 Automatisiertes Testen mit Sbt242
8.3 ScalaTest245
8.3.1 ScalaTest und JUnit246
8.3.2 ScalaTest und TestNG248
8.3.3 ScalaTest und BDD249
8.3.4 Funktionale, Integrations- und Akzeptanztests251
8.3.5 Die FunSuite253
8.4 Specs254
8.4.1 Eine Specs-Spezifikation255
8.4.2 Matchers257
8.4.3 Mocks mit Mockito261
8.4.4 Literate Specifications262
9 Webprogrammierung mit Lift266
9.1 Quickstart mit Lift267
9.2 Bootstrapping270
9.3 Rendering – Templates und Snippets275
9.4 Benutzerverwaltung und SiteMap277
9.5 Persistenz279
9.6 Implementierung der Snippets282
10 Leichtgewichtige Webprogrammierung mit Scalatra292
10.1 Quickstart mit Scalatra292
10.2 Der Final-Grade-Calculator294
11 Akka – Actors und Software Transactional Memory300
11.1 Quickstart mit Akka301
11.2 Der MovieStore302
11.3 User- und Session-Management306
11.4 Software Transactional Memory310
11.5 Client und Service313
Schlusswort318
Literaturverzeichnis320
Stichwortverzeichnis324

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

PHP 7 und MySQL

E-Book PHP 7 und MySQL

Mit diesem Buch meistern Sie ohne große Vorkenntnisse den Einstieg in die Programmierung dynamischer Webseiten mit PHP und MySQL. Florence Maurice vermittelt Ihnen alles, was Sie benötigen, um Ihre ...

Workflow Systeme

E-Book Workflow Systeme

Studienarbeit aus dem Jahr 2003 im Fachbereich Informatik - Angewandte Informatik, Note: 2,0, Fachhochschule Erfurt (Informatik), Sprache: Deutsch, Abstract: Unternehmen müssen heute eher denn je ...

Java will nur spielen

E-Book Java will nur spielen

Spielen macht nicht nur einfach Spaß – über das Spiel entwickelt der „homo ludens“ (lat. der spielende Mensch) seine Fähigkeiten.Dieser Kurs nutzt den Spieltrieb um Programmieren zu lehren ...

Weitere Zeitschriften

FREIE WERKSTATT

FREIE WERKSTATT

Hauptzielgruppe der FREIEN WERKSTATT, der unabhängigen Fachzeitschrift für den Pkw-Reparaturmarkt, sind Inhaberinnen und Inhaber, Kfz-Meisterinnen und Kfz-Meister bzw. das komplette Kfz-Team Freier ...

AUTOCAD & Inventor Magazin

AUTOCAD & Inventor Magazin

FÜHREND - Das AUTOCAD & Inventor Magazin berichtet seinen Lesern seit 30 Jahren ausführlich über die Lösungsvielfalt der SoftwareLösungen des Herstellers Autodesk. Die Produkte gehören zu ...

Berufsstart Gehalt

Berufsstart Gehalt

»Berufsstart Gehalt« erscheint jährlich zum Sommersemester im Mai mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

Bibel für heute

Bibel für heute

Kommentare, Anregungen, Fragen und Impulse zu Texten aus der Bibel Die beliebte und bewährte Arbeitshilfe für alle, denen es bei der täglichen Bibellese um eine intensive Auseinandersetzung mit ...

BIELEFELD GEHT AUS

BIELEFELD GEHT AUS

Freizeit- und Gastronomieführer mit umfangreichem Serviceteil, mehr als 700 Tipps und Adressen für Tag- und Nachtschwärmer Bielefeld genießen Westfälisch und weltoffen – das zeichnet nicht ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren.Der DSD informiert über aktuelle Themen des ...

FileMaker Magazin

FileMaker Magazin

Das unabhängige Magazin für Anwender und Entwickler, die mit dem Datenbankprogramm FileMaker Pro arbeiten. In jeder Ausgabe finden Sie praxiserprobte Tipps & Tricks, die Ihnen sofort die ...