Informática II. Ingeniería Electrónica (2011)

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

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

INSTITUTO TECNOLÓGICO DE TIJUANA

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

FUNCIONAMIENTO DEL ORDENADOR

Tema 03: Programación estructurada

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR

Introducción a la arquitectura de computadores

Lenguajes y paradigmas de programación

1. Computadores y programación

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Introducción a la programación: Contenido. Introducción

Lenguajes de Programación Programación funcional

Elementos constituyentes de la ejecución de un programa

Introducción a la Programación en C

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

PROGRAMA: COMPUTACION I

1.1 Introducción del Curso. 1.2 Nociones Básicas

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Estructura del Computador

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Unidad I: Organización del Computador. Ing. Marglorie Colina

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Sección de procesamiento: El camino de datos

Evolución del software y su situación actual

CICLOS DEL PROCESADOR

Sistemas con Microprocesadores I

Principios de diseño de lenguajes

B) Arquitectura generalizada de una computadora

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

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

INTRODUCCION A LA PROGRAMACION MARIA ALEJANDRA GOMEZ RAMOS LESLIE PAOLA RODRIGUEZ ROJAS FRANCIASCO PINZON SAN JOSEMARIA ESCRIVA DE BALAGUER

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura de Computadores II Clase #4

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

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

INGENIERÍA DE SOFTWARE. Sesión 5: Estrategias

Lenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados

Arquitectura de Computadoras

Unidad 5 Unidad central de proceso

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

Metodología de Desarrollo de Programas

ANEXO XVII DE LA RESOLUCION N

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

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

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:

Programación orientada a objetos

Fundamentos de Hardware: Arquitectura de un ordenador

Programación Concurrente y distribuida

Estructura de los sistemas de cómputo

Computación Avanzada. Ing. Daniel Capriles M.

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Dra. Jessica Andrea Carballido

Velocidades Típicas de transferencia en Dispositivos I/O

Introducción a la programación

Tema: Microprocesadores

ALGORITMICA Y PROGRAMACION REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIDAD EDUCATIVA COLEGIO MICAELIANO

Microcontroladores. Unidad 1

Arquitectura de Computadoras

Funcionamiento de las computadoras

Arquitectura de Computadores II Clase #3

Fundamentos de Informática

Principios de Computadoras II

Tema 2. Concepto de Algoritmo

Repaso concepto de programa

Computadora y Sistema Operativo

Metodología de la programación. Progr. de Computadores Metod.de la Programación 1

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Programación para Ingeniería Eléctrica

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

DISEÑO DEL PROCESADOR

Sistemas Informáticos. Estructura Funcional

COMPUTADORA. Introducción Las computadoras se usan en diversas aplicaciones

5. Procesador: camino de datos y control

Organización de Computadoras. Clase 7

Dada la CPU con la estructura interna que se muestra en la figura,

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Conceptos y definiciones básicos en computación

Tema 04: Lenguajes de programación y el lenguaje C

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco)

Introducción a la Computación (Matemática)

Metodología y Tecnología de la Programación

UNIDAD I CONCEPTOS GENERALES. Conceptos Generales Microprocesadores Otoño 2011

Lenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.

Lenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017

Tema 1: PROCESADORES SEGMENTADOS

Lenguajes de Cuarta Generación

Ing. Carlos Bacalla

Programación Estructurada

Unidad I: Introducción a las estructuras de datos

Clase 20: Arquitectura Von Neuman

Algoritmo. Programa. Lenguaje algorítmico

Introducción a la programación

PRÁCTICA FUNDAMENTOS DE ALGORITMOS I. Objetivos

Transcripción:

Informática II Ingeniería Electrónica (2011)

Paradigmas Paradigma proviene del griego παράδειγμα (se lee paradeigma), formada del prefijo para (junto) y deigma (modelo), el cual proviene de deiknynai (mostrar o demostrar). La palabra paradigma fue también utilizada para indicar un patrón, un ejemplo fuera de toda duda, un arquetipo.

Paradigmas En principio, se aplicaba a la gramática (para definir su uso en un cierto contexto) y a la retórica (para referirse a una parábola o fábula).

Paradigmas Platón usa paradigma en su acepción de ejemplo, considerando que el ejemplo no es un mero ejemplo sino algo ejemplar que sirve de modelo o patrón.

Paradigmas Hace 50 años hubiera resultado extraño usar la palabra paradigma. Si en ese tiempo se le hubiese pedido a un profesional una definición de ello, muy difícilmente hubiera dado una respuesta satisfactoria.

Paradigmas El filósofo y científico Thomas Kuhn dio a paradigma su significado contemporáneo cuando lo adoptó para referirse al conjunto de prácticas que definen una disciplina científica durante un período específico de tiempo.

Paradigmas Kuhn prefería el términos ejemplar a paradigma, que tiene un significado filosófico más exacto. En su libro La Estructura de las Revoluciones Científicas (1962) define a un paradigma de la siguiente manera:

