problemas, algoritmos y programas: modelar: simular o programar su solución en un computador....

22
Paradigma de Programación

Upload: hilario-fleites

Post on 22-Jan-2016

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Paradigma de Programación

Page 2: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

EntradaProceso

Computacional

Salida

Introducción a la Programación:

(Lenguaje de computación)

Page 3: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Problemas, algoritmos y programas: Introducción a los Problemas:

ModelarAlgoritmos Refinación

del algoritmo

Lenguaje de

Programación

Programa

Sintaxis Semántica

Page 4: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Modelar: Simular o programar su solución en un computador.

Algoritmos: Es un conjunto finito, y no ambiguo de etapas expresadas en un cierto orden que, para unas condiciones iniciales, permite resolver un problema en un tiempo finito.

Refinamiento del algoritmo o refinamiento progresivo: El objetivo final es describir' una solución algorítmica al problema inicialmente planteado mediante el uso de las construcciones formales de un lenguaje de programación.

Page 5: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Lenguajes de programación: Permiten expresar nuestros algoritmos en una notación formal que pueda ser reconocida y ejecutada por el computador. Dicha especificación se llama programa.

Sintaxis: Símbolos y palabras reservadas - Reglas gramaticales.

Semántica: Significado a cada tipo de construcción.

Page 6: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Semántica Operacional: Define el significado de un lenguaje de programación en términos de los cambios de estados que producen las instrucciones primitivas del lenguaje; es decir términos del efecto producido por la ejecución paso a paso del mismo. (Ej.: Simplesem) No describe con igual claridad todo tipo de lenguajes de programación.

Semántica:

Page 7: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Semántica Declarativa: Define unas aplicaciones (funciones) de valoración semántica que asignan a cada construcción sintáctica un objeto matemático que modela su significado - Indica qué función matemática se obtiene a la salida ante unas entradas del programa.

Ej.: sintaxis que describa números enteros no negativos Número::={Dígito} Dígito: := cero │uno│ ... │nueve (única propiedad relevante es el valor numérico asociado)

Semántica declarativa en dicho lenguaje Valor número: número N

Valor dígito: dígito N

Semántica:

Page 8: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Semántica Axiomática: Asocia a cada construcción del lenguaje un axioma lógico que relaciona el estado del cómputo (valores que tienen las variables utilizadas) antes y después de ejecutar esta construcción.

Semántica:

Page 9: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

1° Lenguaje máquina (muy dificultoso, lento, y muy específico para cada problema)

Relación: costo-beneficio o productividad ---> satisfactoria

Se centraban en la utilización económica de un recurso caro = el tiempo de funcionamiento del computador.PROGRAMACIÓN: abandona ámbito

estructura de las máquinas para ser definidos en términos de formalismos abstractos y más fácilmente tratables.

Computación – Programación

Page 10: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

PARADIGMAS: Conceptualizaciones genéricas que reúnen a distintos lenguajes y técnicas empleadas para escribir programas

ANTECEDENTE: PARADIGMA IMPERATIVO: Programa = Instrucción dada a cierto autómata con el objeto de que éste aplique a la memoria la alteración deseada.

TIEMPO DE MÁQUINA Vs. TIEMPO HUMANO (hoy más costoso)

Computación – Programación

Page 11: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

MO

DU

LA

RIZ

AC

IÓ NProgramación EstructuradaOTécnicas Estructuradas

PR

OB

LE

MA

S Sub Problemas• Sub

Problemas• Sub

Problemas• Sub

Problemas• (Hasta que

sean tratable)

Técnicas de Modularización

Page 12: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Solución De Problemas

Herramientas para lograrlo

Lenguajes Evolución de

los mismos

Desarrollo de Lenguajes de Programación

Mejora

Page 13: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Se inspira en el modelo de computador de von Neumann .

Concepto de asignación como programa elemental

Estructuras de control para combinar programas simples en compuestos .

La semántica de la asignación es la transformación del estado de una variable y crean alteración de estados de memoria .

Paradigma Imperativo

Page 14: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

DEFICIENCIAS: La presencia de la asignación hace que el valor

denotado por una variable es dependiente del lugar del programa en que ocurre.

Dificultad semántica alteración de estado de una memoria que es asignada a los programas.

Intentos de corrección: Eliminación de formas de control ej.: "GO TO" construcciones sintácticas de semántica poco claras.

Paradigma Imperativo

Page 15: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

NECESIDADES: Un programa complejo debe ser descompuesto para que:

El significado de cada parte sea establecido independientemente

El significado del conjunto pueda deducirse de los significados de sus partes:

Ej. :

Paradigma Imperativo

Cada sub-expresión es un valor y de esta el total sin conocer la

sub-expresión como está compuesta

Page 16: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Propiedad de "Trasparencia Referencial" Toda ocurrencia de una sub-expresión en otra más compleja y denote siempre el mismo significado.

Ej. : Anterior X en sus dos ocurrencias tendría el mismo valor

Paradigma Imperativo

Trasparencia referencial

Técnicas de modularizaci

ón

esencial

Page 17: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

En parad. Imperativos

Subprogramas Modularizar

Colaboran entre si

Variables globales

transparencia

referencial COMERCIO

Tiende a

si

Tienen

eliminan

Se mantienen por

Page 18: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

PROBLEMA SOLUCIÓN

Los Nuevos Paradigmas

y

(Viejo para lógicos y matemáticos)

Page 19: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Problema

Entre conjunto

que deben

ser definidas

Modularización

Paradigma Funcional

funcionesMuy

adecuada

Se basa en el concepto matemático de función.

Una función es una regla de correspondencia que asocia a cada elemento de un conjunto origen un elemento del conjunto destino.

Page 20: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Problema Ciertas Relaciones

Conjuntos de Objetos

Otras deben ser calculadas

Reglas de deducción

Lógica Formal

Paradigma Lógico

define sobre

y

mediante

usa

Page 21: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Y ambos paradigmas admiten el cálculo de teorías formales y el sustento de la programación es las matemáticas y la lógica.

Dominio RangoF(x)

Aplicación de la función

Page 22: Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas

Construye estructuras de software basada en objetos (datos) que cada sistema o subsistema manipula, más que en las funciones que debe cumplir .

Paradigma Orientado a Objetos