diseño de progra tarea

6
DISEÑO DE LENGUAJE DE PROGRAMACION ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO LENGUAJES DE PROGRAMACION DESCONOCIDOS Posiblemente algunos de estos lenguajes de programación podrían ser los sucesores en un futuro, de los usados actualmente como, C, C++, Java, PHP, Perl, Python o Ruby: Haskell Es un lenguaje de programación estandarizado multi-propósito puramente funcional con semánticas no estrictas y fuerte tipificación estática. Su nombre se debe al lógico estadounidense Haskell Curry. En Haskell, "una función es un ciudadano de primera clase" del lenguaje de programación. Como lenguaje de programación funcional, el constructor de controles primario es la función. El lenguaje tiene sus orígenes en las observaciones de Haskell Curry y sus descendientes intelectuales. En los años 1980 se constituyó un comité cuyo objetivo era crear un lenguaje funcional que reuniera las características de los múltiples lenguajes funcionales de la época, el más notable Miranda, y resolviera la confusión creada por la proliferación de los mismos. El lenguaje evoluciona rápidamente con y (ver más abajo) como los representantes actuales del estándar de facto. El último estándar semi-oficial es Haskell 98, con la intención de especificar una versión mínima y compatible del lenguaje como base para futuras extensiones y para su enseñanza. Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas puede resultar en algunas funciones casi triviales cuya versión enlenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar. Haskell es, desde 2002, uno de loslenguajes funcionales sobre los que más se ha investigado. Se han desarrollado muchas variantes: Versiones paralelas del MIT y Glasgow, ambas denominadas Parallel Haskell.Más versiones paralelas y distribuidas de Haskell llamadas Distributed Haskell (anteriormente Goffin) y Eden Una versión con ejecución especulativa: Eager Haskell Varias versiones orientadas a objetos: Haskell++, O'Haskell y Mondrian. Una versión educativa llamada Gofer desarrollada por Mark Jones que fue suplantada por Hugs

Upload: ioseph-rojas-astupinan

Post on 08-Jul-2015

144 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño de progra tarea

DISEÑO DE LENGUAJE DE PROGRAMACION

ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO

LENGUAJES DE PROGRAMACION

DESCONOCIDOS

Posiblemente algunos de estos lenguajes de programación podrían ser los

sucesores en un futuro, de los usados actualmente como, C, C++, Java, PHP, Perl, Python o Ruby:

Haskell

Es un lenguaje de programación estandarizado multi-propósito puramente funcional con

semánticas no estrictas y fuerte tipificación estática. Su nombre se debe al lógico

estadounidense Haskell Curry. En Haskell, "una función es un ciudadano de primera clase" del

lenguaje de programación. Como lenguaje de programación funcional, el constructor de controles

primario es la función. El lenguaje tiene sus orígenes en las observaciones de Haskell Curry y sus

descendientes intelectuales.

En los años 1980 se constituyó un comité cuyo objetivo era crear un lenguaje funcional que

reuniera las características de los múltiples lenguajes funcionales de la época, el más

notable Miranda, y resolviera la confusión creada por la proliferación de los mismos.

El lenguaje evoluciona rápidamente con y (ver más abajo) como los representantes actuales del

estándar de facto. El último estándar semi-oficial es Haskell 98, con la intención de especificar una

versión mínima y compatible del lenguaje como base para futuras extensiones y para su

enseñanza.

Las características más interesantes de Haskell incluyen el soporte para tipos de datos y

funciones recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas

puede resultar en algunas funciones casi triviales cuya versión enlenguajes imperativos pueden

llegar a resultar extremadamente tediosas de programar. Haskell es, desde 2002, uno de

loslenguajes funcionales sobre los que más se ha investigado.

Se han desarrollado muchas variantes:

Versiones paralelas del MIT y Glasgow, ambas denominadas Parallel Haskell.Más versiones

paralelas y distribuidas de Haskell llamadas Distributed Haskell (anteriormente Goffin) y Eden

Una versión con ejecución especulativa: Eager Haskell

