miércoles, 17 de noviembre de 2010

Reporte #8

Lenguajes Multiparadigmas

En este reporte hablare sobre los lenguajes multiparadigmas pues en si con mis palabras son aquellos lenguajes que tienen mas de un paradigma como el nombre lo dice por ejemplo pues aquellos lenguajes que son funcionales pero a la ves pueden ser logicos u orientados a objetos esos serian ejemplos de lenguajes multiparadigmas

Acontinuacion les dejare una pequeña introduccion a estos lenguajes:

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. Otro ejemplo son los lenguajes como Scheme (paradigma funcional) o Prolog (paradigma lógico), que cuentan con estructuras repetitivas, propias del paradigma imperativo.

A lenguaje de programación del multiparadigm es a lenguaje de programación ese apoya más de uno paradigma de programación. Como Leda asimientos de Tim Budd del diseñador él: La idea de una lengua del multiparadigm es proporcionar un marco en el cual los programadores puedan trabajar en una variedad de estilos, entremezclándose libremente construye de diversos paradigmas. La meta del diseño de tales idiomas es permitir que los programadores utilicen la mejor herramienta para un trabajo, admitiendo que nadie paradigma soluciona todos los problemas de la manera más fácil o más eficiente.

Un ejemplo es Onza, que tiene subconjuntos que sean a lengua de la lógica (La onza desciende de la lógica que programa), a lengua funcional, lengua orientada al objeto, a lengua del concurrente del flujo de datos, y más. La onza fue diseñada sobre un período de diez años para combinar en los conceptos armoniosos de una manera que se asocian tradicionalmente a diversos paradigmas de programación.

En esta clase hablamos sobre 4 paradigmas que fueron funcionales, logicos. imperativos y orientados a objetos aunque no son los unicos que ahi existen mas que les pondre algunos y un pequeño descripcion de ellos.

Flujo de datos - recálculo forzado de fórmulas cuando los valores de los datos cambian (e.g. Hojas de balance)

Lenguaje de programación visual - elementos de programa de manipulación gráficamente más bien que especificándolos textual (e.g. Simulink)

Programación declarativa - describe acciones (e.g. HTML describa una página pero no cómo exhibirla realmente)

Programación imprescindible - declaraciones explícitas que cambian un estado del programa

Programación funcional - la evaluación de las aplicaciones de funciones matemáticas y evita el estado y datos mutable

Programación orientada al objeto - clases y casos, herencia, encapsulación de las aplicaciones y polimorfismo

programación Prototipo-basada - programación orientada al objeto que evita clases y pone herencia en ejecución vía la reproducción de casos

El computar paralelo - ejecución simultánea con la comunicación necesaria y sincronización entre los procesos/los hilos de rosca

Modelo del agente - cómputo concurrente con los “agentes” esos decisiones locales de las marcas en respuesta al ambiente (capaz de comportamiento egoísta o competitivo)

programación de la tubería - ningunas llamadas de función jerarquizadas, pero las estructuras simples de un flujo con fácil visualizar/entienden que los datos atraviesan el programa

programación de constreñimiento - las relaciones entre las variables se expresan como los apremios (o redes del constreñimiento), dirigiendo soluciones permisibles (satisfacción del constreñimiento de las aplicaciones o algoritmo a una cara)

programación basada en las reglas - una red de las reglas del pulgar que abarcan una base de conocimiento y se pueden utilizar para los sistemas expertos y deducción y resolución del problema

programación de la lógica - hechos lógicos de las aplicaciones para crear un modelo que puede probar consistencia, deducir otras verdades o contestar a preguntas sobre el modelo (e.g. ¡Los perros son animales! ¡Los perros son rojos! Son algunos animales rojos?)

programación reflexiva - caso especial de metaprogramming (la modificación de programas como datos por otro programa o la capacidad de hacer la parte del trabajo adentro compila tiempo en vez de tiempo en marcha) en el cual el programa modifica o se amplía

o tambien pueden visitar esta pagina que les dira tambien que lenguajes tienen de 2 paradigmas hasta 8 paradigmas.
http://www.worldlingo.com/ma/enwiki/es/Multi-paradigm_programming_language

Algunos de los lenguajes que podemos hacer mas comunes o vistos son :
Go
Oz
Leda

Existen mas pero esos son como que los mas recomendados.

Lenguaje GO
Un pequeño codigo como de intruduccion es el factorial.


package main //esta se utiliza esencialmente en el go siempre al iniciar cualquier codigo que valla ser en go//

import "fmt" //aqui va importar este fmt que lo utilizaremos mas adelante para poder imprimir algo//

func main() { //aqui es la funcion main es donde empieza todo el cuerpo del programa//

fmt.printf ("Buenas Tardes compañeros") // es lo que habiamos importado mas agregandole .printf que es para imprimir algo //

fmt.printf("Este es un pequeño programa es como a introduccion a go\n")

} //se cierra el programa//

bueno en conclusion de este lenguaje pues yo le saco que tiene caracteristicas similirares a c por lo que se puede hacer un poco familiar y pues los paradigmas que tiene este lenguaje pues yo digo que es el funcional, y podria ser estructurado.

Encontre este codigo de factorial que no le entendi mucho les dejo el link acontinuacion :
http://code.google.com/p/bcannon/source/browse/languages/Go/factorial.go?r=a4d535beb3382de730c326570e5d7ee69a387c3a


Algunas REFERENCIAS:
http://www.vertutoriales.com/index.php/iniciacion-como-empezar-con-go-el-nuevo-lenguaje-de-google/

http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u=http://citeseerx.ist.psu.edu/viewdoc/download%3Fdoi%3D10.1.1.133.1069%26rep%3Drep1%26type%3Dpdf


7 comentarios:

  1. muy completa tu informacion acerca del lenguaje, y explicaste cada linea de codigo, mui bien! me parecio mucho mas fasil! (:

    suerte en tu examen!

    ResponderEliminar
  2. la informacion que pusiste acerca del lenguaje esta muy bien, que bien que pusiste las referencias y el link del ejemplo.

    ResponderEliminar
  3. muy completo el reporte felicidades :P bien por las referencias a unos les falto :P

    ResponderEliminar
  4. Excelente tu reporte, me gusta que vas explicando paso a paso tus programas, asi se le hace mas facil la comprension =)

    ResponderEliminar
  5. hola!!

    creo que diste una buena explicacion de tu programa ademas de que se nota que lo entendiste perfectamente ...

    =)

    ResponderEliminar
  6. Bien la explicación y los comentarios, pero creo que podías haberle metido algo más de complejidad a tu programa.

    Calificación: 2.2/3

    ResponderEliminar
  7. pues se ve bien realizado todo, hasta pusiste referencias bien =)

    ResponderEliminar