A History of Erlang (2007)



Erlang was designed for writing concurrent programs that “run forever.” Erlang uses concurrent processes to structure the program. These processes have no shared memory and communicate by asynchronous message passing. Erlang processes are lightweight and belong to the language, not the operating system. Erlang has mechanisms to allow programs to change code “on the fly” so that programs can evolve and change as they run. These mechanisms simplify the construction of software for implementing non-stop systems.

This paper describes the history of Erlang. Material for the paper comes from a number of different sources. These include personal recollections, discussions with colleagues, old newspaper articles and scanned copies of Erlang manuals, photos and computer listings and articles posted to Usenet mailing lists.


  1. J. L. Armstrong. Telephony Programming in Prolog. Report T/SU 86 036 Ericsson Internal report. 3 March 1986.Google Scholar
  2. J. L. Armstrong and M. C. Williams. Using Prolog for rapid prototyping of telecommunication systems. SETSS ’89 Bournemouth 3–6 July 1989Google Scholar
  3. J. L. Armstrong, S. R. Virding and M. C. Williams. Erlang User’s Guide and Reference Manual. Version 3.2 Ellemtel Utveklings AB, 1991.Google Scholar
  4. J. L. Armstrong, S. R. Virding and M. C. Williams. Use of Prolog for developing a new programming language. Published in The Practical Application of Prolog. 1–3 April 1992. Institute of Electrical Engineers, London.Google Scholar
  5. J. L. Armstrong, B. O. Däcker, S. R. Virding and M. C. Williams. Implementing a functional language for highly parallel real-time applications. Software Engineering for Telecommunication Switching Systems, March 30 – April 1, 1992 Florence.Google Scholar
  6. Joe Armstrong. Getting Erlang to talk to the outside world. Proceedings of the 2002 ACM SIGPLAN workshop on Erlang. Google ScholarDigital Library
  7. Joe Armstrong. Making reliable distributed systems in the presence of errors. Ph.D. Thesis, Royal Institute of Technology, Stockholm 2003.Google Scholar
  8. Staffan Blau and Jan Rooth. AXD 301 — A new generation ATM switching system Ericsson Review No. 1, 1998 Google ScholarDigital Library
  9. D. L. Bowen, L. Byrd, and W. F. Clocksin, 1983. A portable Prolog compiler. Proceedings of the Logic Programming Workshop, Albufeira, Portugal, 74–83.Google Scholar
  10. B. Däcker, N. Eishiewy, P. Hedeland, C-W. Welin and M. C. Williams. Experiments with programming languages and techniques for telecommunications applications. SETSS ’86. Eindhoven 14–18 April, 1986.Google Scholar
  11. Bjarne Däcker. Datologilaboratoriet De första 10 åren. Ellemtel Utvecklings AB, 1994.Google Scholar
  12. Bjarne Däcker. Concurrent Functional Programming for Telecommunications. A case study of technology introduction: October 2000. Licentiate thesis. ISSN 1403–5286. Royal Institute of Technology. Stockholm, Sweden.Google Scholar
  13. L. Peter, Deutsch, A Lisp machine with very compact programs. Proceedings of 3rd IJCAI, Stanford, Ca., Aug. 1973.Google Scholar
  14. Ian Foster and Stephen Taylor. Strand – New Concepts in Parallel Programming. Prentice hall, 1990. Google ScholarDigital Library
  15. A. S. Haridi. Logic Programs Based on a Natural Deduction System. Ph.D. Thesis Royal Institute of Technology, Stockholm, 1981.Google Scholar
  16. Bogumil Hausman. Turbo Erlang: Approaching the speed of C. In Implementations of Logic Programming Systems, Kluwer Academic Publishers, 1994.Google Scholar
  17. S. Holmström. A Functional Language for Parallel Programming. Report No. 83.03-R. Programming Methodology Lab., Chalmers University of Technology, 1983.Google Scholar
  18. Tobias Lindahl and Konstantinos Sagonas. Detecting software defects in telecom applications through lightweight static analysis: A War Story. APLAS 2004.Google ScholarCross Ref
  19. David Maier and David Scott Warren: Computing with Logic: Logic Programming with Prolog. Benjamin/Cummings 1988. Google ScholarDigital Library
  20. Simon Marlow Philip Wadler. A practical subtyping system for Erlang. ICFP 1997. Google ScholarDigital Library
  21. Håkan Mattsson, Hans Nilsson and Claes Wikström: Mnesia — A distributed bobust DBMS for telecommunications applications. PADL 1999.Google Scholar
  22. Eliot Miranda. BrouHaHa — A portable Smalltalk interpreter. SIGPLAN Notices 22 (12), December 1987 (OOPSLA ’87). Google ScholarDigital Library
  23. Paul Morrison. Flow-Based Programming: A New Approach to Application Development. Van Nostrand Reinhold, 1994.Google Scholar
  24. Hans Nilsson, Torbjörn Törnkvist and Claes Wikström: Amnesia – A distributed real-time primary memory DBMS with a deductive query language. ICLP 1995.Google Scholar
  25. Hans Nilsson and Claes Wikström: Mnesia – An industrial DBMS with transactions, distribution and a logical query language. CODAS 1996.Google Scholar
  26. Tommy Ringqvist. BR Policy concerning the use of Erlang. ERA/BR/TV-98:007. March 12, 1998. Ericsson Internal paper.Google Scholar
  27. Tony Rogvall and Claes Wikström. Protocol programming in Erlang using binaries. Fifth International Erlang/OTP User Conference. 1999.Google Scholar
  28. T. Sjöland. Logic Programming with LPLO — An Introductory Guide. CSALAB The Royal Institute of Technology, Stockholm, Sweden. October 1983.Google Scholar
  29. D. H. D. Warren. An Abstract Prolog Instruction Set. Technical Report 309, Artificial Intelligence Center, SRI International, 333 Ravenswood Ave, Menlo Park CA 94025, 1983.Google Scholar
  30. Claes Wikström. Distributed programming in Erlang. PASCO’94. First International Symposium on Parallel Symbolic Computation.Google Scholar
  31. Ulf Wiger. Four-fold increase in productivity and quality – industrial strength functional programming in telecom-class products. Workshop on Formal Design of Safety Critical Embedded Systems. March 21–23, 2001, Munich.Google Scholar

Index Terms

  1. A history of Erlang

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            • Published in

              HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages

              June 2007

              483 pages

              Copyright © 2007 ACM


              Association for Computing Machinery

              New York, NY, United States


            PDF Format

            View or Download as a PDF file.



            View online with eReader.


            Read More