Paradigmas Un paradigma se puede definir como la visión del mundo dominante de una cultura. Más precisamente, es una constelación de conceptos y teorías que juntas forman una particular visión de la realidad. Dentro de un contexto de paradigmas dado, ciertos valores y prácticas son compartidas de modo que se transformen en base de los modos que la comunidad se organice así misma... El término permanece impreciso debido a los diferentes usos que se le dan.

Paradigmas Probablemente el uso más común de paradigma, implique el concepto de "cosmovisión".por ejemplo, en ciencias sociales, el término se usa para describir el conjunto de experiencias, creencias y valores que afectan la forma en que un individuo percibe la realidad y la forma en que responde a esa percepción.

Paradigmas Al analizar estas definiciones pueden encontrarse puntos comunes, por cuanto todos ellos consideran el paradigma como: concepciones de problemas y modelos de acción o procedimientos, marcos referenciales o escuelas de pensamiento.

Cambios de paradigma El cambio de paradigma tiende a ser drástico en las ciencias, ya que éstas parecen ser estables y maduras, como la física a fines del siglo XIX. Es famosa la frase de Lord Kelvin en 1900, cuando dijo: "No queda nada por ser descubierto en el campo de la física actualmente. Todo lo que falta son medidas más y más precisas".

Cambios de paradigma 5 años después de esta aseveración, Albert Einstein publicó su trabajo sobre la relatividad especial que fijó un sencillo conjunto de reglas superando a la mecánica de Newton, que había sido utilizada para describir la fuerza y el movimiento por más de doscientos años.

Cambios de paradigmas En La estructura de las revoluciones científicas, Kuhn escribió que "las sucesivas transiciones de un paradigma a otro vía alguna revolución, es el patrón de desarrollo usual de la ciencia madura". La idea de Kuhn era revolucionaria en su tiempo, y causó más cambios que todos los académicos hablando sobre ciencia. De esta manera fue en sí misma un "cambio paradigmático" en la historia científica y de la sociología.

Paradigmas de programación Con respecto a las ciencias de la computación, Robert Floyd, fue quien por 1º vez (1979) habló del concepto de Paradigma de Programación

Paradigmas de programación...y lo define como: "Un proceso de diseño que va más allá de una gramática, reglas semánticas y algoritmos, sino que es un conjunto de métodos sistemáticos aplicables en todos los niveles de diseño de programas".

Paradigmas de programación Un paradigma de programación es un método de realizar cómputos y la forma en que deben estructurar y organizarse las tareas llevadas a cabo por un programa

Paradigmas de programación En ciencias de la computación cada comunidad habla su propio lenguaje y usa sus propios paradigmas Los lenguajes de programación suelen implementar,a menudo de forma parcial,varios paradigmas.

Paradigmas de programación

Paradigmas de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro.

Paradigmas de programación Un lenguaje de programación puede apoyar determinado paradigma de programación pero no puede imponerlo al programador El programador decide cómo construir su programa usando los elementos del paradigma. Ej.: puede escribir un programa en Java puramente imperativo (no recomendado!) Un programa escrito en el mismo lenguaje en versión estructurada/no estructurada

Ejemplo 10 dim i 20 i = 0 30 i = i + 1 40 if i <> 10 then goto 90 50 if i = 10 then goto 70 60 goto 30 70 print "Program Completed." 80 end 90 print i & " squared = " & i * i 100 goto 30

Ejemplo dim i for i = 1 to 10 print i & " squared = " & square(i) next print "Program Completed." function square(i) square = i * i end function

Tipos de paradigmas de programación Los paradigmas fundamentales están basados en diferentes modelos de cómputo y por lo tanto afectan a las construcciones más básicas de un programa

Tipos de paradigmas de programación

Paradigmas de Programación La división principal reside en el enfoque imperativo o no declarativo (indicar el cómo se debe calcular) y el enfoque declarativo (indicar el qué se debe calcular) El enfoque declarativo tiene varias ramas diferenciadas, entre ellas: el paradigma funcional y el paradigma lógico

Paradigmas de programación Otros paradigmas se centran en la estructura y organización de los programas, y son compatibles con los fundamentales: Ejemplos: Programación estructurada, modular, orientada a objetos, orientada a eventos, programación genérica.

Paradigma imperativo Describe cómo debe realizarse el cálculo, no el porqué. Un cómputo consiste en una serie de sentencias (comandos o instrucciones), ejecutadas según un control de flujo explícito, que modifican el estado del programa. Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y representan el estado del programa.

Paradigma imperativo La sentencia principal es la asignación. Es el más viejo y más popular de los paradigmas Es el estándar de facto. Ejemplos de lenguajes que lo implementan: Fortran, C, C++, etc.

Modelos computacionales

Modelos computacionales

Modelos computacionales Ada Augusta Lovelace (1815-1852), que era hija del famoso poeta Lord Byron, escribió y publicó en 1843 un manual sobre la programación de la máquina analítica de Babbage (diseñador de la primer máquina de cómputo programable)

