investigación de lenguajes de programación

Upload: jesus-asmeth-perez-camacho

Post on 06-Jul-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Investigación de Lenguajes de Programación

    1/6

    INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ

    INGENIERÍA EN SISTEMAS COMPUTACIONALES

    INVESTIGACIÓN DE LENGUAJES DE PROGRAMACIÓN

    ALUMNO:

    PÉREZ CAMACHO JESÚS ASMETH  –  12270757

    PROGRAMACION LÓGICA Y FUNCIONAL

    GRUPO: S8A

    CATEDRÁTICO:

    M.C. GALDINO BELIZARIO NANGO SOLÍS

    Carretera Panamericana Km 1080

    C. P. 29050. Apartado Postal: 599

    Tel. 6150380 ext. 321

    Tuxtla Gutiérrez Chiapas

  • 8/17/2019 Investigación de Lenguajes de Programación

    2/6

     

    TECNO L GICO NACIONAL DE M XICO

    INSTITUTO TECNO LÓGICO DE TUXTLA GUTIÉRREZ

    Ruby

    La historia de Ruby y sus características

    Rubí nació en 1993, pero se presentó al público por primera vez sólo en 1995 por su creador: Yukihiro

    Matsumoto, conocido mundialmente como Matz. Es un lenguaje orientado a objetos con una

    tipificación fuerte y dinámica. Curiosamente, es uno de los únicos idiomas nacidos fuera del eje de

    los Estados Unidos - Europa logró gran éxito comercial.

    Una de sus principales características es la expresión que tiene. Tuvo como objetivo desde el principio

    fue un lenguaje muy sencillo de leer y entender, para facilitar el desarrollo y el mantenimiento de lossistemas escritos con ella.

    Ruby es un lenguaje interpretado, y como tal, requiere la instalación de un intérprete en su máquinaantes de ejecutar cualquier programa.

    IntérpreteAntes de convertirse en Rubí lenguaje popular, sólo había un intérprete disponible: escrito por el

     propio Matz en C. Es un intérprete sencillo, sin la gestión de memoria muy complejo, o intérpretes

    características modernas tales como la compilación en tiempo de ejecución (conocida como JIT). Hoy

    en día la versión más extendida es la 2.0, también conocido como YARV (Sin embargo, otro de rubíesVM), como la base de una máquina virtual con características más avanzadas.

    La mayoría de las distribuciones de Linux tienen un paquete de las últimas versiones estables listas para instalarse.

    RubyGems

    Ruby tiene un gestor de paquetes bastante avanzada, flexible y eficiente: RubyGems . Las gemas pueden ser vistos como librerías de código reutilizable Ruby, que incluso puede contener algo de

    código nativo (C, Java, .NET). Son análogos a los tarros en el entorno de Java, o ensamblados en el

    mundo .Net. RubyGems es un sistema gestor de paquetes comparable a cualquier parte del mundo *

     NIX, como .debs el apt-get , las revoluciones por minuto de yum , entre otros.

    Bündler

    Para desarrollar nuevas aplicaciones usando Ruby, tomamos nota de que se requiere un número de

    características - la lectura y análisis de JSON, realice la autenticación del usuario, entre otras cosas.

    La mayoría de estas características se ha implementado en alguna joya , y tomar ventaja de estascaracterísticas sólo tiene que colocar la gema en nuestra aplicación.

    Intérpretes de Ruby

    Con la popularidad del lenguaje Ruby, especialmente después de la subida de Ruby on Rails,

    implementaciones alternativas de la lengua empezaron a surgir. La mayoría de ellos siguen una

    tendencia natural a estar basado en una máquina virtual en lugar de ser intérpretes simples. Algunas

    implementaciones tienen que completar los compiladores, que convierten el código Ruby en un

    lenguaje intermedio para ser interpretado por una máquina virtual.

  • 8/17/2019 Investigación de Lenguajes de Programación

    3/6

     

    TECNO L GICO NACIONAL DE M XICO

    INSTITUTO TECNO LÓGICO DE TUXTLA GUTIÉRREZ

    La principal ventaja de las máquinas virtuales es más fácil de soportar diferentes plataformas.

    Además, tener código intermedio permite la optimización del código de tiempo de ejecución,realizado por el JIT .

    JRuby (http://jruby.org)JRuby fue la primera implementación alternativa completa de la versión 1.8.6 de Ruby y es la

     principal aplicación del lenguaje Java para la JVM. Con el tiempo se ganó compatibilidad con 1.8.7

    y 1.9.3 versiones de la misma aplicación.

    Una de sus principales ventajas es la interoperabilidad con el código Java existente, así como sacar

    el máximo provecho de una de las plataformas de ejecución de código más maduros (recolector de basura, subprocesos nativos, etc.).

    IronRuby (http://ironruby.net)

    La comunidad .Net también no pasó por alto el éxito de la lengua y patrocinó el proyecto IronRuby,

    que fue mantenida por la Microsoft . IronRuby fue uno de los primeros proyectos de códigoverdaderamente abiertas dentro de Microsoft. En 2010, Microsoft dejó de apoyo del proyecto y laversión actual de IronRuby, 1.1.3, sólo se implementa a Ruby 1.9.2.

    Rubinius(http://rubini.us)

    Creado por Evan Phoenix, Rubinius es un proyecto que ha recibido más atención por parte de la

    comunidad Ruby, tienen el objetivo de crear una implementación de Ruby con la parte más ancha del

    código Ruby. Por otra parte, trajo ideas de máquinas virtuales Smalltalk, que tiene un conjunto de

    instrucciones (código de bytes) en sí e implementado en C / C ++. El Rubinius está siempre

    actualizado con las últimas versiones de Ruby y funciona en sistemas Unix / Linux y MacOS X.Windows hasta la fecha no se apoya en ella.

    RubySpec (http://rubyspec.org/)

    El proyecto Rubinius tiene una enorme cantidad de pruebas, escrito en Ruby, que alentó la iniciativa

     para especificar el lenguaje Ruby. El proyecto RubySpec ( http://rubyspec.org/ ) es un acuerdo entre

    los distintos ejecutores del lenguaje Ruby para especificar las características del lenguaje Ruby y el

    comportamiento, a través de un código ejecutable, el cual funciona como un TCK ( kit de prueba decompatibilidad ).

    RubySpec proviene del conjunto de la unidad de pruebas del proyecto Rubinius escritos con una

    versión mínima del RSpec, conocido como MSpec . El RSpec es una herramienta para describir lasespecificaciones de estilo predicados por el desarrollo del comportamiento Driven.

    Rubí Enterprise EditionPara mejorar el rendimiento de aplicaciones Rails y disminuir la cantidad de memoria utilizada, Ninh

    Bui , Hongli Lai y Tinco Andringa (de Phusion) modificaron el intérprete de Ruby y liberados por elnombre de Rubí Enterprise Edition .

    Los principales cambios en REE estaban en el comportamiento de la recolección de basura, lo que es

    trabajar con la función de copia en escritura disponible en la mayoría de los sistemas operativos basados en UNIX (Linux, Solaris, etc.).

  • 8/17/2019 Investigación de Lenguajes de Programación

    4/6

     

    TECNO L GICO NACIONAL DE M XICO

    INSTITUTO TECNO LÓGICO DE TUXTLA GUTIÉRREZ

    Otro cambio importante es la asignación de memoria intérprete, utilizando librerías de famosos como

    tcmalloc . Los desarrolladores de Phusion ofrecen cambios (parches) para entrar en la aplicaciónoficial de Ruby.

    La aplicación oficial de Rubí, lanzado en la versión 1.9, con nombre en código YARV , añade algunasnuevas construcciones del lenguaje en sí mismo, sino que también resuelve muchos de los problemasabordados antes de la REE .

    https://www.caelum.com.br/apostila-ruby-on-rails/a-linguagem-ruby/#2-5-outras-

    implementacoes-de-interpretadores-ruby  

    Scala

    El lenguaje Scala (Scalabel Language) es un lenguaje de programación de propósito general basado

    en dos paradigmas: funcional y orientado a objetos. Se basa en gran medida en Java, sino que incluye

    una serie de requisitos, los lenguajes funcionales retiran principalmente a abandonar el desarrollo de

    más sencillo que en las aplicaciones Java. Scala se ejecuta en la máquina virtual de Java, y tiene laventaja de permitir el uso de métodos y clases Java en un programa de Scala, y viceversa.

    Otras características del lenguaje Scala son:

    Tipos de inferencia : En Scala no es necesario declarar explícitamente el tipo de variables, debido a

    que el propio compilador infiere los tipos listos para usarlos, lo que aporta una mayor flexibilidad enla programación;

    La coincidencia de patrones : Funciona más o menos como un switch / case, pero es mucho más potente, que permite la comparación utilizando expresiones regulares;

    Rasgos : Es un concepto de múltiples lenguajes de programación orientado a objetos, que se añadió

    en la Scala, así, y es más o menos como una interfaz Java, sino que permite que los métodos que

    deberán realizarse, no sólo declaradas;

    funciones de orden superior : En Scala funciones son objetos, por lo que se pueden utilizar de muchasmaneras, por ejemplo, pasarlas como parámetros a otras funciones.

    Objetos : En Scala todo es un objeto, incluyendo los tipos básicos, como los enteros y los flotadores,

    e incluso funciones.El lenguaje Scala está siendo utilizado en varias compañías, como Twitter, FourSquare y GitHub, y

    varios proyectos de código abierto famosos como Spark Apache.

    El sitio oficial de la lengua Scala

    http://www.scala-lang.org/ 

    Scala código de idioma en GitHub

    https://www.caelum.com.br/apostila-ruby-on-rails/a-linguagem-ruby/#2-5-outras-implementacoes-de-interpretadores-rubyhttps://www.caelum.com.br/apostila-ruby-on-rails/a-linguagem-ruby/#2-5-outras-implementacoes-de-interpretadores-rubyhttp://www.scala-lang.org/http://www.scala-lang.org/http://www.scala-lang.org/https://www.caelum.com.br/apostila-ruby-on-rails/a-linguagem-ruby/#2-5-outras-implementacoes-de-interpretadores-rubyhttps://www.caelum.com.br/apostila-ruby-on-rails/a-linguagem-ruby/#2-5-outras-implementacoes-de-interpretadores-ruby

  • 8/17/2019 Investigación de Lenguajes de Programación

    5/6

     

    TECNO L GICO NACIONAL DE M XICO

    INSTITUTO TECNO LÓGICO DE TUXTLA GUTIÉRREZ

    https://github.com/scala 

    Descargar Idioma Scala

    http://www.scala-lang.org/download/  

    IntelliJ para Scala

    https://www.jetbrains.com/idea/features/scala.html 

    Eclipse IDE para Scala

    http://scala-ide.org/  

    http://www.devmedia.com.br/conheca-a-linguagem-scala/32850

    Go

    Go es un proyecto de código abierto, distribuído bajo una licencia tipo BSD.

    Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido

    desarrollado por Google y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken

    Thompson. Actualmente sólo está disponible para los sistemas operativos Windows, GNU/Linux yMac OS X.2 3

    Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje sesienten muy cómodos con él.

    Go usa tipado estático (statically typed) y es tan eficiente como C.

    Go tiene muchas de las características y facilidad de lenguajes dinámicos como Python

    Aún siendo un lenguaje diseñado para la programación de sistemas, provee de un recolector de basura,reflexión y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente.

    Go admite el paradigma de programación orientada a objetos, pero a diferencia de los lenguajes de

     programación más populares no dispone de herencia de tipos y tampoco de palabras clave que denoten

    claramente que soporta este paradigma. Otro detalle que puede resultar confuso es que la definición

    de un tipo ("clase") se realiza por medio de declaraciones separadas (interfaces, structs, embeddedvalues). Go permite el uso de delegación (a través de embedded values) y polimorfismo (por mediode interfaces).

    Go, al igual que C y C++, es un lenguaje compilado con algunas características peculiares.

    https://go-tour-es.appspot.com/#1  

    https://github.com/scalahttps://github.com/scalahttp://www.scala-lang.org/download/http://www.scala-lang.org/download/https://www.jetbrains.com/idea/features/scala.htmlhttps://www.jetbrains.com/idea/features/scala.htmlhttp://scala-ide.org/http://scala-ide.org/http://www.devmedia.com.br/conheca-a-linguagem-scala/32850https://go-tour-es.appspot.com/#1https://go-tour-es.appspot.com/#1http://www.devmedia.com.br/conheca-a-linguagem-scala/32850http://scala-ide.org/https://www.jetbrains.com/idea/features/scala.htmlhttp://www.scala-lang.org/download/https://github.com/scala

  • 8/17/2019 Investigación de Lenguajes de Programación

    6/6

     

    TECNO L GICO NACIONAL DE M XICO

    INSTITUTO TECNO LÓGICO DE TUXTLA GUTIÉRREZ

    http://www.taringa.net/comunidades/programacion/293370/Lenguaje-GO.html  

    http://lenguajego.blogspot.mx/p/requerimientos-para-instalarlo.html  

    https://groups.google.com/forum/#!msg/golang-spanish/DQbxXE8-W3Q/T-AIfkyGY0EJ  

    http://www.taringa.net/comunidades/programacion/293370/Lenguaje-GO.htmlhttp://lenguajego.blogspot.mx/p/requerimientos-para-instalarlo.htmlhttps://groups.google.com/forum/#!msg/golang-spanish/DQbxXE8-W3Q/T-AIfkyGY0EJhttps://groups.google.com/forum/#!msg/golang-spanish/DQbxXE8-W3Q/T-AIfkyGY0EJhttp://lenguajego.blogspot.mx/p/requerimientos-para-instalarlo.htmlhttp://www.taringa.net/comunidades/programacion/293370/Lenguaje-GO.html