Lenguajes de programacion

Páginas: 18 (4407 palabras) Publicado: 7 de junio de 2010
Erlang
Erlang es un lenguaje de programación concurrente y un sistema de ejecución que incluye una máquina virtual y bibliotecas.
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 defuncionamiento 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 software de código abierto 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óny 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 ComputerScience Lab en su día, esta dualidad es intencional.
Lenguaje funcional
El código fuente tiene este aspecto:
-module(fact).
-export([fac/1]).

fac(0) -> 1;
fac(N) when N > 0 -> N * fac(N-1).
A continuación una implementación del algoritmo Quicksort.
%% quicksort:qsort(List)
%% Ordena una lista de elementos
-module(quicksort).
-export([qsort/1]).

qsort([]) -> [];
qsort([Pivot|Rest]) ->qsort([ X || X
length(A) < length(B)
end,
qsort(Lists, F).

qsort([], _) -> [];
qsort([Pivot|Rest], Smaller) ->
qsort([ X || X ’
Los tipos básicos de datos de Miranda son char, num y bool. Una cadena de caracteres no es más que una lista de chars, mientras que num puede representar tanto a enteros como a reales sin necesidad de conversiones explícitaLas tuplas son secuencias de elementos de distintos tipos, análogo a los registros de los lenguajes parecidos a Pascal, y son escritos entre paréntesis
this_employee = ("García, Paco", 10560, False, 35)

La lista en cambio, es la estructura de datos más usada en Miranda. Se escribe entre corchetes y sapera cada elemento por comas, los cuales deben de ser del mismo tipo.
week_days =["Mon","Tue","Wed","Thur","Fri"]

La concatenación de listas es mediante ‘++’, la diferencia con ‘--‘, la construcción con ‘:’ comprobar el tamaño con ‘#’ y devolver el elemento de cierta posición de la lista (indexación) mediante ‘!’
days = week_days ++ ["Sat","Sun"]
days = "Nil":days
days!0
→ "Nil"
days = days -- ["Nil"]
#days
→ 7

Existen muchos atajos para construirlistas: ‘..’ es usado para listas cuyos elementos forman un serie aritmética, con la posibilidad de especificar un orden de incremento a parte de en 1:
fac n = product [1..n]
odd_sum = sum [1,3..100]

Constructores de listas más generales y potentes son aportados por “list comprehensions” (anteriormente conocido como “expresiones ZF”), el cual viene de dos formas: una expresión aplicadauna serie de términos:
squares = [ n * n | n print_endline "Hello World !" ;;
Hello World !
val () : unit =
>
Éste es un ejemplo de uso del entorno de ejecución (el símbolo de entrada de datos es el ">").
Manipulación de listas [editar]
(* Listas genéricas *)

(* Longitud de una lista *)
let rec long = function
|[] -> 0
|x::xs -> 1 + long xs;;

(*Ordenamiento por inserción *)
(* dada una relación de orden *)
let rec ordenar = function
|[] -> []
|x::xs -> insertar x (ordenar xs)
and insertar e = function
|[] -> [e]
|x::xs -> if x > e
then e::x::xs
else x::(insertar e xs);;

# let l = ["La"; "vida"; "es"; "un"; "largo"; "y"; "tranquilo"; "río"];;
- : string list =
["La";...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lenguajes de programacion
  • Lenguajes de programación
  • lenguaje de programacion
  • lenguajes de programacion
  • Lenguaje De Programacion
  • lenguaje de programacion
  • Los Lenguajes De Programacion
  • Lenguaje de programación

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS