PLDB
Languages Features Calendar CSV Lists Blog About Sponsor Add Language
GitHub icon

Erlang

Erlang

Erlang is a pl created in 1986 by Joe Armstrong and Robert Virding and Mike Williams.

#39on PLDB 36Years Old 27.1kUsers
29Books 37Papers 29kRepos

Try now: Riju

Erlang ( ER-lang) is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system. The term Erlang is used interchangeably with Erlang/OTP, or OTP, which consists of the Erlang runtime system, a number of ready-to-use components mainly written in Erlang, and a set of design principles for Erlang programs. The Erlang runtime system is known for its designs that are well suited for systems with the following characteristics: Distributed Fault-tolerant Soft real-time, Highly available, non-stop applications Hot swapping, where code can be changed without stopping a system. Read more on Wikipedia...


Example from Compiler Explorer:
-module(square). -export([square/1]). square(A) -> A*A.
Example from Riju:
-module(main). -export([main/0]). main() -> io:fwrite("Hello, world!\n").
Example from hello-world:
-module(erlang_hw). -export([start/0]). start() -> io:format("Hello World~n").
Example from the Hello World Collection:
%% Hello World in Erlang -module(hello). -export([hello/0]). hello() -> io:format("Hello World!~n", []).
Example from Linguist:
#!/usr/bin/env escript -export([main/1]). main([]) -> io:format("Hello, World!~n").
Example from Wikipedia:
%% Second version -module(counter). -export([start/0, codeswitch/1]). start() -> loop(0). loop(Sum) -> receive {increment, Count} -> loop(Sum+Count); reset -> loop(0); {counter, Pid} -> Pid ! {counter, Sum}, loop(Sum); code_switch -> ?MODULE:codeswitch(Sum) end. codeswitch(Sum) -> loop(Sum).

Keywords in Erlang

after and andalso begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse receive rem try when xor

Language features

Feature Supported Example Token
Integers
% [+-]?(?:[2-9]|[12][0-9]|3[0-6])#[0-9a-zA-Z]+
Floats
% [+-]?\d+.\d+
Conditionals
Functions
Print() Debugging io:format
Message Passing
Line Comments
% A comment
%
Macros
-define(Const, Replacement).
-define(Func(Var1,...,VarN), Replacement).
File Imports
-include("my_records.hrl").
-include("incdir/my_records.hrl").
-include("/home/user/proj/my_records.hrl").
-include("$PROJ_ROOT/my_records.hrl").
-include_lib("kernel/include/file.hrl").
Directives
-define(TIMEOUT, 200).
...
call(Request) ->
   server:call(refserver, Request, ?TIMEOUT).
-undef(Macro).
Comments
% hello world program
Shebang
#!/usr/bin/env escript
Strings
"hello world"
Semantic Indentation ϴ
MultiLine Comments ϴ

Books about Erlang on goodreads

title author year reviews ratings rating
Programming Erlang Joe Armstrong 2007 34 643 3.97
ERLANG Programming Francesco Cesarini 2009 10 190 4.06
Concurrent Programming ERLANG Joe Armstrong 1995 2 15 4.00
Introducing Erlang: Getting Started in Functional Programming Simon St. Laurent 2012 4 41 3.95
ERLANG and Elixir for Imperative Programmers Wolfgang Loder 0 1 3.00
Concurrent Programming in ERLANG Joe Armstrong 1993 1 2 4.50

Books about Erlang from ISBNdb

