Transcript Document

1
CS 326: Functional Programming
Erlang – A survey of the language &
applications
Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom Labs
2
PRESENTATION BY: Vishal Nehru
CS 326: Functional Programming
Contents of this Presentation:
 Introduction to Erlang
 Understanding the essence of Erlang
 Industrial Uses of Erlang
 Conclusion
3
CS 326: Functional Programming
Introduction to Erlang
4
CS 326: Functional Programming
What is Erlang?
• A Functional Programming Language
• Designed by Ericsson Computer Science
Laboratory (ERicssonLANGuage)
• First used in 1987, was too slow initially for
large scale use.
• 1994: First International Erlang Conference
in Stockholm. Held annually since.
5
CS 326: Functional Programming
 Introduction to Erlang
 Understanding the essence of Erlang
 Industrial Uses of Erlang
 Conclusion
6
CS 326: Functional Programming
The Essence of Erlang
7
CS 326: Functional Programming
Salient features of Erlang:
• Control Systems Design
- Designed for programming real- time control systems, such as
telephone exchanges or ATM machines.
• Real time
- Faster response times for its applications.
• Very Large Programs
- Control systems may have millions of lines of code.
• Non-stop Systems
- Erlang abstract machine allows program code to be changed in a
running system.
- Debugging/upgrades occur without stopping the system.
8
CS 326: Functional Programming
More features of Erlang:
• Portability
- Can be run on many different operating systems
• Concurrency
- Big strength, best applications use concurrency extensively.
- Most processes are lightweight – hence millions of spawned processes
are handled well.
• Portability
- Can be run on many different operating systems
• Inter-Process Communication
- The Erlang abstract machine supports communication between the
lightweight processes.
9
CS 326: Functional Programming
Even more features of Erlang:
• Garbage Collection
- As a real time system, bounded-time garbage techniques are critical.
• Incremental Code Loading
- Users can control how code is loaded (all at boot time, only as needed etc - lazy loading?)
• Robustness
- Fault tolerant systems can be structured through 3 independent error-detection mechanisms
- Processes even on different processors can monitor each other to ensure greater robustness.
• Timing
- Erlang provides mechanisms for allowing processes to timeout while waiting for events.
• External Interfaces
- Supports a port mechanism, similar to networking layers
- Processes can communicate with the ‘outside world’ – OS and other processes, even those
written in other languages.
10
CS 326: Functional Programming
Let us examine Erlang syntax and
programming style
11
CS 326: Functional Programming
 Introduction to Erlang
 Understanding the essence of Erlang
 Industrial Uses of Erlang
 Conclusion
12
CS 326: Functional Programming
Industrial Uses of Erlang (1)
 NetSim:
- Network Simulator, simulates the maintenance
and operations behavior of a telephone
exchange.
- In use currently in over 20 countries.
13
CS 326: Functional Programming
Industrial Uses of Erlang (2)
 Mobility Server:
- Intelligent call control system, written almost
entirely in Erlang.
- Principal attraction: introduction of personal
number services for all mobile users.
- 486 Erlang Modules, 230000 lines of Erlang
code.
- Was written by 35 programmers, all of whom
had NO previous experience with Erlang.
14
CS 326: Functional Programming
Industrial Uses of Erlang (3)
 Distributed Resource Controller:
- Written in distributed Erlang
- Runs on low cost hardware.
- Uses dedicated scripting language
- Able to control audio devices, human operators,
database systems and other multimedia
resources.
- The whole project took only 11000 man hours
and nine programmers.
15
CS 326: Functional Programming
 Introduction to Erlang
 Understanding the essence of Erlang
 Industrial Uses of Erlang
 Conclusion
16
CS 326: Functional Programming
Conclusion
17
CS 326: Functional Programming
Conclusion: highlights of Erlang
TIME TO MARKET:
Use of Erlang instead of a
comparable language, in an
appropriate application, can greatly
reduce the “time-to-market”.
ERLANG’S
FORTE
18
PERFORMANCE:
REAL TIME GARBAGE COLLECTION:
For larger programs, Erlang
does much better than C,
especially in
telecommunications related
applications.
In built garbage collection system in
Erlang reduces memory management
headaches associated with seemingly
faster languages that do not provide
real-time garbage collection.
CS 326: Functional Programming
 Introduction to Erlang
 Understanding the essence of Erlang
 Industrial Uses of Erlang
 Conclusion
END
19
CS 326: Functional Programming
Credits and Acknowledgements:
20

Joe Armstrong, “Erlang – A survey of the
language and its industrial applications”,
Ericsson Labs 1996

www.erlang.org , “Getting Started With Erlang”

www.erlanger.de

Picture credits:
www.st.se/erlangquestionaire/erlang.htm
CS 326: Functional Programming
Thank you for listening. Any questions?
21
CS 326: Functional Programming