miércoles, 17 de noviembre de 2010

Reporte # 8 Lenguaje Multiparadigmas

Lenguajes Multiparadigmas

Un lenguaje de programación multiparadigma es el cual soporta más de un paradigma de programación. Según lo describe Bjarne Stroustrup, permiten crear “programas usando más de un estilo de programación”.
El objetivo en el diseño de estos lenguajes es permitir a los programadores utilizar el mejor paradigma para cada trabajo, admitiendo que ninguno resuelve todos los problemas de la forma más fácil y eficiente posible.
Por ejemplo, lenguajes de programación como C++, Genie, Delphi, Visual Basic o PHP, combinan el paradigma imperativo con la orientación a objetos. Incluso existen lenguajes multiparadigma que permiten la mezcla de forma natural, como en el caso de Oz, que tiene subconjuntos (particularidad de los lenguages lógicos), y otras características propias de lenguages de programación funcional y de orientación a objetos.

Lenguaje Oz

El Sistema de Programación Mozart es una plataforma de desarrollo avanzada para aplicaciones inteligentes, distribuidas. El sistema es el resultado de una década de investigación en el diseño de lenguajes de programación y aplicación, la inferencia basada en restricciones, la computación distribuida, y las interfaces humano-computadora. Como resultado, Mozart no tiene igual en potencia expresiva y funcionalidad. Mozart tiene un entorno interactivo de desarrollo incremental y una aplicación de calidad de producción para las plataformas Unix y Windows. Mozart es el fruto de una colaboración de investigación en curso por el Consorcio Mozart.Mozart se basa en el lenguaje de Oz, que apoya la programación declarativa, la programación orientada a objetos, programación con restricciones, y la concurrencia, como parte de un todo coherente. 

Ejemplos:
Lo que el codigo realiza es insertar Key,Value en el árbol binario TreeIn y poner la salida en TreeOut

proc {Insert Key Value TreeIn ?TreeOut}
   case TreeIn
   of nil then TreeOut = tree(Key Value nil nil)
   [] tree(K1 V1 T1 T2) then
      if Key == K1 then TreeOut = tree(Key Value T1 T2)
      elseif Key < K1 then T in
        TreeOut = tree(K1 V1 T T2)
        {Insert Key Value T1 T}
      else T in
        TreeOut = tree(K1 V1 T1 T)
        {Insert Key Value T2 T}
      end
   end
end



GO
GO es la nueva propuesta de Google para incursionar en otro campo más que le quiere arrebatar a Microsoft: Los lenguajes de programación. GO es el lenguaje de programación de Google y entre sus más destacadas características se encuentra el hecho de ser de código abierto, a diferencia del lenguaje de Microsoft.

Ejemplo:   

 package main

   import fmt "fmt"  // Package implementing formatted I/O.

    func main() {
    fmt.Printf("Hello (:")
    }





*En el codigo de GO no es necesario los punto y coma despues de cada declaracion.


Bibliografia de los ejemplos:
Pagina mOZart http://www.mozart-oz.org/
Ejemplo: http://manzanamecanica.org/?q=node/582/
Ejemplo y Tutorial GO http://golang.org/

**Agregue lo que realiza el codigo primero ;)**

7 comentarios:

  1. bien tus ejemplos, que bueno que pusiste la imagen de donde corre el programa, y las referencias.

    ResponderEliminar
  2. Bien el reporte, solo el primer programa no le entendí ¿qué hace?.

    Saludos

    ResponderEliminar
  3. Hola a tu primer programa no le entendi nada jajaja, pues veo que no soy la unica, quiesiera saber que haces y seria mejor si pudieras poner que hace.

    ResponderEliminar
  4. muy completo el reporte muy bien por las referencias :)

    ResponderEliminar
  5. esta muy bien el reporte los programas bien aunque falta explicarlos :D pero buenas referencias :D

    ResponderEliminar
  6. hola!!

    me gusto mucho qur agregaras un tutorial, ademas de que tu info esta muy bien ..

    =)

    ResponderEliminar
  7. Ok; el primer programa supongo que es de alguna de tus referencias ¿? Y el segundo pues es nada más un print-out.

    Calificación: 2/3

    ResponderEliminar