Varias versiones orientadas a objetos: Haskell++, O'Haskell y Mondrian.

Una versión educativa llamada Gofer desarrollada por Mark Jones que fue suplantada por Hugs

Page 2: Diseño de progra tarea

DISEÑO DE LENGUAJE DE PROGRAMACION

ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO

Erlang

Es un lenguaje de programación concurrente y un sistema de ejecución que incluye una máquina

virtual y biblioteca.

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ñíaEricsson para realizar

aplicaciones distribuidas, tolerantes a fallos, soft-real-time y de funcionamiento 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ón y 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 -quien fue el

jefe del Computer Science Lab en su día-, esta dualidad es intencional.

Io

Es Un lenguaje de programación orientado a objetos puro inspirado en Smalltalk, Self, Lua, Lisp,

Act1 y NewtonScript. Io tiene un modelo de objetos basado en prototipos similares a los de uno

mismo y NewtonScript, eliminando la distinción entre la instancia y de clase. Como Smalltalk, todo

es un objeto y utiliza tipado dinámico. Como Lisp, los programas son sólo árboles de datos. Io

utiliza actores para la concurrencia.

Las características notables de Io son su tamaño mínimo y la apertura a la utilización de recursos

de código externos Io es ejecutada por una máquina virtual pequeña y portátil.

Page 3: Diseño de progra tarea

DISEÑO DE LENGUAJE DE PROGRAMACION

ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO

Racket

Es un propósito, el lenguaje de programación multi-paradigma general de la familia Lisp / Scheme.

Uno de sus objetivos de diseño es el de servir como una plataforma para la creación de lenguaje,

diseño e implementación. El lenguaje se utiliza en una variedad de contextos, como scripting,

programación de propósito general, educación de ciencias de la computación y la investigación.

La plataforma proporciona una implementación del lenguaje Racket (incluyendo un sofisticado

sistema de tiempo de ejecución, varias bibliotecas, compilador JIT, y más), junto con un entorno

de desarrollo llamado DrRacket (anteriormente llamado DrScheme) escrito en la propia raqueta. el

IDE y un plan de estudios de programación de acompañamiento se utiliza en el programa de

extensión ProgramByDesign, un intento de convertir la computación y programación en "una

parte indispensable del plan de estudios de artes liberales". El idioma principal es conocido por su

extenso sistema de macro que permite la creación de embebidos y lenguajes específicos de

dominio, el lenguaje construye tales asclasses o módulos, y dialectos diferentes de raqueta con

una semántica diferente.

La distribución de la plataforma es el software libre y de código abierto distribuido bajo la licencia

LGPL. Extensiones y paquetes escritos por la comunidad se cargan Planet, un sistema de

distribución de paquetes basado en la web.

Clojure

Es un dialecto del lenguaje de programación Lisp creado por Rich Hickey.Se trata de un lenguaje de

propósito general funcional. Su enfoque en la programación con valores inmutables y explícitas

construcciones de progresión de los tiempos están destinados a facilitar el desarrollo de los

programas más sólidos, particularmente multiproceso.

Clojure se ejecuta en la máquina virtual de Java, Common Language Runtime, y los motores de

JavaScript. Al igual que otros Lisps, Clojure trata como código de datos y tiene un macro sistema

sofisticado.

Squeak

Lenguaje de programación es un dialecto de Smalltalk. Es orientado a objetos basado en clases y

reflexiva.

Page 4: Diseño de progra tarea

DISEÑO DE LENGUAJE DE PROGRAMACION

ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO

Se deriva directamente de Smalltalk-80 por un grupo de Apple Computer, que incluyó algunos de

los originales de Smalltalk-80 desarrolladores. Su desarrollo fue continuado por el mismo grupo en

Walt Disney Imagineering, donde fue diseñado para su uso en proyectos internos de Disney.

Squeak está disponible para muchas plataformas y programas producidos en una plataforma

ejecute bits idénticos en todas las demás plataformas. El sistema de Squeak incluye código para la

generación de una nueva versión de la máquina virtual (VM) en el que se ejecuta. También incluye

