Você está na página 1de 23

INSTITUTO TECNOLGICO

DE DURANGO
PROGRAMACIN LGICA Y
FUNCIONAL

ERLANG
ALUMNA:
DORADO BENITEZ FRANCES POULETE
NO. CONTROL:
14040445
QU ES ERLANG? 14040445
FRANCES DORADO

Es un lenguaje funcional y de
programacin concurrente .

Fue diseado por la compaa Ericsson


con el propsito de hacer aplicaciones
que puedan soportar fallos,
funcionamiento ininterrumpido,
aplicaciones distribuidas, entre otras
EL NOMBRE DE ERLANG VIENE
cosas. DE LAS PALABRAS
ERICSSON Y LANGUAGE.
QU ES ERLANG? 14040445
FRANCES DORADO

Tiene una caracterstica muy importante

"el cambio de cdigo en caliente"

el cual se refiere a poder modificar el


cdigo aun cuando la aplicacin esta
corriendo.

ERLANG no segua la filosofa de cdigo


abierto hasta 1998 cuando Ericsson lo
cedi como tal.
CARACTERSTICAS 14040445
FRANCES DORADO

Se utiliza para construir sistemas de tiempo real


masivos y escalables con requisitos de alta
disponibilidad.

Algunos de sus usos son:

Las telecomunicaciones

Comercio electrnico

Telefona por computadora

Mensajera instantnea.

El sistema Runtime de ERLANG cuenta con soporte integrado para la concurrencia, la


distribucin y la tolerancia a fallos.
CARACTERSTICAS 14040445
FRANCES DORADO

CONCURRENCIA
ERLANG utiliza procesos ligeros cuyo requisitos
de memoria pueden variar de forma dinmica.
Los procesos no tienen memoria compartida y se
comunican por paso de mensajes asncronos.
DISTRIBUCIN
ERLANG est diseado para ejecutarse en un
entorno distribuido. Una mquina virtual Erlang
recibe el nombre de nodo Erlang. Los procesos
que residen en los diferentes nodos se
comunican mediante el paso de mensajes.
CARACTERSTICAS 14040445
FRANCES DORADO

ROBUSTEZ

ERLANG tiene varias primitivas de deteccin de


errores que se pueden utilizar para estructurar
sistemas tolerantes a fallos.

INTERFACES EXTERNAS
Los procesos de ERLANG se comunican con el
sistema operativo y de interaccin con otros
programas con el mismo mecanismo de paso de
mensajes que se utiliza entre los procesos de
ERLANG.
SNTAXIS BSICA 14040445
FRANCES DORADO

El signo% se utiliza para agregar comentarios al programa.

% hello world program La declaracin de mdulo es como la adicin de un espacio de


nombres aqu, estamos mencionando que este cdigo ser parte
-module(helloworld). de un mdulo llamado holamundo.

-export([start/0]). La funcin de exportacin se usa para que cualquier funcin


definida dentro del programa puede ser utilizado. Estamos
definiendo una funcin llamada de inicio y el fin de utilizar la
funcin de arranque, tenemos que utilizar la declaracin de
exportacin. El / 0 significa que "inicio" nuestra funcin acepta
start() ->
0 parmetros.
io:fwrite("Hello, world!\n"). Finalmente definimos nuestra funcin de arranque. Aqu se utiliza
otro mdulo llamado io que tiene todas las funciones de salida
de entrada requeridos en Erlang. Se utiliz la funcin fwrite a la
La salida del anterior programa salida "Hello World" en la consola.
ser - Hello, world!
TIPOS DE DATOS 14040445
FRANCES DORADO

ERLANG ofrece una amplia variedad de tipos de datos incorporados.

NMERO Existen 2 tipos de literales numricos:

nmeros enteros y flotantes.

-module(helloworld). Un ejemplo de cmo se puede utilizar el tipo de datos


nmero se muestra en el siguiente programa.
-export([start/0]).

Este programa muestra la adicin de 2 nmeros enteros.


start() ->
La salida del programa ser - 2
io:fwrite("~w",[1+1]).
TIPOS DE DATOS 14040445
FRANCES DORADO

TOMO
Un tomo es un literal, una constante con nombre.

Los tomos deben comenzar con una letra minscula y pueden contener caracteres en
maysculas y minsculas, dgitos, el subrayado (_) y el signo "arroba" .
-module(helloworld). Un ejemplo de cmo se puede utilizar el tipo de datos
tomo se muestra en el siguiente programa.
-export([start/0]).

En este programa, estamos creando un tomo que se


llama atom1.
start() ->
La salida del programa ser atom1
io:fwrite(atom1).
TIPOS DE DATOS 14040445
FRANCES DORADO

BOOLEAN

son los dos tomos reservadas: verdadero y falso.

-module(helloworld). Un ejemplo de cmo se puede utilizar el tipo de datos


boolean se muestra en el siguiente programa.
-export([start/0]).

En este ejemplo se hace una comparacin entre 2


enteros e imprime el booleano resultante a la consola.
start() ->
La salida del programa ser TRUE
io:fwrite(2 < 3).
TIPOS DE DATOS 14040445
FRANCES DORADO

LISTA
Una lista es un tipo de datos compuesto con un nmero variable de trminos.
Cada trmino en la lista se llama un elemento. El nmero de elementos se dice que es
la longitud de la lista.

-module(helloworld). Un ejemplo de cmo se puede utilizar el tipo de datos de lista se


muestra en el siguiente programa.
-export([start/0]).

start() ->
Aqu estamos definiendo una lista L que tiene 3 artculos.
L = [10,20,30] , La longitud es una funcin incorporada se define en Erlang, que se
puede utilizar para determinar el tamao de la lista.

