Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación

Documentos relacionados
Lenguajes de Programación

ANEXO XVII DE LA RESOLUCION N

Lenguajes y paradigmas de programación

Principios de diseño de lenguajes

Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27

Introducción a la Programación en C

Lenguajes de Programación Programación funcional

Programación orientada a objetos

Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca

Tema 1: Introducción a las Computadores y Lenguajes de. Programa

Lenguajes de Programación I

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015

Paradigmas de Programación

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

Introducción a la. Programación con

Módulo 1. Introducción a los lenguajes de programación

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

UNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

INDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas

PROGRAMA: COMPUTACION I

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

AREA A LA QUE PERTENECE: POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: 1er. Semestre 2015 AUXILIAR:

INDICE. Prólogo de la Segunda Edición

COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO

PROGRAMACIÓN LÓGICA. Luis Eduardo Martín De La Peña Anni Alejandra Piragauta Urrea

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.)

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas PROGRAMA DEL CURSO. I. Información General

PROGRAMA DEL CURSO AREA A LA QUE PERTENECE: POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: 2do Semestre 2017 AUXILIAR:

GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA

Programación Concurrente y distribuida

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Lenguajes de programación

FUNDAMENTOS DE INFORMÁTICA

Cuerpo de Profesores Técnicos de Formación Profesional

Universidad Nacional Autónoma de México Colegio de Ciencias y Humanidades Área Matemáticas. Programas de Estudio de Cibernética y Computación II

PROGRAMA DETALLADO VIGENCIA TURNO UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA

Temario de estudio para Cibernética y Computación II (1604)

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Metodología y Tecnología de la Programación. I.T. Informática de Gestión

Tipo de Datos Abstractos y Programación Orientada a Objetos

14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes

Tema 03: Programación estructurada

Planificaciones Algoritmos y Programación I. Docente responsable: GUARNA PABLO FRANCISCO. 1 de 6

Evolución del software y su situación actual

Presentación del Curso Presencial. Programación en Java Nivel Básico

PROGRAMACIÓN EN JAVA

Programación Lógica. Programación Lógica

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS

Programación orientada a objetos

Lenguajes de programación Última modificación 2008/10

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Introducción a la programación. Cecilia Manzino

Unidad I: Introducción a las estructuras de datos

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA ELECTRÓNICA SÍLABO PLAN DE ESTUDIOS 2000

Dra. Jessica Andrea Carballido

Programación bajo UML

Capítulo 4. Control de flujo. Continuar

Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.

Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 7

LENGUAJES DE PROGRAMACIÓN

Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 8

Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP

Paralelismo _Arquitectura de Computadoras IS603

Programación Concurrente y Paralela. Unidad 1 Introducción

La experiencia Áncora en el primer cuatrimestre de la ETSETB-UPC. Pau Bofill, Beatriz Otero y los demás profesores del grupo 20 del 1AP05

Universidad Rafael Urdaneta Escuela de Ingeniería de Computación. MSc Jaime Soto. Problemas, algoritmos y programas

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017

INSTITUTO TECNOLÓGICO DE TIJUANA

Lenguajes de programación ANÁLISIS LÓGICO LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP

Compiladores e intérpretes Introducción

ALGORITMO. Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA

Metodología de Desarrollo de Programas

Índice general 7. Presentación 15

Entendiendo expresiones lambda en C# con Mono

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Fundamentos de Programación

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

Conceptos Programa Programa objeto Pseudocódigo Algoritmos y Diagramas de flujo 1) Finitud 2) Definición 3) Entrada

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I

Java para no Programadores

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

Sección de procesamiento: El camino de datos

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1

Modelo Académico de Calidad para la Competitividad MATP-02 13/22

FUNDAMENTOS DE INFORMÁTICA PARA INGENIERÍA INDUSTRIAL

Lenguajes de Programación. Elementos

Transcripción:

3 - Paradigmas de Programación En los inicios los lenguajes de programación imitaron y abstrajeron las operaciones de una computadora, lo cual trajo aparejado que el tipo de computadora para el cual fueron escritos tuvieran un efecto significativo sobre su diseño. En la mayoría de los casos, la computadora fue el modelo Von Neumann : una unidad central de procesamiento única que en forma secuencial ejecuta instrucciones que operan valores almacenados en memoria. Es decir Ejecución secuencial, uso de variables y de asignación que permite que el programa opere sobre dichos valores. Un lenguaje de programación caracterizado por estas características, se conoce como un lenguaje imperativo, puesto que su característica principal es una secuencia de enunciados que representan comandos, es decir órdenes, a estos tipos de lenguajes se los denomina también procedurales. La mayoría de los lenguajes de programación actuales son imperativos.

3 - Paradigmas de Programación Dos paradigmas alternativos para la descripción de procesos computacionales que provienen de las matemáticas son el paradigma funcional, que se basa en la noción abstracta de una función y el paradigma lógico: basado en la lógica simbólica. El paradigma paralelo o de programación concurrente, se basa en la utilización de procesos que son atendidos en forma paralela por el procesador, requiere de mecanismos de sincronización. El paradigma orientado a objetos es uno de los mas utilizados en la actualidad, permite a los programadores escribir código reutilizable y ampliable, que opera imitando al mundo real, permitiendo por lo tanto que los programadores utilicen su intuición natural con respecto al mundo para comprender el comportamiento de un programa y construir código apropiado.

