220 likes | 368 Views
Erlang – A survey of the language & applications. Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom Labs. PRESENTATION BY: Vishal Nehru. Contents of this Presentation:. Introduction to Erlang Understanding the essence of Erlang Industrial Uses of Erlang
E N D
Erlang – A survey of the language & applications Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom Labs PRESENTATION BY: Vishal Nehru
Contents of this Presentation: • Introduction to Erlang • Understanding the essence of Erlang • Industrial Uses of Erlang • Conclusion
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.
Introduction to Erlang • Understanding the essence of Erlang • Industrial Uses of Erlang • Conclusion
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.
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.
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.
Introduction to Erlang • Understanding the essence of Erlang • Industrial Uses of Erlang • Conclusion
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.
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.
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.
Introduction to Erlang • Understanding the essence of Erlang • Industrial Uses of Erlang • Conclusion
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 REAL TIME GARBAGE COLLECTION: In built garbage collection system in Erlang reduces memory management headaches associated with seemingly faster languages that do not provide real-time garbage collection. PERFORMANCE: For larger programs, Erlang does much better than C, especially in telecommunications related applications.
Introduction to Erlang • Understanding the essence of Erlang • Industrial Uses of Erlang • Conclusion END
Credits and Acknowledgements: • 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