* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Document
Video game programmer wikipedia , lookup
Indentation style wikipedia , lookup
Flow-based programming wikipedia , lookup
Logic programming wikipedia , lookup
Control flow wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
Programming language wikipedia , lookup
Object-oriented programming wikipedia , lookup
Join-pattern wikipedia , lookup
Go (programming language) wikipedia , lookup
C Sharp (programming language) wikipedia , lookup
Reactive programming wikipedia , lookup
Falcon (programming language) wikipedia , lookup
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