Dylan (lenguaje de programación)

De Wikipedia, la enciclopedia libre

Dylan es un lenguaje de programación funcional y orientado a objetos. Fue creado a principios de los años 1990 por iniciativa de Apple Computer.

Dylan es, en esencia, una versión depurada y simplificada de CLOS, un sistema de programación orientado a objetos desarrollado en Common Lisp. En Dylan, la mayoría de las entidades (incluyendo los tipos de datos primitivos, métodos y clases) son objetos de “primera clase”. Los programas pueden ser escritos desde una forma fuertemente tipeada a una forma débilmente tipeada. Dylan soporta herencia múltiple, polimorfismo, palabras clave, macros, y muchas otras características avanzadas.

La meta de Dylan es ser un lenguaje apropiado para el desarrollo de software comercial.

Historia[editar]

Dylan fue creado a principios de los años 90 por iniciativa de Apple Computer. Durante el desarrollo, se intentó usarlo con los ordenadores de Apple Newton, pero la implementación del lenguaje no estuvo listo a tiempo, y Newton usó una combinación de C y el lenguaje de programación NewtonScript (desarrollado por Walter Smith) en su lugar. Apple concluyó su desarrollo de Dylan en 1995.

Otros dos grupos contribuyeron al diseño del lenguaje y desarrollaron implementaciones: la compañía de software ‘’’Harlequin’’’ lanzó un entorno de desarrollo integrado para Microsoft Windows y ‘’’Carnegie Mellon University’’’ lanzó un compilador para sistemas Unix. Ambas implementaciones son hoy en día de código abierto y son mantenidas por un grupo de voluntarios.

El lenguaje Dylan tuvo como nombre en clave ‘Ralph’. James Joaquin eligió el nombre Dylan por “DYnamic LANguage” (lenguaje dinámico).

Sintaxis[editar]

En un principio, Dylan usaba la sintaxis Lisp, que está basada en expresiones simbólicas:

(bind ((radio 5)
       (circunferencia (* 2 $pi radio)))
  (if (> circunferencia 42)
      (format-out "¡Es un círculo grande! c es %=" circunferencia)
      (format-out "Es un círculo.  c es %=" circunferencia)))

El lenguaje fue entonces cambiado para usar una sintaxis al estilo Algol, diseñada por Mike Kahl, la cual sería más familiar para los programadores de C.

begin
 let radio = 5;
 let circunferencia = 2 * $pi * radio;
 if (circunferencia > 42)
    format-out("¡Es un círculo grande! c = %=", circunferencia);
 else
    format-out("Es un círculo c es %=", circunferencia);
 end if
end

Al igual que otros lenguajes de programación funcionales, la última evaluación en una función es el valor de retorno. Esto quiere decir que el siguiente código es una función válida, devolviendo uno de dos posibles valores para una llamada a la función:

define method a_number(isTen :: <string>)
  if (isTen = "10")
    10;
  else
    11;
  end if;
end method;

Enlaces externos[editar]