Erlang Programming

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search


Erlang is a general purpose, concurrency-oriented functional programming language suited for fault-tolerant, distributed, soft real-time systems. It features strong dynamic typing, lightweight concurrency, eager evaluation and prolog like pattern matching. Erlang was developed in the 1980s at the Ericsson Computer Science Laboratory to address a then-unfulfilled need for telecommunications programming: a high-level, expressive language suitable for rapid development that offered the error recovery, concurrency, distribution and performance features required by telecommunications equipment.

Although its roots are in telecommunications, Erlang's unique features and extensive library make it suitable as a general-purpose programming language and well-suited to programming projects such as network servers, control systems and web development.

The Erlang language, together with an extensive library of applications and modules, a virtual machine and operating system, and a set of design principles establishing standard behaviors, comprise Erlang/OTP (OTP stands for Open Telecommunications Platform). Erlang/OTP is distributed as free software (under the Erlang Public License) as well as a commercially supported version from Ericsson. Both distributions run on Microsoft Windows, VxWorks by Wind River, and many varieties of Unix.

[edit] Introduction

History
Overview
Getting Started

[edit] Basic Erlang

Terms
Pattern Matching
Expressions
Functions
Guards
Modules
Errors
Processes and Messages
Timeouts
Macros
Techniques of Recursion
List Comprehensions
Comments

[edit] Basic OTP

Kernel and Stdlib
Distribution
Behaviors
Design Principles
Network Programming
Testing
Documentation

[edit] Intermediate Erlang

Records
Additional Types
Function Objects
Bitsyntax

[edit] Object Programming with Erlang

Example1

[edit] Popular Modules

Using lists
Using regular expressions

[edit] Software Engineering

Debugging and Tracing
Performance and Optimization
Unit Testing with eunit

[edit] Advanced OTP

Database Programming
Using ets
Using mnesia
Using External Databases

[edit] Thinking in Parallel

Autonomous Agents
Parallel Programming with linda

[edit] Advanced Erlang

Making Parsers with yecc
Evaluation
Parse Transformation

[edit] Appendixes

Using Erlang with Emacs
Creating Web Applications with yaws
Erlang Resources
Personal tools
Create a book