Descarga la aplicación para disfrutar aún más
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
Compartir