9781934356005

Programming Erlang : Software for a Concurrent World

by
  • ISBN13:

    9781934356005

  • ISBN10:

    193435600X

  • Format: Paperback
  • Copyright: 2007-07-01
  • Publisher: Oreilly & Associates Inc
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $36.95 Save up to $5.54
  • Buy New
    $31.41

    IN STOCK USUALLY SHIPS IN 24-48 HOURS

Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

Summary

Erlang solves one of the most pressing problems facing developers today: how to write reliable, concurrent, high- performance systems. It's used worldwide by companies who need to produce reliable, efficient, and scalable applications. Invest in learning Erlang now. Erlang is a programming language designed for building highly parallel, distributed, fault-tolerant systems. It has been used commercially for many years to build massive fault-tolerant systems that run for years with minimal failures. This book presents Erlang and functional programming in the familiar Pragmatic style. And it's written by Joe Armstrong, one of the creators of Erlang.

Table of Contents

Beginp. 1
Road Mapp. 2
Begin Againp. 5
Acknowledgmentsp. 6
Getting Startedp. 7
Overviewp. 7
Installing Erlangp. 10
The Code in This Bookp. 12
Starting the Shellp. 13
Simple Integer Arithmeticp. 14
Variablesp. 16
Floating-Point Numbersp. 21
Atomsp. 22
Tuplesp. 24
Listsp. 27
Stringsp. 29
Pattern Matching Againp. 30
Sequential Programmingp. 33
Modulesp. 33
Back to Shoppingp. 39
Functions with the Same Name and Different Arityp. 42
Funsp. 42
Simple List Processingp. 48
List Comprehensionsp. 51
Arithmetic Expressionsp. 54
Guardsp. 55
Recordsp. 59
Case and if Expressionsp. 62
Building Lists in Natural Orderp. 63
Accumulatorsp. 64
Exceptionsp. 67
Exceptionsp. 67
Raising an Exceptionp. 68
Try...catchp. 69
Catchp. 72
Improving Error Messagesp. 73
Programming Style with try...catchp. 73
Catching Every Possible Exceptionp. 74
Old- and New-Style Exception Handlingp. 75
Stack Tracesp. 75
Advanced Sequential Programmingp. 77
BIFsp. 78
Binariesp. 78
The Bit Syntaxp. 80
Miscellaneous Short Topicsp. 89
Compiling and Running Your Programp. 109
Starting and Stopping the Erlang Shellp. 109
Modifying the Development Environmentp. 110
Different Ways to Run Your Programp. 113
Automating Compilation with Makefilesp. 118
Command Editing in the Erlang Shellp. 121
Getting Out of Troublep. 122
When Things Go Wrongp. 122
Getting Helpp. 125
Tweaking the Environmentp. 126
The Crash Dumpp. 127
Concurrencyp. 129
Concurrent Programmingp. 133
The Concurrency Primitivesp. 134
A Simple Examplep. 135
Client-Server-An Introductionp. 136
How Long Does It Take to Create a Process?p. 140
Receive with a Timeoutp. 142
Selective Receivep. 145
Registered Processesp. 146
How Do We Write a Concurrent Program?p. 148
A Word About Tail Recursionp. 148
Spawning with MFAsp. 149
Problemsp. 150
Errors in Concurrent Programsp. 151
Linking Processesp. 151
An on_exit Handlerp. 152
Remote Handling of Errorsp. 154
The Details of Error Handlingp. 154
Error Handling Primitivesp. 162
Sets of Linked Processesp. 164
Monitorsp. 164
A Keep-Alive Processp. 165
Distributed Programmingp. 167
The Name Serverp. 169
The Distribution Primitivesp. 174
Libraries for Distributed Programmingp. 177
The Cookie Protection Systemp. 178
Socket-Based Distributionp. 179
IRC Litep. 183
Message Sequence Diagramsp. 185
The User Interfacep. 186
Client-Side Softwarep. 187
Server-Side Softwarep. 191
Running the Applicationp. 195
The Chat Program Source Codep. 196
Exercisesp. 203
Interfacing Techniquesp. 205
Portsp. 206
Interfacing an External C Programp. 207
Open_portp. 213
Linked-in Driversp. 214
Notesp. 218
Programming with Filesp. 219
Organization of the Librariesp. 219
The Different Ways of Reading a Filep. 220
The Different Ways of Writing to a Filep. 228
Directory Operationsp. 232
Finding Information About a Filep. 233
Copying and Deleting Filesp. 234
Bits and Piecesp. 234
A Find Utilityp. 235
Programming with Socketsp. 239
Using TCPp. 240
Control Issuesp. 249
Where Did That Connection Come From?p. 252
Error Handling with Socketsp. 253
UDPp. 254
Broadcasting to Multiple Machinesp. 257
A SHOUTcast Serverp. 259
Digging Deeperp. 266
ETS and DETS: Large Data Storage Mechanismsp. 267
Basic Operations on Tablesp. 268
Types of Tablep. 269
ETS Table Efficiency Considerationsp. 270
Creating an ETS Tablep. 271
Example Programs with ETSp. 273
DETSp. 278
What Haven't We Talked About?p. 281
Code Listingsp. 282
OTP Introductionp. 285
The Road to the Generic Serverp. 286
Getting Started with gen_serverp. 295
The gen_server Callback Structurep. 299
Code and Templatesp. 303
Digging Deeperp. 306
Mnesia: The Erlang Databasep. 307
Database Queriesp. 307
Adding and Removing Data in the Databasep. 311
Mnesia Transactionsp. 313
Storing Complex Data in Tablesp. 317
Table Types and Locationp. 319
Creating the Initial Databasep. 322
The Table Viewerp. 323
Digging Deeperp. 323
Listingsp. 325
Making a System with OTPp. 329
Generic Event Handlingp. 330
The Error Loggerp. 333
Alarm Managementp. 340
The Application Serversp. 342
The Supervision Treep. 345
Starting the Systemp. 348
The Applicationp. 352
File System Organizationp. 354
The Application Monitorp. 355
Digging Deeperp. 355
How Did We Make That Prime?p. 357
Multicore Preludep. 359
Programming Multicore CPUsp. 361
How to Make Programs Run Efficiently on a Multicore CPUp. 362
Parallelizing Sequential Codep. 366
Small Messages, Big Computationsp. 369
Mapreduce and Indexing Our Diskp. 373
Growing Into the Futurep. 383
Documenting Out Programp. 385
Erlang Type Notationp. 386
Tools That Use Typesp. 389
Erlang on Microsoft Windowsp. 391
Erlangp. 391
Fetch and Install MinGWp. 391
Fetch and Install MSYSp. 392
Install the MSYS Developer Toolkit (Optional)p. 392
Emacsp. 392
Resourcesp. 395
Online Documentationp. 395
Books and Thesesp. 396
Link Collectionsp. 396
Blogsp. 396
Forums, Online Communities, and Social Sitesp. 397
Conferencesp. 397
Projectsp. 397
Bibliographyp. 398
A Socket Applicationp. 399
An Examplep. 399
How lib_chan Worksp. 402
The lib_chan Codep. 405
Miscellaneousp. 415
Analysis and Profiling Toolsp. 415
Debuggingp. 418
Tracingp. 427
Dynamic Code Loadingp. 431
Module and Function Referencep. 435
Module: applicationp. 435
Module: base64p. 436
Module: beam_libp. 437
Module: cp. 437
Module: calendarp. 439
Module: codep. 440
Module: detsp. 441
Module: dictp. 444
Module: digraphp. 445
Module: digraph_utilsp. 446
Module: disk_logp. 447
Module: eppp. 448
Module: erl_evalp. 449
Module: erl_parsep. 449
Module: erl_ppp. 450
Module: erl_scanp. 450
Module: erl_tarp. 450
Module: erlangp. 451
Module: error_handlerp. 460
Module: error_loggerp. 460
Module: etsp. 461
Module: filep. 464
Module: file_sorterp. 466
Module: filelibp. 467
Module: filenamep. 467
Module: gb_setsp. 468
Module: gb_treesp. 470
Module: gen_eventp. 471
Module: gen_fsmp. 472
Module: gen_sctpp. 473
Module: gen_serverp. 474
Module: gen_tcpp. 474
Module: gen_udpp. 475
Module: globalp. 475
Module: inetp. 476
Module: initp. 477
Module: iop. 477
Module: io_libp. 478
Module: libp. 479
Module: listsp. 479
Module: mathp. 483
Module: ms_transformp. 483
Module: net_admp. 483
Module: net_kernelp. 484
Module: osp. 484
Module: proc_libp. 485
Module: qlcp. 485
Module: queuep. 486
Module: randomp. 487
Module: regexpp. 488
Module: rpcp. 488
Module: seq_tracep. 490
Module: setsp. 490
Module: shellp. 491
Module: slavep. 491
Module: sofsp. 492
Module: stringp. 496
Module: supervisorp. 497
Module: sysp. 497
Module: timerp. 498
Module: win32regp. 499
Module: zipp. 500
Module: zlibp. 500
Indexp. 503
Table of Contents provided by Ingram. All Rights Reserved.

Rewards Program

Write a Review