Logo Studenta

Tema 2 Clase 2 Paradigmas de Programacion

¡Estudia con miles de materiales!

Vista previa del material en texto

CLASE 2
MODELO DE DESARROLLO DE PROGRAMAS Y 
PROGRAMACION CONCURRENTE – 2.019
FAC.DE INGENIERIA - UNJu
Paradigmas de Programación
PARADIGMAS DE PROGRAMACIÓN
Def. 1: Representa un enfoque particular o filosofía para diseñar soluciones. Difieren unos de 
otros, en los conceptos y la forma de abstraer los elementos involucrados en un problema, así 
como en los pasos q integran la solución del problema.
Def. 2: Es 1 propuesta tecnológica adoptada por 1 comunidad de programadores y 
desarrolladores q trata de resolver 1 o varios problemas claramente delimitados; su resolución 
debe suponer un avance significativo en al menos un parámetro que afecte a la ing. de SW.
En 1principio los leng.de progr.imitaron y abstrajeron las operaciones de 1comput., x lo cual 
el tipo de computadora p/el q fueron escritos tuvieron un efecto significativo sobre su diseño.
Ejecución Secuencial
Uso de variables y de 
asignación
CLASIFICACION DE PARADIGMAS DE PROGRAMACIÓN
IMPERAT. O 
PROCEDURAL: 
Incluye 
leng.de
program.cuya
característica 
principal es1 
secuencia de 
enunciados q 
representan 
comandos u 
órdenes
FUNCIONAL: 
esta basada 
en la definic. 
de 
predicados y 
es de corte 
más 
matemático
LOGICO: esta 
basado en la 
lógica simbólica, 
es decir describir 
el problema 
declarando 
prop.y reglas q 
deben cumplirse, 
en lugar de 
instrucciones
PARALELO O 
CONCURR: se 
basa en 
procesos que 
son atendidos 
en forma 
paralela x el 
procesador, 
requiere de 
mecanismos 
de sincronizac
ORIENT.A 
OBJETOS:
permite 
escribir 
código 
reutilizable y 
ampliable, q 
opera 
imitando al 
mundo real
• DINAMICA
• DIRIGIDA x 
EVENTOS
• CON 
RESTRICCIONES
• MULTIPARADIG
MA
• REACTIVA
• ESPECIFICO DEL 
DOMINIO O 
DSL
POSTULADOS DEL PARADIGMA PROCEDURAL O IMPERATIVO
ESTRUCTURAS DE DATOS + ALGORITMOS = PROGRAMAS
1) 1- m: 1 instrucción equivale a muchas instrucc.de máquina (c:=a+b ==> Load, Add, Store). 
2) SECUENCIAL: Las instrucciones son ejecutados en forma secuencial.
3) ASIGNACIÓN: Fundamenta su ejecución en asignaciones y formulas ( A: = A + B ).
4) MODULAR: La programación se lleva a cabo modularmente, usando procedim. y fciones. 
5) ESTRUCTURADO: Usa estruct.de transferencias definidas (Do While, If Then Else, Case, Call's ).
6) ESTATICO: Compilación, Ligado y Cargado a Priori.
7) TIPOS DE DATOS DIVERSOS (Entero,Real,Alfanumérico(ASCII),Enumerables,Matrices,Registros). 
8) NO SE MODIFICA EL CODIGO EN EJECUCIÓN: El programa no modifica su código 
(instrucciones ) durante su ejecución.
9) PUNTEROS LIMITADOS: En lo posible el programador debe usar punteros cuidadosamente.
10)NO SE ACONSEJA EL USO DEL Go To
Ejemplos : FORTRAN,ALGOL,BASIC,PASCAL,C
POSTULADOS DEL PARADIGMA FUNCIONAL
FORMAS FUNCIONALES + EXPRESION DE EXPRESIONES = APLICACIONES
1) EXPRESIONES: 1 Expresión es el resultado del valor de sus sub-expresiones y los 
operadores correspondientes.
2) RECURSIVIDAD: Uso extensivo de recursividad.
3) FUNCIONES PRIMITIVAS: El leng.cuenta con1conj.poderoso de fciones.primitivas.
4) SINTAXIS SENCILLA: Uso de pocas reglas formales p/su sintaxis.
5) EQUIVALENCIA ENTRE FCIONES Y DATOS: tienen características similares (valor, 
argumento de rutinas, estructuras).
6) AMBIENTE DE PROGRAMACIÓN: Operan bajo un residente en ejecución de corte 
interactivo, interpretativo y con ligado retrasado. 
7) MODIFICACION DEL CODIGO EN EJECUCIÓN: Por su naturaleza, permite la 
modificación de datos y expresiones durante la ejecución.
POSTULADOS DEL PARADIGMA FUNCIONAL (CONT)
7) MEMORIA DINAMICA: El residente maneja dinámicamente la memoria sin 
intervención del programador
Ejemplos : LISP, SNOBOL, ML, SCHEME
Ej. De 1 progr.en LISP
POSTULADOS DEL PARADIGMA LOGICO
1) Se basa en la descripción de enunciados lógicos junto con algoritmos especificados
p/implementar las Reglas de inferencia.
2) Están limitados a un subconj.específico del cálculo de predicados “cláusulas de Horn”
3) Utiliza 1proceso de unificación q hace la instanciación de las variables, y se les asigne 
memoria y valores de manera q coincidan los patrones durante la resolución
Ejemplo: PROLOG 
POSTULADOS DEL PARADIGMA PARALELA
PROGRAMA = INSTRUCCCION INDIVIDUAL + MULTIPLES DATOS
1) SISD (Single Instruction Single Data): 1 instrucción puede ser ejecutada en forma escalar 
tiempo con varios datos (C = A + B <==> c= a + b) 
2) SIMD (Single Instruction Multiple Data): 1 instrucción puede ser ejecutada 
al mismo tiempo con varios datos, matricialmente (C = A + B <==> cij = aij + bij) 
3) PARALELISMO: Las instrucciones o procesos pueden ser ejecutados en forma concurrente o 
secuencial
POSTULADOS DEL PARADIGMA PARALELA (CONT)
4) NO DETERMINISMO: x la naturaleza de procesos paralelos puede generarse 1 ejecución no 
determinística.
5) PROGRAMACIÓN: La programación de los procedimientos y funciones dentro de un bloque, 
se desarrolla usando postulados procedurales y estructuras de datos adecuadas.
6) SINCRONIZACION: Procesos paralelos deben coordinar sus accesos a los mismos recursos 
(mem, disco,..).
7) ESPERA AND/OR: Un bloque paralelo puede terminar cuando todos los subprocesos 
terminen o bien cuando 1de ellos lo haga
Ejemplos : OCCAM, PASCAL CONCURRENTE
POSTULADOS DEL PARAD.ORIENT. A OBJETOS
OBJETOS = RECORDS (DATOS) + METODOS (OPERACIONES)
1) ORIENTADO A OBJETOS: Los sistemas se modularizan en función de los datos
2) OBJETOS COMO DATOS: Los objetos son instrumentados como un tipo de dato complejo.
3) OBJETOS DINAMICOS: Los Objetos son copias de clases dinámicas
4) CLASES: Todo tipo de dato complejo es un módulo, generando una clase específica
5) HERENCIA: Toda clase puede ser definida en términos de otra(s), heredando sus definiciones
6) POLIMORFISMO: Los elementos de un programa pueden llamar a diferentes clases con el 
mismo nombre. Una clase puede tener varias formas, y las funciones pueden implementarse 
en forma distinta
Ejemplos : ADA, C++, JAVA

Continuar navegando