io:fwrite("~w",[length(L)]).
La salida del programa ser 3
OPERADORES 14040445
FRANCES DORADO

ARITMETICOS

ERLANG es compatible con los operadores aritmticos normales como cualquier


lenguaje.
OPERADORES 14040445
FRANCES DORADO

RELACIONALES

Los operadores relacionales permiten la comparacin de objetos.


OPERADORES 14040445
FRANCES DORADO

OPERADORES LOGICOS

Estos operadores lgicos se utilizan para evaluar expresiones booleanas.


14040445
FRANCES DORADO

ERLANG COMO
LENGUAJE
FUNCIONAL
ERLANG LENGUAJE 14040445
FRANCES DORADO
FUNCIONAL

EL CDIGO DE PROGRAMA SE ESTRUCTURA


EN MDULOS QUE CONTIENEN FUNCIONES

-module(math).

-export([factorial/1]).

factorial(0) -> 1;

factorial(N) when N > 0 -> N *


factorial(N-1).
ERLANG LENGUAJE 14040445
FRANCES DORADO
FUNCIONAL
ACOPLAMIENTO DE PATRONES (PATTERN-MATCHING)

El acoplamiento de patrones es una tcnica bsica de ERLANG con la cual es posible tener las
clases lo menos ligadas entre s que se pueda.

De tal forma que en caso de producirse una modificacin en alguna de ellas, se tenga la mnima
repercusin posible en el resto de clases, haciendo posible la disminucin de dependencia entre las clases.

ACOPLAMIENTO DE CONTENIDO:

Cuando un mdulo referencia directamente el contenido de otro mdulo.

ACOPLAMIENTO COMN:

Cuando dos mdulos acceden (y afectan) a un mismo valor global.

ACOPLAMIENTO DE CONTROL:

Cuando un mdulo le enva a otro un elemento de control que determina la lgica de ejecucin del
mismo.
ERLANG LENGUAJE 14040445
FRANCES DORADO
FUNCIONAL
Los programas en ERLANG estn compuestos de bloques "funciones" y las
identificamos por su nombre y el numero de argumentos de entrada.

Por ejemplo:

Las funciones:

multiplicacion/2, multiplicacion/3, multipicacion/4

Pueden existir perfectamente juntas y llamndose a cada una segn el numero de datos
que se introduzca por el usuario, los resultados que devuelven las funcione puede ser de
cualquier elemento soportado por ERLANG flotante, entero, lista, etc.
ERLANG LENGUAJE 14040445
FRANCES DORADO
FUNCIONAL
El lenguaje funcional obliga a pensar lo que se programa, realmente, en este tipo de
lenguajes tambin es posible cometer errores y hacer barbaridades, pero en menor
medida.
POR REGLA GENERAL, LO QUE SE PROGRAMA EN UN LENGUAJE FUNCIONAL,
SUELE SER MEDITADO, PENSADO Y PUEDE SER PROBADO DE MEJOR FORMA.
ERLANG
OBLIGA A ORGANIZAR EL CDIGO, ya que todo gira en torno a crear funciones que
se llamen unas a otras y a s mismas, as como tener el cdigo separado en mdulos o
bloques funcionales.
Por ejemplo, en Erlang, para emplear OTP (Plataforma de Telecomunicaciones Abierta)
se debe de crear un mdulo para cada uno de ellos (gen_server, gen_event, gen_fsm),
con lo que todo queda bien organizado.
ERLANG LENGUAJE 14040445
FRANCES DORADO
FUNCIONAL

EL CDIGO RESULTANTE ES MS CORTO Y MS LEGIBLE, ya que el cdigo


funcional no reutiliza variables, se basa en listas y tiene menos estructuras de control
que los lenguajes imperativos, s, resulta ms fcil de comprender el lenguaje en s y el
cdigo, una vez se va leyendo.

TIENEN VENTAJAS CUANDO SE HABLA DE CONCURRENCIA, TIEMPO REAL Y


TOLERANCIA A FALLOS. Obviamente, si no se permite la reasignacin, no se
permite cambiar el valor de un dato ya asignado y, por tanto, no hay cabida para la
memoria compartida, con lo que la concurrencia se simplifica de forma sorprendente.

Por otro lado, ERLANG ha sido pensado y desarrollado para distribuirse en varios
nodos y/o equipos, pudiendo migrar sus procesos entre nodos y sustituir al nodo
principal en caso de no estar en modo operativo.
LA INFLUENCIA DE ERLANG 14040445
FRANCES DORADO

Facebook utiliza ERLANG en su


implementacin de chat para soportar los
mensajes de sus 70 millones de usuarios.
La empresa inglesa Demonware ,
especializada en el desarrollo y
mantenimiento de infraestructura y
aplicaciones servidoras para videojuegos en
Internet, comenz a emplear ERLANG para
poder soportar el nmero de jugadores de
ttulos tan afamados como Call of Duty.
WhatsApp, la aplicacin actualmente ms
relevante para el intercambio y envo de
mensajes entre smartphones emplea a nivel
de servidor sistemas desarrollados con
ERLANG.
14040445
FRANCES DORADO

Slo hay dos tipos de lenguajes: aquellos de los


que la gente se queja y aquellos que nadie usa.
Bjarne Stroustrup

GRACIAS!
BIBLIOGRAFA

Obtenido de: https://www.erlang.org/


Obtenido de: http://www.w3ii.com/es/erlang/erlang_basic_syntax.html
Obtenido de: https://www.ecured.cu/Erlang

Obtenido de: http://ceciliaurbina.blogspot.mx/2010/10/erlang.html/


Obtenido de:
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Erlang/
Tipos_de_datos_fundamentales_disponibles_en_el_lenguaje

Você também pode gostar