un simulador de máquina virtual escrito en Squeak en sí. Por esta razón, es portado fácilmente.

OCaml

Originalmente conocida como Objetivo Caml, es la implementación de este lenguaje de

programación Caml, creada por Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy y

otros en 1996. OCaml se extiende el lenguaje Caml núcleo con construcciones orientadas a

objetos.

Conjunto de herramientas de OCaml incluye un intérprete interactivo de alto nivel, un compilador

de bytecode y un compilador de código nativo optimización. Tiene una gran biblioteca estándar

que hace que sea útil para muchas de las mismas aplicaciones como Python o Perl, así como

robustos construcciones de programación modular y orientado a objetos que hacen que sea

aplicable para la ingeniería de software a gran escala. OCaml es la sucesora de Caml Light. El CAML

siglas inicialmente a Categórico Abstract Machine Language, aunque OCaml abandona esta

máquina abstracta. [1]

OCaml es un proyecto de código abierto gestionado y mantenido principalmente por INRIA. En los

últimos años, muchos de los nuevos lenguajes han dibujado elementos de OCaml, especialmente F

# y Scala.

Factor

Es un lenguaje de programación orientado a pila creado por Slava Pestov. Factor está escrito de

forma dinámica y cuenta con gestión automática de memoria, así como las características

metaprogramación poderosos. El lenguaje tiene una sola aplicación con un compilador libre

hostedoptimizing y un entorno de desarrollo interactivo. El Factor de distribución, incluye una gran

biblioteca estándar.

Page 5: Diseño de progra tarea

DISEÑO DE LENGUAJE DE PROGRAMACION

ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO

Lua

Es un lenguaje de extensión, suficientemente compacto para usarse en diferentes plataformas. En lua

las variables no tienentipo, sólo los datos y pueden ser lógicos, enteros, números de coma

flotante o cadenas.

Estructuras de datos como vectores,conjuntos, tablas hash, listas y registros pueden ser representadas

utilizando la única estructura de datos de Lua: la tabla.

La semántica de Lua puede ser extendida y modificada redefiniendo funciones de las estructuras de

datos utilizando metatablas, casi como en Perl. Lua ofrece soporte para funciones de orden

superior, recolector de basura. Combinando todo lo anterior, es posible utilizar Lua en programación

orientada a objetos.

Scala

Es un lenguaje de programación multi-paradigma diseñado para expresar patrones comunes de

programación en forma concisa, elegante y con tipos seguros. Integra sutilmente características

de lenguajes funcionales y orientados a objetos. La implementación actual corre en la máquina

virtual de Java y es compatible con las aplicaciones Java existentes.

Caracteristicas:

Orientacion a Objetos

Scala es un lenguaje de programación orientado a objetos puro, en el sentido de que cada

valor es un objeto. El tipo y comportamiento de los objetos se describe por medio de

clases y traits. La abstracción de clases se realiza extendiendo otras clases y usando un

mecanismo de composición basado en mixins como un reemplazo limpio de la herencia

múltiple

Lenguaje Funcional

Scala también posee características propias de los lenguajes funcionales. En Scala las

funciones son valores de primera clase, soportando funciones anónimas, orden superior,

funciones anidadas y currificación. Scala viene integrado de fábrica con la técnica de

pattern matching para modelar tipos algebraicos usados en muchos lenguajes funcionales.

Tipificado estático

Scala está equipado con un sistema de tipos expresivo que refuerza a que las

abstracciones de tipos se usen en forma coherente y segura.

Page 6: Diseño de progra tarea

DISEÑO DE LENGUAJE DE PROGRAMACION

ING. SISTEMAS Y COMPUTACION VERONICA PATRICIA SOTO PECHO

Extensibilidad

Scala se diseñó teniendo en mente el hecho de que en la práctica el desarrollo de

aplicaciones requiere a menudo de extensiones específicas del lenguaje, para ello, Scala

proporciona una combinación única de mecanismos que hacen fácil y sin problemas

agregar construcciones nuevas al lenguaje en forma de bibliotecas.