ensayo no. 1 - tipos de programación

13
Emmanuel De Oleo Saladin Mat. 2009-1870 Tipos de ProgramaciónProfesor: Ing. Eddy Alcántara 18/Sept/2015

Upload: doleo

Post on 24-Jan-2016

220 views

Category:

Documents


0 download

DESCRIPTION

Tipos de programaicon

TRANSCRIPT

Page 1: Ensayo No. 1 - Tipos de Programación

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

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

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

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

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

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

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

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

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

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

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

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

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/