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

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Atalanta

Atalanta

Atalanta ist die Zeitschrift der Deutschen Forschungszentrale für Schmetterlingswanderung. Im Atalanta-Magazin werden Themen behandelt wie Wanderfalterforschung, Systematik, Taxonomie und Ökologie. ...

aufstieg

aufstieg

Zeitschrift der NaturFreunde in Württemberg Die Natur ist unser Lebensraum: Ort für Erholung und Bewegung, zum Erleben und Forschen; sie ist ein schützenswertes Gut. Wir sind aktiv in der Natur ...

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 ...

Burgen und Schlösser

Burgen und Schlösser

aktuelle Berichte zum Thema Burgen, Schlösser, Wehrbauten, Forschungsergebnisse zur Bau- und Kunstgeschichte, Denkmalpflege und Denkmalschutz Seit ihrer Gründung 1899 gibt die Deutsche ...

Courier

Courier

The Bayer CropScience Magazine for Modern AgriculturePflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und generell am Thema Interessierten, mit umfassender ...

dental:spiegel

dental:spiegel

dental:spiegel - Das Magazin für das erfolgreiche Praxisteam. Der dental:spiegel gehört zu den Top 5 der reichweitenstärksten Fachzeitschriften für Zahnärzte in Deutschland (laut LA-DENT 2011 ...

Deutsche Hockey Zeitung

Deutsche Hockey Zeitung

Informiert über das nationale und internationale Hockey. Die Deutsche Hockeyzeitung ist Ihr kompetenter Partner für Ihren Auftritt im Hockeymarkt. Sie ist die einzige bundesweite Hockeyzeitung ...

DGIP-intern

DGIP-intern

Mitteilungen der Deutschen Gesellschaft für Individualpsychologie e.V. (DGIP) für ihre Mitglieder Die Mitglieder der DGIP erhalten viermal jährlich das Mitteilungsblatt „DGIP-intern“ ...

DULV info

DULV info

UL-Technik, UL-Flugbetrieb, Luftrecht, Reiseberichte, Verbandsinte. Der Deutsche Ultraleichtflugverband e. V. - oder kurz DULV - wurde 1982 von ein paar Enthusiasten gegründet. Wegen der hohen ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...