title authors year publisher
Handbook of Neuroevolution Through Erlang Sher, Gene I. 2012 Springer
Erlang '04: Proceedings Of The Acm Sigplan 2004 Erlang Workshop : September 22-22, 2004, Snowbird, Utah, Usa Acm Sigplan Erlang Workshop (2004 : Snowbird, Utah) 2004 Acm Press
Handbook of Neuroevolution Through Erlang Sher, Gene I. 2012 Springer
Erlang and OTP in Action Martin Logan and Eric Merritt and Richard Carlsson 2010 Manning Publications
Erlang Programming: A Concurrent Approach to Software Development Cesarini, Francesco and Thompson, Simon 2009 O'Reilly Media
Erlang and Elixir for Imperative Programmers Loder, Wolfgang 2016 Apress
Concurrent Programming in Erlang (2nd Edition) Virding, Robert and Wikstrom, Claes and Williams, Mike 1996 Prentice Hall
Concurrent Programming in Erlang Armstrong, Joe and Virding, Robert and Williams, Mike 1993 Prentice Hall
Introducing Erlang Simon St. Laurent 2017 O'reilly Media, Inc.
Programming Erlang Shroff Publishers & Distributors Pvt Ltd
Introducing Erlang Simon St. Laurent 20170306 O'Reilly Media, Inc.
Erlang Programming Francesco Cesarini; Simon Thompson 20090611 O'Reilly Media, Inc.
Erlang Programming Language: Erlang, Ejabberd, Mnesia, Couchdb, Wings 3d, Open Telecom Platform, Rabbitmq, Tsung, Yaws Books and LLC
Erlang Programming Francesco Cesarini 20090611 O'Reilly Media, Inc.
Études For Erlang J. David Eisenberg 2013
Erlang '05: proceedings of the ACM SIGPLAN 2005 Erlang Workshop : September 25, 2005, Tallinn, Estonia Acm Sigplan Erlang Workshop (4th : 2005 : Tallinn, Estonia) Acm Press
Building Web Applications with Erlang Zachary Kessin 20120605 O'Reilly Media, Inc.
Erlang and OTP in Action Eric Merritt; Martin Logan; Richard Carlsson 20101115 Simon & Schuster
Building Web Applications with Erlang Zachary Kessin 20120605 O'Reilly Media, Inc.
Articles On Erlang Programming Language, Including Hephaestus Books 2011
Building Scalable Applications With Erlang (developer's Library) Jerry Jackson 2019 Addison-wesley Professional
Learn You Some Erlang for Great Good! Fred Hebert 20130113 Random House Publishing Services
Research and implementation of Lobby System in Erlang Wilson Tuladhar and Yury Dorofeev and Yeli Zhu 2011-09-22 LAP LAMBERT Academic Publishing

Publications about Erlang from Semantic Scholar

title authors year citations influentialCitations
ERLANG - an experimental telephony programming language J. Armstrong and S. R. Virding 1990 46 1
A Domain-Specific Language for Scripting Refactorings in Erlang Huiqing Li and S. Thompson 2012 43 1
Erlang for concurrent programming J. Larson 2009 36 4
Programming language support to context-aware adaptation: a case-study with Erlang C. Ghezzi and Matteo Pradella and G. Salvaneschi 2010 36 2
Handbook of Neuroevolution Through Erlang Gene I. Sher 2012 29 0
A Reversible Semantics for Erlang Naoki Nishida and Adrián Palacios and G. Vidal 2016 25 3
InterSCSimulator: Large-Scale Traffic Simulation in Smart Cities Using Erlang E. Santana and Nelson Lago and Fabio Kon and D. Milojicic 2017 22 3
Drop the phone and talk to the physical world: Programming the internet of things with Erlang A. Sivieri and L. Mottola and G. Cugola 2012 19 0
An Erlang Implementation of Multiparty Session Actors S. Fowler 2016 18 0
Functional Federated Learning in Erlang (ffl-erl) G. Ulm and Emil Gustavsson and M. Jirstrand 2018 17 0
eJason: An Implementation of Jason in Erlang Álvaro Fernández Díaz and Clara Benac Earle and Lars-Åke Fredlund 2012 14 0
Multicore profiling for Erlang programs using percept2 Huiqing Li and S. Thompson 2013 14 0
On Using Erlang for Parallelization - Experience from Parallelizing Dialyzer Stavros Aronis and Konstantinos Sagonas 2012 12 0
Using the Erlang language for multi-agent systems implementation A. Stefano and C. Santoro 2005 12 0
Erlang for Concurrent Programming J. Larson 2008 11 2
Programming distributed erlang applications: pitfalls and recipes Hans Svensson and Lars-Åke Fredlund 2007 10 1
BEAMJIT: a just-in-time compiling runtime for Erlang Frej Drejhammar and L. Rasmusson 2014 7 1
Evaluation of JADE multi-agent system and Erlang holonic control implementations for a manufacturing cell K. Kruger and A. Basson 2019 6 0
Programming Erlang - Software for a Concurrent World by Joe Armstrong, Pragmatic Bookshelf, 2007, p. 536. ISBN-10: 193435600X K. Sankar 2009 5 0
Playing with Bisimulation in Erlang I. Lanese and D. Sangiorgi and G. Zavattaro 2019 5 1
Debugging Meets Testing in Erlang S. Tamarit and A. Riesco and Enrique Martin-Martin and R. Caballero 2016 4 0
Implementation of the real-time functional language Erlang on a massively parallel platform, with applications to telecommunications services Beshar Zuhdy and P. Fritzson and Kent Engström 1995 4 0
Learning programming with erlang F. Huch 2007 4 2
Towards an Isabelle/HOL formalisation of core Erlang J. Harrison 2017 4 0
Teaching concurrency-oriented programming with Erlang Ariel Ortiz 2011 4 0
Typing the wild in Erlang Nachiappan Valliappan and John Hughes 2018 3 1
ValiErlang: A Structural Testing Tool for Erlang Programs Alexandre P. Oliveira and P. Souza and S. Souza 2016 2 0
Polymorphic Types in Erlang Function Specifications F. J. López-Fraguas and Manuel Montenegro and J. Rodríguez-Hortalá 2016 2 0
An Evaluation of Erlang for Implementing Standby Redundancy in a Manufacturing Station Controller G. Hawkridge and A. Basson and K. Kruger 2018 2 0
Implementation and Evaluation of IEC 61499 Basic Function Blocks in Erlang Laurin Prenzel and Julien Provost 2018 2 0
Towards Green Computing in Erlang A. Mezsaros and G. Nagy and István Bozó and M. Tóth 2018 2 0
An Extension to Computing Elements in Erlang for Actor Based Concurrent Programming Kang Lianghuan and Cao Donggang 2012 2 0
Structuring Erlang BEAM control flow D. Lukács and M. Tóth 2017 1 0
Erlang meets WSNs: A functional approach to WSN programming A. Sivieri 2012 1 0
A Proof Assistant Based Formalisation of Core Erlang Péter Bereczky and D'aniel Horp'acsi and S. Thompson 2020 1 0
Bidirectional typing for Erlang Nithin Vadukkumchery Rajendrakumar and Annette Bieniusa 2021 1 0
Supporting cloud computing using Erlang Programming Language Abd El-Fattah Hussein and O. Ibrahim 2012 1 1
elixir.html · erlang.html · mathematica.html

View source

PLDB - Build the next great programming language · v2022 · Day 31 · Docs · Build · Acknowledgements · Traffic Today · Traffic Trends · Mirrors · GitHub · feedback@pldb.com