Vous êtes sur la page 1sur 5

5.

- Programacin Declarativa vs Imperativa - Conceptos de ambas


La Programacin declarativa: Es un paradigma de programacin que est basado en el desarrollo de programas "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen un problema pero no las instrucciones necesarias para resolverlo. La solucin se obtiene mediante mecanismos internos.

La programacin imperativa:
Es un paradigma de programacin que describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado. Se le debe de explicar a la computadora por medio de instrucciones detalladas cmo hay que realizar una tarea.

- Caractersticas y diferencias
Caractersticas de lenguaje declarativo
Los lenguajes declarativos estn orientados a buscar la solucin del problema, sin preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse en la lgica del algoritmo, ms que en el control de la secuencia. Los programas estn formados por un conjunto de definiciones o ecuaciones, las cuales describen lo que debe ser calculado, no en s la forma de hacerlo. Las variables slo pueden tener asignado un solo valor a lo largo de la ejecucin del programa, l o cual implica que no puede existir asignacin destructiva. Debido a esto, cobra especial importancia el uso del anidamiento y la recursividad. Las listas representan la estructura fundamental de datos. El orden de la ejecucin no resulta importante debido a que no existen efectos colaterales; es decir, que al calcular un valor, resulta imposible afectar el clculo de otros y con esto se puede afirmar que cualquier secuencia de ejecucin deber conducir al mismo resultado. Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se pueden tratar como argumentos de otras definiciones. La programacin declarativa es un estilo de programacin en el que el programador especifica qu debe computarse ms bien que cmo deben realizarse los cmputos. "programa = lgica + control" (Kowalski) "algoritmos + estructuras de datos = programas" (Wirth) uso de la lgica como lenguaje de programacin: la computacin se entiende como una forma de inferencia o deduccin en dicha lgica.

1.- La caracterstica fundamental del paradigma declarativo es que no existe la asignacin ni el cambio de estado en un programa.

2.-Las variables son identificadores de valores que no cambian en toda la evaluacin (como constantes definidas con un DEFINE de C). 3.-Slo existen valores y expresiones matemticas que devuelven nuevos valores a partir de los declarados. Describe el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Las variables slo pueden tener asignado un solo valor a lo largo de la ejecucin del programa (no hay asignacin destructiva) El orden de la ejecucin no resulta importante debido a que no existen efectos colaterales; es decir, que al calcular un valor, resulta imposible afectar el clculo de otros El control de la ejecucin no es responsabilidad del programador. Las variables son utilizadas con transparencia referencial El uso del anidamiento y la recursividad tienen una gran importancia en este paradigma. Las listas representan la estructura fundamental de datos. Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se pueden tratar como argumentos de otras definiciones. Tiene lmites de aplicacin debido a que est restringido al subconjunto de problemas para los que el interprete o compilador fue diseado

Caractersticas de lenguaje imperativo


Describe los pasos necesarios para solucionar un problema. Las variables pueden actualizar su valor a lo largo de la ejecucin del programa Presenta efectos laterales, es decir, que al realizar una operacin pueden existir cambios en variables globales, archivos, etc., que sobrevivan a sta. Da al programador un control extensivo sobre el orden en el cual se ejecutan los enunciados en el programa. Los programas no son seguros puesto que cualquier posicin de memoria puede ser actualizada de forma no adecuada No hay transparencia referencial debido a los efectos colaterales y la asignacin destructiva Cada dato tiene una representacin y un nmero de propiedades conocidas como tipo. Tiene lmites de aplicacin debido a que se ajusta nicamente a aquellos problemas de naturaleza algortmica clsica. Idea principal de la programacin imperativa: La computacin se realiza cambiado el estado del programa por medio de sentencias que definen pasos de ejecucin del computador Estado del programa modificable Sentencias de control que definen pasos de ejecucin

La computacin se realiza cambiando el estado del programa por medio de sentencias que definen pasos de ejecucin. Existencia de estado modificable. Ejecucin de sentencias de control del programa. Idea principal de la programacin imperativa: La computacin se realiza cambiado el estado del programa por medio de sentencias que definen pasos de ejecucin del computador Estado del programa modificable Sentencias de control que definen pasos de ejecucin Se fija completamente el orden en el que se deben realizar las operaciones con ayuda de unos patrones de control del flujo de ejecucin

Diferencias
programacin imperativa: se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema. programacin declarativa: las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto ltimo se realizar mediante mecanismos internos de inferencia de informacin a partir de la descripcin realizada.

Los programas declarativos incluyen menos detalles que sus contrapartidas imperativas. Se ha estimado un factor de reduccin de entre 5 y 10 en el nmero de lneas escritas. En los programas imperativos un porcentaje muy alto del cdigo est dedicado a controlar la secuencia de ejecucin del programa: instrucciones if, while, repeat y los puntos y coma que expresan la concatenacin de acciones. En un lenguaje declarativo no existen este tipo de instrucciones. La repetici n de cmputos se expresa mediante la recursin y la eleccin entre varias alternativas es ms abstracta. El punto y coma o su equivalente estn ausentes. Dado que el tiempo de desarrollo y el nmero de errores de un programa son directamente proporcionales al nmero de lneas escritas, independientemente del paradigma utilizado, los lenguajes declarativos ofrecen menores costes de desarrollo y mayor abilidad de los programas.

- Ejemplos de lenguajes de programacin


Declarativos
Los lenguajes lgicos: Prolog (Programacin Lgica) F-Prolog (Programacin Lgica Difusa) Curry (Programacin Lgico-Funcional) Los lenguajes algebraicos: SQL Maude Los lenguajes funcionales: Haskell (Programacin funcional) ML (Programacin funcional) Lisp (Programacin funcional) Haskell (Programacin funcional) ML (Programacin funcional) Lisp (Programacin funcional) Prolog (Programacin Lgica) F-Prolog (Programacin Lgica Difusa) Curry (Programacin Lgico-Funcional) SQL Los lenguajes lgicos, como Prolog. Los lenguajes algebraicos, como Maude y SQL Los lenguajes funcionales, como Haskell Los lenguajes lgicos, como Prolog. Los lenguajes algebraicos, como Maude y SQL Los lenguajes funcionales, como Haskell HTML WSDL (Web Services Description Language) XML Stylesheet Language for Transformation

Imperativos

BASIC C Fortran Pascal Perl PHP Lua Java Python Go C++ C# Cobol Algol60 Pascal

- Tipos de proyectos de ambos

Vous aimerez peut-être aussi