2. a) Los que soportan
técnicas de
programación de
bajo nivel
PARADIGMAS DE b) Los que soportan
PROGRAMACIÓN métodos de diseño
de algoritmos
a) Solución procedimental
u operacional
c) Los que soportan b) Solución demostrativa
soluciones de
programación de
alto nivel
c) Solución declarativa
3. Un paradigma de programación es un
modelo básico de diseño y desarrollo de
programas, que permite producir programas
con unas directrices específicas, tales como:
estructura modular, fuerte cohesión, alta
rentabilidad, etc.
4. Floyd describió tres categorías :
a) Los que soportan técnicas de
programación de bajo nivel (ej.:
copia de ficheros frente
estructuras de datos compartidos)
b) Los que soportan métodos de
diseño de algoritmos (ej.: divide y
vencerás, programación
dinámica, etc.)
c) Los que soportan soluciones de
programación de alto nivel, como
los descritos en el punto anterior
5. Floyd también señala lo diferente que resultan
los lenguajes de programación que soportan
cada una de estas categorías de
paradigmas.
Se agrupan en tres categorías de acuerdo con
la solución que aportan para resolver el
problema
6. • Describe etapa a etapa el modo de construir la solución. Es
decir seña
Solución
procedimental • la forma de obtener la solución.
u operacional.
• . Es una variante de la procedimental. Especifica la solución
describiendo ejemplos y permitiendo que el sistema
generalice la solución de estos ejemplos para otros casos.
Solución
demostrativa.
• Señala las características que debe tener la solución, sin
describir cómo procesarla. Es decir señala qué se desea
Solución obtener pero no cómo obtenerlo.
declarativa.
7. Cuando se programa bajo un paradigma demostrativo (también
llamada programación por ejemplos), el programador no especifica
procedimentalmente cómo construir una solución. En su lugar,
presentan soluciones de problemas similares y permite al sistema
que generalice una solución procedimental a partir de estas
demostraciones. Los esquemas individuales para generalizar tales
soluciones van desde simular una secuencia procedimental o inferir
intenciones.
Otra solución es la programación asistida: el sistema observa acciones
que el programador ejecuta, y si son similares a acciones pasadas,
intentará inferir cuál es la próxima acción que hará el programador.
Las dos principales objeciones al sistema de inferencia son:
a) Si no se comprueban exhaustivamente pueden producir programas
erróneos que trabajan correctamente con los ejemplos de prueba,
pero que fallen posteriormente en otros casos
b) La capacidad de inferencia es tan limitada, que el usuario debe de
guiar el proceso en la mayoría de los casos.
.
8. En este tipo, un programa se construye señalando
hechos, reglas, restricciones, ecuaciones,
transformaciones y otras propiedades derivadas del
conjunto de valores que configuran la solución. A
partir de esta información el sistema debe
proporcionar un esquema que incluya el orden de
evaluación que compute una solución. Aquí no existe
la descripción de las diferentes etapas a seguir para
alcanzar una solución, como en el caso anterior.
Estos paradigmas permiten el uso de variables para
almacenar valores intermedios, pero no para
actualizar estados de información.
9. a) el imperativo
•paradigmas con
efecto de lado:
b) el orientado
a objetos
PARADIGMAS PROCEDIMENTALES
U OPERACIONALES.
• paradigmas sin
efecto de lado
10. La característica fundamental de estos paradigmas
es la secuencia computacional realizada etapa a
etapa para resolver el problema. Su mayor dificultad
reside en determinar si el valor computado es una
solución correcta del problema, por lo que se han
desarrollado multitud de técnicas de depuración y
verificación para probar la corrección de los
problemas desarrollados basándose en este tipo de
paradigmas.
Pueden ser de dos tipos básicos: Los que actúan
modificando repetidamente la representación de sus
datos (efecto de lado); y los que actúan creando
nuevos datos continuamente (sin efecto de lado).
11. utilizan un modelo en el que las variables
están estrechamente relacionadas con
direcciones de la memoria del ordenador.
Cuando se ejecuta el programa, el
contenido de estas direcciones se actualiza
repetidamente, pues las variables reciben
múltiples asignaciones, y al finalizar el trabajo,
los valores finales de las variables representan
el resultado.
12. no incluyen a los que tradicionalmente son
denominados paradigmas funcionales. Sin
embargo es importante distinguir la solución
funcional procedimental de la solución funcional
declarativa.
Los paradigmas procedimentales definen la
secuencia explícitamente, pero esta secuencia
se puede procesar en serie o en paralelo. En este
segundo caso el procesamiento paralelo puede
ser asíncrono (cooperación de procesos
paralelos) o síncrono (procesos simples aplicados
simultáneamente a muchos objetos).
13. Este paradigma se caracteriza por un modelo
abstracto de ordenador que consiste en un gran
almacenamiento de memoria.
El ordenador almacena una representación
codificada de un cálculo y ejecuta una secuencia
de comandos que modifican el contenido de ese
almacenamiento. Este paradigma viene bien
representado por la arquitectura Von Newman (1903-
1957), ya que utiliza este modelo de máquina para
conceptualizar las soluciones: "Existe un programa en
memoria que se va ejecutando secuencialmente y
que toma unos datos de la memoria, efectúa unos
cálculos y actualiza la memoria".
14. a) Concepto de celda de memoria ("variable") para almacenar valores.
El componente principal de la arquitectura es la memoria, compuesto
por un gran número de celdas donde se almacenan los datos. Las
celdas tienen nombre (concepto de variable) que las referencian, y
sobre los que se producen efectos de lado y definiciones de alias.
b) Operaciones de asignación. Estrechamente ligado a la arquitectura
de la memoria, se encuentra la idea de que cada valor calculado debe
ser "almacenado", es decir asignado a una celda. Esta es la razón de la
importancia de la sentencia de asignación en el paradigma imperativo.
Las nociones de celda de memoria y asignación en bajo nivel, se
tienden a todos los lenguajes de programación y fuerzan en los
programadores un estilo de pensamiento basado en la arquitectura Von
Neumann.
c) Repetición. Un programa imperativo, normalmente realiza su tarea
ejecutando repetidamente una secuencia de pasos elementales, ya
que en este modelo computacional la única forma de ejecutar algo
complejo es repitiendo una secuencia de instrucciones.
15. El paradigma funcional está basado en el modelo matemático
de composición funcional. En este modelo, el resultado de un
cálculo es la entrada del siguiente, y así sucesivamente hasta
que una composición produce el valor deseado.
No existe el concepto de celda de memoria que es asignada o
modificada. Más bien, existen valores intermedios que son el
resultado de cálculos anteriores y las entradas a cálculos
subsiguientes. Tampoco existen sentencias imperativas y todas
las funciones tienen transparencia referencial.
La programación funcional incorpora el concepto de función
como objeto de primera clase, lo que significa que las funciones
se pueden tratar como datos (pueden pasar como parámetros,
calculadas y devueltas como valores normales, y mezcladas en
el cálculo con otras formas de datos).
16.
La Programación Heurística implica una forma de modelar
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 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.