Site hosted by Angelfire.com: Build your free website today!


Segun el lenguaje de programacion
Maneja despacio que estoy urgido

Lenguajes imperativos

Un lenguaje imperativo es un tipo de lenguaje de programación. Es este tipo de lenguajes, las instrucciones se ejecutan unas tras otras, de manera secuencial, salvo cuando se encuentran estructuras de control condicionales o bucles. Hay declaración de variables, tipos y procedimientos, aunque esto varía notablemente en función del lenguaje utilizado, pues los hay que exigen las declaraciones mientras que otros permiten que esos elementos no sean declarados.

Ejemplo de programa en un lenguaje imperativo: Este sería el código de un programa que determina el factorial de un número en un lenguaje imperativo inventado:

  procedimiento factorial(entero n){
     entero resultado = 1;
     mientras (n > 0) {
        resultado = resultado * n;
        n = n - 1;
     }
     devuelve resultado;
  }

Este procedimiento (o función) recibe un número entero n. Declara una variable resultado que será el resultado final a devolver. Inicialmente, tiene como valor el 1. Después llega una estructura de control denominada bucle, que se ejecuta mientras la condición expresada entre los paréntesis (n > 0) sea cierta. Dentro del bucle se multiplica la variable resultado por n y el valor se deja de nuevo en resultado. La siguiente sentencia (n = n - 1) es necesaria para ir haciendo el factorial, así como para salir en algún momento del bucle. Por último, tras salir del bucle ya podemos devolver el valor final, que estará en la variable resultado.

Nótese que, si en un principio, la variable n es 0, no se entrará en el bucle al no ser cierta la condición, por lo que pasaría directamente a devolver la variable resultado, que tiene valor inicial 1 (0! = 1).

 

Lenguajes Funcionales

El objetivo es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de estado del cómputo. La secuencia de computaciones llevadas a cabo por el programa se regiría única y exclusivamente por la reescritura de definiciones más amplias a otras cada vez más concretas y definidas, usando lo que se denominan "definiciones dirigidas".

Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.

Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).

Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido.

Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales híbridos más conocidos son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos últimos, descendientes del lenguaje ML). Erlang es otro lenguaje funcional de programación concurrente. R también es un lenguaje funcional dedicado a la estadística.[1] Recientemente Microsoft Research está trabajando en el lenguaje F# (Functional#).

Entre otros lenguajes que se podrían utilizar para programación funcional se podrían incluir a Perl, pues, aunque es un lenguaje de propósito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario. Así como Python, como lenguaje que incorpora el paradigma funcional.

Atras..!