Erlang
| ||||||||||||
Sumario
Resumen
Erlang es un lenguaje de programación funcional de alto nivel, diseñado para escribir aplicaciones concurrentes y distribuidas de funcionamiento ininterrumpido. Erlang usa procesos concurrentes para estructurar la aplicación. Estos procesos no comparten memoria y se comunican de forma asincrónica mediante el paso de mensajes. Los procesos Erlang son muy ligeros y pertenecen al propio lenguaje, no al sistema operativo. Erlang posee un mecanismo para cambiar el código fuente de un programa o aplicación al vuelo, sin tener que detener el programa. Este mecanismo facilita la implementación de sistemas indetenibles.
Historia
Los inicios de Erlang toman lugar en los años 80 en los laboratorios de Ciencias de Computación de la Compañía de telefonía sueca “Ericsson”, como un intento de desarrollar un lenguaje de programación de alto nivel, estructurado y con capacidad para afrontar el tipo de proyectos, especialmente de Telecomunicaciones, que la empresa estaba desarrollando y que optimizara el uso de la tecnología emergente en Microelectrónica, especialmente en Microinformática.
Características
Entre sus características más relevantes se encuentran
Lenguaje de alto nivel basado en procesos
Gran parte del código luce así:
% Ejecuta la función loop() como un nuevo proceso y guarda el id del proceso en ‘Pid’.
Pid = spawn(fun()-> loop() end)
% Envía un mensaje al proceso apuntado por ‘Pid’.
Pid ! “Hola Mundo en Erlang!”.
% Cuerpo de la función loop()
loop()->
% Recibe el mensaje enviado al proceso.
receive Msg->
hacer_algo
end.
Acoplamiento de patrones (Pattern-Matching)
% Obtiene el tercer valor sin importar cuales son los dos primeros.
{_, _, Cual} = {perro, gato, vaca}.
% Obtiene el tercer valor garantizando que el primero sea ‘perro’ y sin importar cuál es el segundo.
{perro, _, Cual} = {perro, gato, vaca}.
Organización de memoria automática mediante el Colector de Basura (Garbage Collector)
Erlang posee al igual que .Net y Java un mecanismo limpieza de la memoria que permite al programador olvidarse de manejar la destrucción de las variables una vez creadas y fuera de contexto. Este mecanismo se encarga automáticamente de destruir todos los objetos y procesos que ya no se estén utilizando ya sea porque están fuera de contexto o porque muere su objeto o proceso padre.
Enlaces Externos
NOTA: EN EDICION


