Paradigma de Programación - paradigmas
Download
Report
Transcript Paradigma de Programación - paradigmas
Problemas, algoritmos y programas:
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.
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.
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 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 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.
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.
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)
O
Técnicas
Estructuradas
PROBLEMAS
MODULARIZACIÓN
Programación
Estructurada
Sub
Problemas
•
•
•
•
Sub Problemas
Sub Problemas
Sub Problemas
(Hasta que sean
tratable)
Solución De
Problemas
Herramientas
para lograrlo
Evolución de los
mismos
Lenguajes
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 .
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.
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:
Cada sub-expresión es un valor y de
esta el total sin conocer la
sub-expresión como está compuesta
Ej. :
(2 + 𝑋) ∗ (𝑌 + 𝑍 + 𝑋) / (3 + (3 ∗ 𝑌))
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
Trasparencia
referencial
esencial
Técnicas de
modularización
En parad.
Imperativos
Subprogramas
Tiende a
Modularizar
si
Colaboran
entre si
Tienen
Variables
globales
eliminan
COMERCIO
Se mantienen
por
transparencia
referencial
PROBLEMA
y
SOLUCIÓN
(Viejo para lógicos y
matemáticos)
funciones
Problema
Entre
conjunto
que deben
ser
definidas
Muy
adecuada
Modulariza
ción
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.
define
Problema
Ciertas
Relaciones
sobre
Conjuntos
de Objetos
y
Otras deben
ser
calculadas
mediante
Reglas de
deducción
usa
Lógica
Formal
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
F(x)
Aplicación de la
función
Rango
Construye estructuras de software basada en objetos
(datos) que cada sistema o subsistema manipula, más
que en las funciones que debe cumplir .