3.1 - Postulados de los Paradigmas de Programación 3.1.1 - Postulados del Paradigma Procedural o Imperativo ESTRUCTURAS DE DATOS + ALGORITMOS = PROGRAMAS 1) 1- m: Una instrucción por muchas 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 para esto procedimientos y funciones. 5) ESTRUCTURADO: Utiliza estructuras de transferencia definidas ( Do While, If Then Else, Case, Call's ) 6) ESTATICO: Compilación, Ligado y Cargado A Priori

3.1.1 - Postulados del Paradigma Procedural o Imperativo ESTRUCTURAS DE DATOS + ALGORITMOS = PROGRAMAS 7) TIPOS DE DATOS DIVERSOS (Entero, Real, ALfanumérico(ASCII), Enumerables, Matrices, Registros) 8) NO MODIFICACION DEL CODIGO EN EJECUCIÓN: El programa no modifica su código ( instrucciones ) durante su ejecución 9) PUNTEROS LIMITADOS En la medida de lo posible el programador deberá usar punteros cuidadosamente 10) NO SE ACONSEJA EL USO DEL Go To (Ejemplos : FORTRAN,ALGOL,BASIC,PASCAL,C)

3.1.2 - Postulados del Paradigma Funcional FORMAS FUNCIONALES + EXPRESION DE EXPRESIONES = APLICACIONES 1) EXPRESIONES: Una expresión es el resultado del valor de sus subexpresiones y los operadores correspondientes. 2) RECURSIVIDAD: Uso extensivo de recursividad 3) FUNCIONES PRIMITIVAS: El lenguaje cuenta con un conjunto poderoso de funciones primitivas 4) SINTAXIS SENCILLA: Uso de pocas reglas formales para su sintaxis. 5) EQUIVALENCIA ENTRE FUNCIONES Y DATOS: Las funciones y los datos tienen características similiares (valor, argumento de rutinas, estructura )

3.1.2 - Postulados del Paradigma Funcional 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 8) ESTRUCTURA DE PROGRAMACION LIMITADA: En general se requiere de pocas estructuras de programación secuencial, condicional y cíclica. 9) MEMORIA DINAMICA: El residente maneja dinámicamente la memoria sin intervención del programador. (Ejemplos : LISP, SNOBOL, ML, SCHEME

3.1.3 - Postulados del Paradigma Lógico 1) Se basa en la descripción de enunciados lógicos junto con algoritmos especificados para implementar las reglas de inferencia. 2) Están limitados o restringidos a un subconjunto de específico del cálculo de predicados, llamados cláusulas de Horn. 3) Utiliza un proceso de unificación que hace la instanciación de las variables o se les asigna memoria y valores asignados de manera que coincidan los patrones durante la resolución. Ejemplo: PROLOG

3.1.4 - Postulados del Paradigma de la Programación Paralela PROGRAMA = INSTRUCCCION INDIVIDUAL + MULTIPLES DATOS 1) SIMD: Una instrucción puede ser ejecutada al mismo tiempo con varios datos, matricialmente ( C = A + B <==> cij = aij + bij ) 2) SISD: Una instrucción puede ser ejecutada en forma escalar tiempo con varios datos. ( C = A + B <==> c= a + b ) 3) PARALELISMO: Las instrucciones ( son procesos ) pueden ser ejecutados en forma concurrente o secuencial 4) NO DETERMINISMO: Por la naturaleza de los procesos paralelos puede generarse una ejecución no determinística.

3.1.4 - Postulados del Paradigma de la Programación Paralela 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 pararelos deben coordinar sus accesos a los mismos recursos ( memoria, disco, I/0) 7) ESPERA AND/OR: Un bloque paralelo puede terminar cuando todos los subprocesos terminen o bien cuando uno de ellos lo haga. (Ejemplos : OCCAM, PASCAL CONCURRENTE.

3.1.5- Postulados del Paradigma Orientado 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 implementarse en forma distinta

7) MENSAJES: Los objetos se comunican entre si, por medio de mensajes, los cuales son interpretados por cada objeto a su manera. 8) ENCAPSULAMIENTO: En la medida de los posible las variables y métodos de un objeto son ajenos y desconocidos para los demás. 9) PERSISTENCIA: Los objetos residen en memoria, requiriéndose adicionalmente un almacenamiento en I/O. 10) METODOS: La programación de los métodos asociados a los objetos, se efectúa usando postulados procedurales 11) AMBIENTE DE PROGRAMACIÓN: Operan bajo un residente en ejecución de corte interactivo, interpretativo y con ligado retrasado 12) INTERFAZ DE MULTIMEDIO: Es común que operen en un ambiente gráfico y con uso de medios múltiples de I/O. Ejemplos : SIMULA, SMALLTALK, HYPERTALK,C++,EIFFEL )