CS 326: Functional Programming 1
2 Erlang – A survey of the language & applications Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom Labs PRESENTATION BY: Vishal Nehru
CS 326: Functional Programming 3 Contents of this Presentation: Introduction to Erlang Understanding the essence of Erlang Industrial Uses of Erlang Conclusion
CS 326: Functional Programming 4 Introduction to Erlang
CS 326: Functional Programming 5 What is Erlang? A Functional Programming Language Designed by Ericsson Computer Science Laboratory (ER icsson LANG uage ) First used in 1987, was too slow initially for large scale use. 1994: First International Erlang Conference in Stockholm. Held annually since.
CS 326: Functional Programming 6 Introduction to Erlang Understanding the essence of Erlang Industrial Uses of Erlang Conclusion
CS 326: Functional Programming 7 The Essence of Erlang
CS 326: Functional Programming 8 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.
CS 326: Functional Programming 9 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.
CS 326: Functional Programming 10 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.
CS 326: Functional Programming 11 Let us examine Erlang syntax and programming style
CS 326: Functional Programming 12 Introduction to Erlang Understanding the essence of Erlang Industrial Uses of Erlang Conclusion
CS 326: Functional Programming 13 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.
CS 326: Functional Programming 14 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 Erlang Modules, lines of Erlang code. - Was written by 35 programmers, all of whom had NO previous experience with Erlang.
CS 326: Functional Programming 15 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 man hours and nine programmers.
CS 326: Functional Programming 16 Introduction to Erlang Understanding the essence of Erlang Industrial Uses of Erlang Conclusion
CS 326: Functional Programming 17 Conclusion
CS 326: Functional Programming 18 Conclusion: highlights of Erlang ERLANG’S FORTE TIME TO MARKET: Use of Erlang instead of a comparable language, in an appropriate application, can greatly reduce the “time-to-market”. PERFORMANCE: For larger programs, Erlang does much better than C, especially in telecommunications related applications. 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.
CS 326: Functional Programming 19 Introduction to Erlang Understanding the essence of Erlang Industrial Uses of Erlang Conclusion END
CS 326: Functional Programming 20 Credits and Acknowledgements: Joe Armstrong, “Erlang – A survey of the language and its industrial applications”, Ericsson Labs “Getting Started With Erlang” Picture credits:
CS 326: Functional Programming 21 Thank you for listening. Any questions?