Modelos computacionales Para realizar un estudio riguroso en el área de la teoría de la computación la gente de ciencias de la computación se utilizan abstracciones matemáticas formales de las computadoras llamadas modelos computacionales Los modelos computacionales representan en un alto nivel de abstracción los conceptos subyacentes a los lenguajes de programación y las arquitecturas de las computadoras

Modelos computacionales La teoría de la computación comienza propiamente a principios del siglo XX, poco antes que las computadoras electrónicas fuesen inventadas. En esta época varios matemáticos se preguntaban si existía un método universal para resolver todos los problemas matemáticos. Para ello debían desarrollar la noción precisa de método para resolver problemas, es decir, la definición formal de algoritmo.

Modelos computacionales Los modelos de cómputo permiten analizar teóricamente el diseño de un algoritmo sobre una arquitectura concreta, en cuanto a su rendimiento y proporciona un marco de referencia común, como lo es el modelo de Von Neumann para los computadores secuenciales.

Modelos computacionales La mayoría de las computadoras aún usan un modelo computacional llamado modelo de Von Neumann introducido en los años 40s El modelo imperativo es el más cercano al modelo de hardware sobre el cual se ejecutan los programas (arquitectura de Von Neumann)

Modelo de Von-Neumann Matemático Húngaro-norteamericano (1903-1957) que desarrolló, entre otras, las bases teóricas para la construcción de computadoras digitales de propósito general

Von-Neumann

Arquitectura La arquitectura de las computadoras o modelos de operación de los modelos computacionales, indica la forma de construcción y distribución de los elementos físicos de una computadora

Relación entre modelo computacional, lenguaje de programación y arquitectura del computador Una determinada arquitectura del computador puede pensarse como una herramienta para implementar un determinado modelo computacional o, para ejecutar una dada tarea computacional formulada o especificada mediante un lenguaje de programación

Arquitectura de Von Neumann

Arquitectura de Von Neumann Se tiene una CPU en el medio interactuando con I/O y memoria CPU (unidad de procesamiento central) realiza los cálculos Memoria provee almacenamiento como si fuese un archivero I/O (periféricos) comunican con el mundo exterior

Arquitectura de Von Neumann

Arquitectura de Von Neumann

Arquitectura de Von Neumann La memoria almacena programa (instrucciones, codificadas como datos) y datos Secuencia básica de operaciones: 1. Se obtiene la primer instrucción del programa de memoria (fetch) 2. Se decodifica la instrucción (decodificación) 3. Se ejecuta la instrucción (ejecución). Los resultados se almacenan en memoria 4. Se obtiene la siguiente instrucción 5. Se repite desde paso 2 h/el fin de instrucciones

Arquitectura de Von Neumann Algunos registros ayudan a la CPU: Program Counter (PC): contiene la dirección de memoria de la próxima instrucción a ejecutar, se incrementa o cambia con cada ciclo de reloj Registro de instrucciones (IR) Registros de propósitos generales, por ejemplo como acumulador para mantener resultados de operaciones lógicas/aritméticas

Arquitectura de Von Neumann La CPU consta de una Unidad de Control (CU) que interpreta las instrucciones (decodifica a un lenguaje que entiende la ALU y ejecuta) Y de una ALU (Unidad Aritmética Lógica): realiza operaciones aritméticas y lógicas: sumas, restas, productos, AND, OR, XOR, desplazamientos de bits

Arquitectura de Von Neumann

Arquitectura de Von Neumann

Arquitectura de Von Neumann

Arquitectura de Von Neumann

Arquitectura de Von Neumann

Arquitectura de Von Neumann

Arquitectura de Von-Neumann Propuso dos conceptos básicos que revolucionarían la incipiente informática La utilización del sistema binario El concepto de programa almacenado en memoria Procesamiento secuencial de instrucciones (excepto cuando se ejecuta una sentencia de salto condicional)

Arquitectura de Von Neumann Cuello de botella: El procesador ejecuta una instrucción por vez... Comunicación con la memoria y I/O empeoran las cosas... Se leen las instrucciones (fetch), se leen los operandos, se escriben resultados

Paradigma imperativo En los lenguajes imperativos: Una variable (estado, manejado a través de nombres simbólicos) es una abstracción de una celda de memoria La sentencia de asignación (cambio de estado) es una abstracción del traslado (piping)de los datos de memoria a la CPU (y viceversa) en dicha arquitectura Fuente de ineficiencia: el cuello de botella del modelo El orden secuencial es una abstracción de las CPU secuenciales

Paradigmas de programación Asociados al paradigma imperativo se encuentran los paradigmas procedural, modular, y la programación estructurada.

Paradigma procedimental Indica un modelo de organización de los programas: Los programas se organizan como colecciones de subrutinas (procedimientos) relacionadas mediante invocaciones (llamadas) entre ellas

Programación estructurada La programación estructurada es una técnica para escribir programas de manera clara. Para ello se utilizan únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).

Programación modular Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver. Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples.

Programación modular Permite la compilación separada (además de la programación y depuración) de las distintas unidades independientes que componen el programa