CS 326: Functional Programming 1. 2 Erlang – A survey of the language & applications Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom.

Slides:



Advertisements
Similar presentations
Operating-System Structures
Advertisements

Operating System.
ACM Uppsala Mike Williams Ericsson AB1 Why did we create Erlang? Mike Williams Ericsson AB Stockholm Sweden
Thomas Arts Industrial Use of a Functional Language Thomas Arts Ericsson Computer Science Laboratory Stockholm, Sweden
Introduction CSCI 444/544 Operating Systems Fall 2008.
Lecture 1: History of Operating System
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.
Distributed Systems Architectures
MITRE © 2001 The MITRE Corporation. ALL RIGHTS RESERVED. What Works, What Doesn’t -- And What Needs to Work Lynette Hirschman Information Technology Center.
CS533 Concepts of Operating Systems Class 14 Virtualization.
Figure 1.1 Interaction between applications and the operating system.
Strategic Directions in Real- Time & Embedded Systems Aatash Patel 18 th September, 2001.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
SECTION 1: INTRODUCTION TO SIMICS Scott Beamer CS152 - Spring 2009.
Understanding Factors That Influence Performance of a Web Server Presentation CS535 Project By Thiru.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Course: Introduction to Computers
Systems Software Operating Systems.
Use of Multimedia in Engineering. Mechatronics engineering is based on the combination from three basic engineering field that is mechaninal, electronics.
Client/Server Architectures
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Thanks to Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction n What is an Operating System? n Mainframe Systems.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King.
Rev PA Erlang Open Telecom Platform EAB/UPD/S Ulf Wiger.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
◦ What is an Operating System? What is an Operating System? ◦ Operating System Objectives Operating System Objectives ◦ Services Provided by the Operating.
Group 1 Members: SMU CSE 8343 Wael Faheem Professor:Dr.M.KHALIL. Hazem Morsy Date: Poramate Ongsakorn Payal H Patel Samatha Devi Malka.
Distributed Systems: Concepts and Design Chapter 1 Pages
Motorola Internal Use Only Evaluating Erlang for Robust Telecoms Software David King 2004 S 3 Symposium – Henry Nystrom, Phil Trinder, David King.
By Omar Y. Tahboub Multimedia and Networking Lab MediaNet Computer Science Department Kent State University.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
1 Software. 2 What is software ► Software is the term that we use for all the programs and data on a computer system. ► Two types of software ► Program.
Application Software System Software.
The Mach System Silberschatz et al Presented By Anjana Venkat.
Computer Organization Instruction Set Architecture (ISA) Instruction Set Architecture (ISA), or simply Architecture, of a computer is the.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
CS223: Software Engineering Lecture 14: Architectural Patterns.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
A Classification for Access Control List To Speed Up Packet-Filtering Firewall CHEN FAN, LONG TAN, RAWAD FELIMBAN and ABDELSHAKOUR ABUZNEID Department.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Operating System Fundamentals
Operating System Structure
Introduction to Operating System (OS)
Real-time Software Design
Quick Introduction to OS
Section 1: Introduction to Simics
Chapter 2: System Structures
Introduction to Operating Systems
Operating Systems : Overview
Introduction to Operating Systems
Operating Systems : Overview
Operating Systems : Overview
Industrial Use of a Functional Language
Operating Systems : Overview
Lecture Topics: 11/1 Hand back midterms
Presentation transcript:

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?