diseño de progra tarea
Post on 08-Jul-2015
144 Views
Preview:
TRANSCRIPT
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
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.
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.
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.
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.
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.
top related