domingo, 21 de noviembre de 2010

ERLANG (puntos extras)

Hola compañeros hoy les hablare acerca del ERLANG


La primera versión fue desarrollada por Joe Armstrong en el año de 1986, este es compatible con el intercambio en caliente, lo que esto significa es que el código se puede cambiar sin parar el sistema.



Este lenguaje fue originalmente un lenguaje solo dentro de Ericsson, pero luego fue liberado como código abierto en el año de 1998.

Erlang proporciona características de nivel de idioma para la creación y gestión de los procesos con la intención de simplificar la programación concurrente.
Aunque toda la concurrencia es explícita en Erlang, los procesos se comunican mediante paso de mensajes en el lugar de las variables que están compartidas, lo que elimina la necesidad de bloqueos.


Erlang fue diseñado principalmente para mejorar el desarrollo de aplicaciones de la telefonía.

En el año de 1998, el switch Ericsson AXD301 se anunció, con más de un millón de líneas de Erlang, y se informo de lograr una fiabilidad del nueve pero poco después, Erlang se prohibió en Ericsson Radio Systems para nuevos los productos.


Existe una filosoía de ERLANG la cual citaba estos 3 puntos.



  1. Encontrar los métodos adecuados a través del diseño de prototipos.
  2. No es suficientemente bueno como para tener ideas, también debe ser capaz de poner en práctica y saben que trabajo.
  3. Cometer errores en una escala pequeña, no en un proyecto de producción.
En cuanto a su distribución ERLANG empezó a ser utilizado por varias compañías en todo el mundo desde su liberación en el año de 1998 y fue usado por compañías como Nortel y T-Mobile, pero como quiera ERLANG no es un lenguaje de programación muy utilizado.


Las características más importantes son: 

  • lenguaje funcional 
  • soporte de concurrencia 
  • distribución, no hay memoria compartida 
  • tolerancia a fallos
  • recolector de basura
  • reemplazo de código en caliente 
  • procesos concurrentes altamente aislados 
  • comunicación entre procesos con paso de mensajes 
  • funciones de orden superior 
  • comprobación de tipos dinámica
  • evaluación de argumentos estricta (temprana, para permitir efectos secundarios)
  • posibilidad de conectar con código en C, Java y otros lenguajes 

Y también hay varias características con respecto a la concurrencia, las cuales son:
  • Todo es un proceso
  • Los procesos están fuertemente aislados
  • La creación y destrucción de objetos es un proceso ligero
  • La única forma en que los procesos pueden interaccionar es con el paso de mensajes
  • Los procesos tienen nombres únicos 
  • Si conoces el nombre de un proceso puedes mandarle un mensaje 
  • Los procesos no comparten recurso alguno 
  • El manejo de errores no es local 
  • Los procesos hacen lo que se supone que han de hacer, o fallan


Bueno compañeros aquí les dejo un manual muy bien explicado y esta en español.




También les dejo la pagina para que lo puedan descargar desde la pagina oficial


También les dejo una pagina para que vean los pasos de como ponerlo en EMACS


También les dejo un ejemplo:


GRACIAS :)

1 comentario: