Lenguaje Erlang es un lenguaje de programación concurrente y un sistema de ejecución que incluye una máquina virtual y librerías.
El subconjunto de programación secuencial de Erlang es un lenguaje funcional, con evaluación estricta, asignación única, y tipado dinámico. Fue diseñado en la compañía Ericsson para realizar aplicaciones distribuidas, tolerantes a fallos, soft-real-time y de funcionamiento ininterrumpido. Proporciona el cambio en caliente de código de forma que éste se puede cambiar sin parar el sistema. Originalmente, Erlang, era un lenguaje propietario de Ericsson, pero fue cedido como open source en 1998.
La implementación de Ericsson es, principalmente interpretada pero también incluye un compilador HiPE (sólo soportado en algunas plataformas). La creación y gestión de procesos es trivial en Erlang, mientras que, en muchos lenguajes, los hilos se consideran un apartado complicado y propenso a errores. En Erlang toda concurrencia es explícita.
Erlang recibe el nombre de A. K. Erlang. A veces se piensa que el nombre es una abreviación de ERicsson LANGuage, debido a su uso intensivo en Ericsson. Según Bjarne Däcker quién fue el jefe del Computer Science Lab en su día, esta dualidad es intencional.
Hay varios proyectos de telecom que han sido creados con esta herramienta:
- ejabberd, un servidor de mensajes instantáneos XMPP/Jabber escrito en Erlang.
- Wings 3D, modelador de 3D en Erlang.
- Yet another web server (YAWS, un servidor de aplicaciones web muy completo en Erlang).
- Tsung, una herramienta de análisis de rendimiento muy potente.
- The 3Gdb Project 3GdB es un HSS para IMS