
Programming Erlang
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Cover
- Table of Contents
- Introduction
- What's This Book About?
- Who Is This Book For?
- New in This Edition
- Road Map
- The Code in This Book
- Help! It Doesn't Work
- Acknowledgments
- Part I-Why Erlang?
- 1. Introducing Concurrency
- Modeling Concurrency
- Benefits of Concurrency
- Concurrent Programs and Parallel Computers
- Sequential vs. Concurrent Programming Languages
- 2. A Whirlwind Tour of Erlang
- The Shell
- Processes, Modules, and Compilation
- Hello, Concurrency
- Part II-Sequential Programming
- 3. Basic Concepts
- Starting and Stopping the Erlang Shell
- Simple Integer Arithmetic
- Variables
- Floating-Point Numbers
- Atoms
- Tuples
- Lists
- Strings
- Pattern Matching Again
- 4. Modules and Functions
- Modules Are Where We Store Code
- Back to Shopping
- Funs: The Basic Unit of Abstraction
- Simple List Processing
- List Comprehensions
- BIFs
- Guards
- case and if Expressions
- Building Lists in Natural Order
- Accumulators
- 5. Records and Maps
- When to Use Maps or Records
- Naming Tuple Items with Records
- Maps: Associative Key-Value Stores
- 6. Error Handling in Sequential Programs
- Handling Errors in Sequential Code
- Trapping an Exception with try.catch
- Trapping an Exception with catch
- Programming Style with Exceptions
- Stack Traces
- Fail Fast and Noisily, Fail Politely
- 7. Binaries and the Bit Syntax
- Binaries
- The Bit Syntax
- Bitstrings: Processing Bit-Level Data
- 8. The Rest of Sequential Erlang
- apply
- Arithmetic Expressions
- Arity
- Attributes
- Block Expressions
- Booleans
- Boolean Expressions
- Character Set
- Comments
- Dynamic Code Loading
- Erlang Preprocessor
- Escape Sequences
- Expressions and Expression Sequences
- Function References
- Include Files
- List Operations ++ and - -
- Macros
- Match Operator in Patterns
- Numbers
- Operator Precedence
- The Process Dictionary
- References
- Short-Circuit Boolean Expressions
- Term Comparisons
- Tuple Modules
- Underscore Variables
- 9. Types
- Specifying Data and Function Types
- Erlang Type Notation
- A Session with the Dialyzer
- Type Inference and Success Typing
- Limitations of the Type System
- 10. Compiling and Running Your Program
- Modifying the Development Environment
- Different Ways to Run Your Program
- Automating Compilation with Makefiles
- When Things Go Wrong
- Getting Help
- Tweaking the Environment
- Part III-Concurrent and Distributed Programs
- 11. Real-World Concurrency
- 12. Concurrent Programming
- The Concurrency Primitives
- Introducing Client-Server
- Processes Are Cheap
- Receive with a Timeout
- Selective Receive
- Registered Processes
- A Word About Tail Recursion
- Spawning with MFAs or Funs
- 13. Errors in Concurrent Programs
- Error Handling Philosophy
- Error Handling Semantics
- Creating Links
- Groups of Processes That All Die Together
- Setting Up a Firewall
- Monitors
- Error Handling Primitives
- Programming for Fault Tolerance
- 14. Distributed Programming
- Two Models for Distribution
- Writing a Distributed Program
- Building the Name Server
- Libraries and BIFS for Distributed Programming
- The Cookie Protection System
- Socket-Based Distribution
- Part IV-Programming Libraries and Frameworks
- 15. Interfacing Techniques
- How Erlang Communicates with External Programs
- Interfacing an External C Program with a Port
- Calling a Shell Script from Erlang
- Advanced Interfacing Techniques
- 16. Programming with Files
- Modules for Manipulating Files
- Ways to Read a File
- Ways to Write a File
- Directory and File Operations
- Bits and Pieces
- A Find Utility
- 17. Programming with Sockets
- Using TCP
- Active and Passive Sockets
- Error Handling with Sockets
- UDP
- Broadcasting to Multiple Machines
- A SHOUTcast Server
- 18. Browsing with Websockets and Erlang
- Creating a Digital Clock
- Basic Interaction
- An Erlang Shell in the Browser
- Creating a Chat Widget
- IRC Lite
- Graphics in the Browser
- The Browser Server Protocol
- 19. Storing Data with ETS and DETS
- Types of Table
- ETS Table Efficiency Considerations
- Creating an ETS Table
- Example Programs with ETS
- Storing Tuples on Disk
- What Haven't We Talked About?
- 20. Mnesia: The Erlang Database
- Creating the Initial Database
- Database Queries
- Adding and Removing Data in the Database
- Mnesia Transactions
- Storing Complex Data in Tables
- Table Types and Location
- The Table Viewer
- Digging Deeper
- 21. Profiling, Debugging, and Tracing
- Tools for Profiling Erlang Code
- Testing Code Coverage
- Generating Cross-References
- Compiler Diagnostics
- Runtime Diagnostics
- Debugging Techniques
- The Erlang Debugger
- Tracing Messages and Process Execution
- Frameworks for Testing Erlang Code
- 22. Introducing OTP
- The Road to the Generic Server
- Getting Started with gen_server
- The gen_server Callback Structure
- Filling in the gen_server Template
- Digging Deeper
- 23. Making a System with OTP
- Generic Event Handling
- The Error Logger
- Alarm Management
- The Application Servers
- The Supervision Tree
- Starting the System
- The Application
- File System Organization
- The Application Monitor
- How Did We Make That Prime?
- Digging Deeper
- Part V-Building Applications
- 24. Programming Idioms
- Maintaining the Erlang View of the World
- A Multipurpose Server
- Stateful Modules
- Adapter Patterns
- Intentional Programming
- 25. Third-Party Programs
- Making a Shareable Archive and Managing Your Code with Rebar
- Integrating External Programs with Our Code
- Making a Local Copy of the Dependencies
- Building Embedded Web Servers with Cowboy
- 26. Programming Multicore CPUs
- Good News for Erlang Programmers
- How to Make Programs Run Efficiently on a Multicore CPU
- Parallelizing Sequential Code
- Small Messages, Big Computations
- Parallelizing Computations with mapreduce
- 27. Sherlock's Last Case
- Finding Similarities in Data
- A Session with Sherlock
- The Importance of Partitioning the Data
- Adding Keywords to the Postings
- Overview of the Implementation
- Exercises
- Wrapping Up
- A1. OTP Templates
- The Generic Server Template
- The Supervisor Template
- The Application Template
- A2. A Socket Application
- An Example
- How lib_chan Works
- The lib_chan Code
- A3. A Simple Execution Environment
- How Erlang Starts
- Running Some Test Programs in SEE
- The SEE API
- SEE Implementation Details
- How Code Gets Loaded in Erlang
- Index
- - SYMBOLS -
- - DIGITS -
- - A -
- - B -
- - C -
- - D -
- - E -
- - F -
- - G -
- - H -
- - I -
- - J -
- - K -
- - L -
- - M -
- - N -
- - O -
- - P -
- - Q -
- - R -
- - S -
- - T -
- - U -
- - V -
- - W -
- - Y -
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.