ensayo no. 1 - tipos de programación
DESCRIPTION
Tipos de programaiconTRANSCRIPT
![Page 1: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/1.jpg)
Emmanuel De Oleo Saladin
Mat. 2009-1870
“Tipos de Programación”
Profesor: Ing. Eddy Alcántara
18/Sept/2015
![Page 2: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/2.jpg)
Introducción
La programación está hecha para resolver diferentes tipos de problemas, por lo que
existirán tantos diferentes tipos de métodos como distintos problemas a resolver puedan
existir. El problema de esto consiste en que para cada método hay un código que lo
define, y como habíamos dicho, son tan variados como problemas hay. Eso crearía un
problema tanto para el programador al tener que crear un método para cada problema,
como para terceros que leen el código, al leer un código con el que no están
familiarizados. Para evitar esto, se han creado propuestas adoptadas por la comunidad
de programadores de modelos de código que resuelven delimitado problema. A estas
propuestas se les llama paradigma de programación y veremos algunas de ellas
presentadas a continuación.
![Page 3: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/3.jpg)
Programación algorítmica
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe
seguir, para dar solución a un problema específico.
¿Tipos De Algoritmos?
Existen dos tipos y son llamados así por su naturaleza:
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir
los pasos del proceso.
Lenguajes Algorítmicos
Un Lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir
de manera explícita un proceso.
Tipos de Lenguajes Algorítmicos
Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo
(diagrama de flujo).
No Gráficos: Representa en forma descriptiva las operaciones que debe realizar
un algoritmo (pseudocódigo).
![Page 4: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/4.jpg)
INICIO
Edad: Entero
ESCRIBA “ cual es tu edad?”
Lea Edad
SI Edad >=18 entonces
ESCRIBA “ Eres mayor de Edad”
FINSI
ESCRIBA “ fin del algoritmo”
FIN
Componentes
Definición del problema
Esta fase está dada por el enunciado del problema, el cual requiere una definición
clara y precisa. Es importante que se conozca lo que se desea que realice la
computadora; mientras esto no se conozca del todo no tiene mucho caso
continuar con la siguiente etapa.
Análisis del problema
Una vez que se ha comprendido lo que se desea de la computadora, es necesario
definir:
Los datos de entrada.
Cuál es la información que se desea producir (salida)
Los métodos y fórmulas que se necesitan para procesar los datos.
Una recomendación muy práctica es el de colocarse en el lugar de la computadora
y analizar qué es lo que se necesita que se ordene y en qué secuencia para
producir los resultados esperados.
![Page 5: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/5.jpg)
Diseño del algoritmo
Las características de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayoría de las variantes que se
puedan presentar en la definición del problema.
Debe ser finito en tamaño y tiempo de ejecución.
Depuración
Documentación
![Page 6: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/6.jpg)
Programación Declarativa
Es un paradigma de programación basado en la lógica en el que se estudian de forma
simple muchos aspectos avanzados de los lenguajes de programación modernos.
Características
La Programación Declarativa, en contraposición a la programación imperativa es un
paradigma de programación que está basado en el desarrollo de programas
especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones,
restricciones, ecuaciones o transformaciones que describen el problema y detallan su
solución.
La solución es obtenida mediante mecanismos internos de control, sin especificar
exactamente cómo encontrarla (tan sólo se le indica a la computadora que es lo que se
desea obtener o que es lo que se está buscando). No existen asignaciones destructivas,
y las variables son utilizadas con transparencia referencial
Aunque en la Programación Declarativa cabe más de un paradigma de programación, se
ha optado por centrarla en el estudio de la denominada Programación Lógica, el cual
está basado en el cálculo de proposiciones y sus relaciones lógicas.
La programación declarativa es un estilo de programación en el que el programador
especifica qué debe computarse más bien que cómo deben realizarse los cómputos.
"programa = lógica + control" (Kowalski)
"algoritmos + estructuras de datos = programas" (Wirth)
El componente lógico determina el significado del programa mientras que el componente
de control solamente afecta a su eficiencia.
La tarea de programar consiste en centrar la atención en la lógica dejando de lado el
control, que se asume automático, al sistema.
![Page 7: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/7.jpg)
La característica fundamental de la programación declarativa es el uso de la lógica como
lenguaje de programación:
Un programa es una teoría formal en una cierta lógica, esto es, un conjunto de
fórmulas lógicas que resultan ser la especificación del problema que se pretende
resolver, y
La computación se entiende como una forma de inferencia o deducción en dicha lógica.
Los principales requisitos que debe cumplir la lógica empleada son:
Disponer de un lenguaje que sea suficientemente expresivo.
Disponer de una semántica operacional (un mecanismo de cómputo que permita
ejecutar los programas).
Disponer de una semántica declarativa que permita dar un significado a los
programas de forma independiente a su posible ejecución.
Ventajas
Se ha dicho que los lenguajes declarativos tienen la ventaja de ser razonados
matemáticamente, lo que permite el uso de mecanismos matemáticos para optimizar el
rendimiento de los programas.
Elegancia, claridad, sencillez, potencia y concisión.
Semánticas claras, simples y matemáticamente bien fundadas.
Cercanos al nivel de abstracción de las especificaciones formales/informales de
los problemas a resolver.
Referencialmente transparentes: Comportamiento matemático adecuado que
permite razonar sobre los programas.
Soportan técnicas muy avanzadas de desarrollo, mantenimiento y validación de
programas.
Altas dosis de paralelismo implícito.
Aplicaciones variadas y de gran interés.
Son fiables, elegantes y expresivos.
![Page 8: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/8.jpg)
Ejemplos
SQL
SELECT matricula, marca, modelo, color, numero_kilometros, num_plazas
FROM Coches
WHERE matricula = 'MF-234-ZD'
OR matricula = 'FK-938-ZL' ;
![Page 9: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/9.jpg)
Diferencias entre la programación algorítmica y la declarativa
Tanto la programación declarativa como la algorítmica presentan ventajas que pueden
ser muy útiles, dependiendo del área de aplicación
1. Diseño de lenguaje y escritura de programas
- La sintaxis de los lenguajes declarativos es más sencilla que la de los algorítmicos.
- Los lenguajes algorítmicos proporcionan facilidades para la compilación separada, a
diferencia de los declarativos.
- Los algorítmicos tienen gran variedad de mecanismos de reutilización de software,
mientras que los declarativos usan el método rudimentario de 'preámbulo de funciones'.
- Es mucho más fácil de analizar un lenguaje declarativo que uno algorítmico, pues este
requiere el uso de algún tipo de pseudocódigo.
- Los lenguajes declarativos poseen pocos entornos de desarrollo o plataformas,
mientras que la algorítmica cuenta con potentes entornos, muchos de ellos visuales.
2. Verificación de programas
- Los programas del lenguaje declarativo son fáciles de verificar, mientras que en los
algorítmicos esto se complica debido a sus definiciones semánticas complejas.
- De la misma forma, el lenguaje declarativo está más adaptado para permitir a los
programas terminar bajo cualquier circunstancia concebible.
- Los lenguajes declarativos poseen buena legibilidad pero no ofrecen buenas
herramientas de depuración. Los algorítmicos tienen herramientas de depuración muy
potentes.
![Page 10: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/10.jpg)
3. Coste y eficiencia
- Los lenguajes declarativos suelen ser menos eficientes que otros más convencionales
debido a la dificultad de implementar en máquinas de arquitecturas comunes las
operaciones de unificación y emparejamiento.
- Un lenguaje declarativo requiere menor cantidad de código que un lenguaje algorítmico.
Programación heurística
Es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente
encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda ser
arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque
no existe tampoco prueba de que siempre será así. Las heurísticas generalmente son
usadas cuando no existe una solución óptima bajo las restricciones dadas (tiempo,
espacio, etc.), o cuando no existe del todo.
La Programación Heurística implica una forma de modelizar el problema en lo que
respecta a la representación de su estructura, estrategias de búsqueda y métodos de
resolución, que configuran el Paradigma Heurístico.
Este tipo de programación se aplica con mayor intensidad en el campo de la Inteligencia
Artificial (IA), y en especial, en el de la Ingeniería del Conocimiento, dado que el ser
humano opera la mayor parte de las veces utilizando heurísticas, un hecho cierto que
una heurística es la conclusión del razonamiento humano en un dominio específico, por
lo que es normal que este tipo de programación que encuadrado en el área de la I.A., ya
que implementa el conocimiento humano, dado por la experiencia, utilizando reglas de
buena lógica.
Como se ha señalado inicialmente, un paradigma de programación es un modelo básico
de diseño e implementación de programas. Un modelo que permite producir programas
de acuerdo con una metodología específica.
![Page 11: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/11.jpg)
Ejemplos
Tratamiento fundamentalmente simbólico, dado que la mayor parte de los
problemas que precisan tratamiento heurístico tienen estructura simbólica.
Unidades funcionales autónomas que posibiliten modelar una heurística y su
mecanismo de ejecución, definiendo módulos independientes.
Estructuras de datos que permitan describir estados de problemas y relaciones
entre estados.
Estructuras procedimentales de control y de proceso (o de definición) que
permitan la ejecución coherente del modelo heurístico, y posibiliten la adquisición
y utilización del conocimiento adquirido en el proceso de resolución del problema.
![Page 12: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/12.jpg)
Conclusión
Cabe a destacar que no se mencionaron todos los paradigmas, solo algunos de estos.
Con estos elementos se logra formar una abstracción de los datos y del código en la
memoria principal. Este modelo ha tenido gran éxito entre los programadores por su
sencillez y cercanía a la arquitectura de las computadoras convencionales.
![Page 13: Ensayo No. 1 - Tipos de Programación](https://reader035.vdocuments.co/reader035/viewer/2022081806/563db9b2550346aa9a9f122c/html5/thumbnails/13.jpg)
Bibliografía
1-Julián, P., Alpuente, M. (2007) Programación Lógica. Teoría y Práctica. Madrid:
Pearson Educación.
2- http://www.pnlnet.com/toma-de-decisiones-y-programacion-heuristica-primera-parte/
3- https://es.wikipedia.org/wiki/Heur%C3%ADstica_%28inform%C3%A1tica%29
4- http://www.desarrolloweb.com/manuales/67/