La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Organización de las computadoras Compilado por: Dra. Mayela Coto. Mag. Sonia Mora Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS.

Presentaciones similares


Presentación del tema: "Organización de las computadoras Compilado por: Dra. Mayela Coto. Mag. Sonia Mora Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS."— Transcripción de la presentación:

1 Organización de las computadoras Compilado por: Dra. Mayela Coto. Mag. Sonia Mora Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 1 Proyecto 0151-14 UNA – Mora & Coto, 2015

2 ¿Qué es una computadora?  Máquina capaz de efectuar una secuencia de operaciones mediante un programa, realizando así un procesamiento sobre un conjunto de datos de entrada y obteniéndose otro conjunto de datos de salida.  Funciones básicas del computador son: Procesamiento de datos Almacenamiento de datos Transferencia de datos EIF 200 FUNDAMENTOS DE INFORMÁTICA 2

3 Hardware & Software  Hardware (mecamática) : partes físicas, tangibles de la computadora  Software (programática): programas que contienen instrucciones que la computadora ejecuta. CC BY 2.5 por Gustavb, tomado de https://en.wikipedia.org/wiki/Computer_hardware#/ media/File:Personal_computer,_exploded_5.svg CC BY 2.0 por Okubax, tomado de https://flic.kr/p/pd6V5G HARDWARE : Lo que puedes partir con un hacha. SOFTWARE : Aquello que solo puedes maldecir. EIF 200 FUNDAMENTOS DE INFORMÁTICA 3

4 Hardware EIF 200 FUNDAMENTOS DE INFORMÁTICA 4 ¿Cuántos programadores se necesitan para cambiar un bombillo? Ninguno, es un problema de hardware.

5 Unidad central de proceso (CPU)  La unidad central de proceso CPU es el “cerebro” de la computadora.  Su misión consiste en coordinar y controlar o realizar todas las operaciones del sistema. Procesa o manipula la información almacenada en memoria Recupera información desde memoria (datos o instrucciones) Almacena los resultados de estos procesos en memoria para su uso posterior  Sus partes principales son las siguientes: Procesador, que a su vez se compone de:  La unidad de control (UC).  La unidad aritmético – lógica (UAL). La memoria central (MC). Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 5

6 Unidad central de proceso (CPU)  La velocidad de un microprocesador se mide en megahercios (MHz) y manipulan palabras de 4 a 64 bits.  Los microprocesadores históricos: 8080 hasta el 80486/80586, Pentium, Pentiun MMX, Pentium II, Pentium III.  En el año 2000 Intel lanzó la siguiente generación, Pentium 4, con una nueva microarquitectura diseñada para ser más rápida y escalar mejor a los procesadores actuales.  En la actualidad fabrican microprocesadores con frecuencias desde 1.3 GHz hasta 3 GHz.  Los microprocesadores modernos tienen una capacidad y velocidad mucho mayores, trabajan en arquitecturas de 64 bits, integran más de 700 millones de transistores, como es en el caso de las serie Core i7, y pueden operar a frecuencias normales algo superiores a los 3 GHz (3000MHz) Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 6

7 Unidad central de proceso (CPU) Unidad Central de Proceso (Procesador) UAL Unidad Aritmética Lógica UC Unidad de Control Entrada Salida Memoria Central Memoria Auxiliar CC-BY por Allan Ajifo - https://www.flickr.com/photos/12599 2663@N02/14599057094/ EIF 200 FUNDAMENTOS DE INFORMÁTICA 7

8 Unidad de control (UC)  Funciones: Coordina las actividades de la computadora y determina que operaciones se deben realizar y en que orden, además controla y sincroniza todo el proceso de la computadora Supervisa la ejecución de los programas. Coordina y controla al sistema de cómputo, es decir, coordina actividades de E/S. Determina que instrucción se debe ejecutar y pone a disposición los datos pedidos por la instrucción. Determina donde se almacenan los datos y los transfiere desde las posiciones donde están almacenados. Una vez ejecutada la instrucción la UC debe determinar donde pondrá el resultado para salida o para su uso posterior. EIF 200 FUNDAMENTOS DE INFORMÁTICA 8

9 Unidad aritmético-lógica (UAL)  Realiza operaciones aritméticas y lógicas, tales como suma, resta, multiplicación, división y comparaciones, haciendo uso de operadores como +, -, /, *, and, or, xor, not, >, >=, <, <=, = etc  Al realizar operaciones aritméticas y lógicas, la UAL mueve datos entre ella y el almacenamiento Un símbolo esquemático típico para una ALU: A y B son los datos (registros); R es la salida; F es el operando (instrucción) de la Unidad de Control; D es un estado de la salida Imagen CC-BY-SA-3,0 por Cburnett, tomado de https://simple.wikipedia.org/wiki/Arithmetic_lo gic_unit#/media/File:ALU_symbol.svg EIF 200 FUNDAMENTOS DE INFORMÁTICA 9

10 La Memoria  Almacena la información en un formato lógicamente consistente.  Normalmente, tanto las instrucciones como los datos se almacenan en áreas de memoria distintas y separadas.  Se divide en dos categorías: Memoria principal: contiene el programa en ejecución y los resultados de los cálculos intermedios de la computadora. Memoria auxiliar o de almacenamiento secundario: consta de dispositivos utilizados para almacenar los datos de modo permanente. El programa se almacena en memoria auxiliar de modo permanente y cuando se ha de ejecutar se transfiere a la memoria central mediante órdenes al sistema operativo. EIF 200 FUNDAMENTOS DE INFORMÁTICA 10

11 Memoria central (interna)  Consta de una gran colección de pequeños circuitos electrónicos capaces de almacenar un bit (un bit es un circuito que puede tener exactamente dos valores: cero/uno o encendido/apagado).  La memoria da al procesador almacenamiento temporal para programas y datos. Todos los programas y datos deben transferirse a la memoria desde un dispositivo de entrada o desde el almacenamiento secundario, antes de que los programas puedan ejecutarse o procesarse los datos  La memoria central se utiliza para almacenar información. Se divide a su vez en memoria RAM y memoria ROM. 0 1 0 1 1 1 0 0 1 Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 11

12 Memoria RAM (Random Access Memory)  Es normalmente volátil, lo que significa que todo cuanto se almacena o guarda ella se pierde cuando se apaga la computadora.  Todos los programas y datos son transferidos a la memoria RAM, desde un dispositivo de entrada o desde almacenamiento secundario, antes de ser ejecutados o procesados. Dispositivos entrada / salida Dispositivos de almacenamiento secundario Memoria RAM Procesador EIF 200 FUNDAMENTOS DE INFORMÁTICA 12

13 Memoria RAM  Permite almacenar datos de entrada, instrucciones de los programas que se están ejecutando en ese momento, los datos resultados del procesamiento y los datos que se preparan para la salida  En general, la información almacenada en memoria puede ser de dos tipos: las instrucciones de un programa y los datos con los que operan las instrucciones.  La cantidad de memoria RAM influye en la velocidad de un PC. Entre más memoria RAM tenga, más rápido trabaja y más programas puede tener abiertos al mismo tiempo Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 13

14 Memoria ROM  Memoria ROM (Read Only Memory) Memoria de solo lectura Almacena ciertos programas e información que necesita la computadora para cargar inicialmente al software cuando se enciende la máquina. Esta información está grabada permanentemente y no puede ser modificada por el programador. No es volátil, por lo tanto su contenido no se pierde cuando se apaga la energía. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 14

15 Memoria central (interna)  La memoria central consta de un conjunto de celdas de memoria (llamadas también palabras).  El número de celdas de la memoria depende del tipo y modelo de la computadora (32, 64, 128, etc,).  Cada celda de memoria consta de un cierto número de bits.  La unidad elemental de memoria se llama byte (8 bits).  Un byte tiene la capacidad de almacenar un carácter de información.  La memoria de un PC actual llega hasta varios miles de millones de bytes. EIF 200 FUNDAMENTOS DE INFORMÁTICA 15

16 Memoria central (interna)  Cada celda o posición de memoria tiene asociados: Dirección: una única dirección que indica su posición relativa en memoria y mediante la cual se puede acceder a la posición para almacenar o recuperar información Contenido: información almacenada en una posición de memoria  La dirección de una celda es permanente y única, el contenido puede cambiar mientras se ejecuta el programa. Direcciones 1 0 1010 0011 1011 1101 Contenido de la dirección 998 Memoria central de una computadora 999 998 EIF 200 FUNDAMENTOS DE INFORMÁTICA 16

17 — ¿Qué es un terapeuta? — 1000 gigapeutas Unidades de memoria Como el byte es una unidad elemental de almacenamiento, se utilizan múltiplos para definir el tamaño de la memoria central: 1 bit (b): unidad básica (1, 0) 1 byte (B): ocho bits, representa letras, números o signos. EIF 200 FUNDAMENTOS DE INFORMÁTICA 17

18 Memoria secundaria  La memoria secundaria es un conjunto de dispositivos para el almacenamiento masivo de datos de una computadora, con mayor capacidad que la memoria principal, pero más lenta que ésta: cd, dvd, disco duro, unidades de memoria flash, etc.  Almacena los datos en forma temporal o permanente.  Con la evolución de las tecnologías se han conseguido dispositivos de almacenamiento masivos de datos.  Se clasifican en grupos: Dispositivos Magnéticos Dispositivos Ópticos Unidades de Estado Sólido EIF 200 FUNDAMENTOS DE INFORMÁTICA 18

19 Cintas magnéticas  Primeros dispositivos de almacenamiento de datos que se utilizaron  Han sido los más empleados para almacenar copias de seguridad.  Poseen una gran capacidad de almacenamiento pero tienen la desventaja de ser dispositivos de acceso secuencial.  A mayor capacidad de almacenamiento, mayor longitud de cinta y en consecuencia, mayor tiempo de acceso.  En general, las cintas son medios removibles, fiables y económicos con altas capacidades de almacenamiento.  Están por salir del mercado aunque aun se usan en algunas partes. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 19

20 Discos  Dispositivos formados por componentes electromagnéticos o por componentes ópticos que permiten un acceso rápido a bloques físicos de datos.  La información se registra en la superficie del disco y se accede a ella por medio de cabezas de lectura/escritura que se mueven sobre la superficie.  Su principal característica es el acceso directo a la información y se les conoce también como unidades de almacenamiento masivo. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 20

21 Discos magnéticos  Pueden ser duros, de gran capacidad de almacenamiento (hasta cientos de GB), discos flexibles (360 KB a 1,44 MB) o arreglos de discos de varios TB.  Los discos duros suelen estar fijos en los sistemas y normalmente no se pueden extraer, aunque cada vez es más frecuente encontrar discos duros removibles utilizados como copias de seguridad. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 21

22 Discos ópticos  Emplean la misma tecnología que los dispositivos compactos de audio para almacenar información digital: muy resistentes al paso del tiempo poseen gran capacidad de almacenamiento son transportables y compatibles entre computadoras.  Hicieron posible el desarrollo de la multimedia.  Los CD’s permiten almacenar 650 o 700 MB de información y hay de solo lectura CD-R o de lectura y escritura CD-RW.  Los DVD son dispositivos: alta capacidad de almacenamiento interactivos total compatibilidad con los medios existentes su formato sirve tanto para las computadoras como para los dispositivos electrónicos de consumo pueden almacenar el equivalente de 7 a 26 CDs convencionales. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 22

23 Flash Disk  Es un pequeño almacén de datos de tamaño pequeño que se puede transportar como llavero, se puede utilizar en cualquier computadora que disponga de un puerto USB y pueden almacenar hasta varios GB a precios módicos.  Mal llamada llave maya. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 23

24 Dispositivos de entrada y salida Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 24

25 Dispositivos de entrada  Permiten al usuario del ordenador introducir datos, comandos y programas en la CPU. Teclado: más común. La información introducida con el mismo, es transformada por el ordenador en modelos reconocibles. Lápices ópticos, que transmiten información gráfica desde tabletas electrónicas hasta el ordenador Joysticks y el ratón, que convierte el movimiento físico en movimiento dentro de una pantalla de ordenador Escáneres luminosos, que leen palabras o símbolos de una página impresa y los traducen a configuraciones electrónicas que el ordenador puede manipular y almacenar Módulos de reconocimiento de voz, que convierten la palabra hablada en señales digitales comprensibles para el ordenador. Dispositivos de almacenamiento para introducir datos en la unidad de proceso. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 25

26 Dispositivos de salida Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos de la computadora. Monitor: más común. Presenta los caracteres y gráficos en una pantalla similar a la del televisor. Impresoras: permiten obtener una copia impresa de la información que reside en los dispositivos de almacenamiento- Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 26

27 SOFTWARE Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 27

28 SOFTWARE  Las operaciones que debe realizar el hardware son especificadas por una lista de instrucciones, llamadas programas o software.  El software se divide en dos grandes grupos: software del sistema: conjunto de programas indispensables para que la máquina funcione: sistema operativo, los compiladores / intérpretes (lenguajes de programación) y los programas utilitarios software de aplicaciones: programas que realizan tareas concretas, nóminas, contabilidad, análisis estadístico, los editores de texto, etc. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 28

29 Sistema Operativo  Es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios.  Es un administrador de los recursos de hardware y software del sistema.  Ofrece una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.  Tiene dos funciones primordiales, que son: Gestionar el hardware. Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina. Facilitar el trabajo al usuario. Permite una comunicación con los dispositivos de la máquina. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 29

30 Sistema Operativo  Consta de varios componentes: Kernel del sistema (componente central), Sistema de administración de memoria (asigna un área de memoria para cada programa que se está ejecutando), Administrador del sistema de archivos (organiza y controla el uso de los discos), Controladores de dispositivos (controlan los dispositivos de hardware conectados a la computadora), y Bibliotecas del sistema (contiene todos los tipos de programas utilitarios). EIF 200 FUNDAMENTOS DE INFORMÁTICA 30

31 Categorías de sistemas operativos  Multitarea Capacidad del SO para ejecutar varias tareas simultáneamente.  Multiusuario Permite a varios usuarios acceder a una computadora. Son también multitareas.  Multiproceso Coordina las operaciones de las computadoras que tienen más de un procesador. Cada procesador ejecuta procesos diferentes EIF 200 FUNDAMENTOS DE INFORMÁTICA 31

32 Ejemplos de sistemas operativos WINDOWS  Creado por Microsoft a mediado de la década de los 80.  Multitarea  Interfaz gráfica MS DOS  Creado por Microsoft en1984.  Gran volumen de software disponible.  Monousuario  Monotarea Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 32

33 Ejemplos de sistemas operativos UNIX  Creado por Laboratorios Bell en 1969.  Multiusuario, multitarea y multiproceso  Sólido y capaz, pero de difícil aprendizaje. GNU / LINUX  Creado en 1991 por Linus Torvalds  Multitarea, multiusuario, multiproceso  Protege la memoria para que un programa no pueda hacer caer al resto del sistema  Se distribuye con código fuente (Software libre)  Comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria  Hay diferentes “distribuciones” (Debian, RedHat, Mandrake, etc.) Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 33

34 Lenguajes de programación  Sirven para escribir programas que permitan la comunicación usuario/máquina.  Los principales tipos de lenguajes de programación son tres: lenguaje máquina lenguaje de bajo nivel o ensamblador lenguajes de alto nivel Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 34

35 Lenguaje máquina  Escritos en lenguajes directamente legibles por la máquina, ya que sus instrucciones son cadenas binarias (series de 1 y 0’s) que especifican la operación a realizar, los registros del procesador y celdas de memoria implicados, etc.  Dependen del hardware de la computadora y por tanto difieren de una computadora a otra.  Las ventajas de programar en lenguaje máquina: posibilidad de cargar un programa sin necesidad de traducción posterior velocidad de ejecución superior a cualquier otro lenguaje de programación.  Inconvenientes: dificultad y lentitud en la codificación poco amigables dificultad de verificar y poner a punto los programas los programas solo son ejecutables en el mismo procesador Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 35

36 Lenguajes de bajo nivel  Son más fáciles de utilizar que los lenguajes máquina.  Dependen de la máquina en particular.  El lenguaje de bajo nivel por excelencia es el lenguaje ensamblador, sus instrucciones son conocidas como nemotécnicos, por ejemplo; ADD, SUB, DIV, etc.  Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, sino que requiere una fase de traducción al lenguaje máquina. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 36

37 Lenguajes de bajo nivel  Ventajas: Más fáciles de codificar Mayor velocidad de cálculo  Desventajas: Dependencia total de la máquina lo que impide la transportabilidad de los programas Formación de programadores en este lenguaje es más compleja ya que exige conocer no sólo las técnicas de programación sino también el interior de la máquina  Actualmente las aplicaciones desarrolladas en lenguaje ensamblador están relacionadas principalmente con aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. EIF 200 FUNDAMENTOS DE INFORMÁTICA 37

38 Lenguajes de alto nivel  Son los más utilizados (más fáciles de entender).  Normalmente no dependen de la máquina por lo tanto son portables o transportables y pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.  Existen actualmente numerosos lenguajes de programación, entre ellos: C, C++, COBOL, PASCAL, Visual BASIC, Java, C#, Prolog, LISP, SQL, Delphi, Power Builder, HTML, etc.  Los programas fuente escritos en lenguajes de alto nivel tienen que ser traducidos por programas traductores llamados compiladores e intérpretes. Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 38

39 Lenguajes de alto nivel  Ventajas: El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos, por ejemplo: READ, WRITE, PRINT, etc. Las modificaciones y puestas a punto de los programas son más fáciles. Reducción del coste de los programas. Transportabilidad. EIF 200 FUNDAMENTOS DE INFORMÁTICA 39

40 Lenguajes de alto nivel  Desventajas: Se requieren diferentes traducciones del programa fuente para llegar al programa objeto. No se aprovechan los recursos internos de la máquina, que se explotan mejor en lenguajes máquina y ensamblador. Hay un incremento en la ocupación de memoria. Requieren un mayor tiempo de ejecución. EIF 200 FUNDAMENTOS DE INFORMÁTICA 40

41 Historia de los lenguajes de programación  Muchos de los lenguajes actuales tienen sus raíces en los lenguajes que nacieron a finales de los 50 y primeros años de los 60, tales como COBOL (1960), FORTRAN IV (1961), BASIC (1964), LOGO (1967).  En la década de los setenta y primeros años de los ochenta emergieron nuevos lenguajes como Pascal (1971) y C (1972) y Ada (1979), que se convirtieron en dominantes, desplazando a otros como ALGOL y BASIC.  Otros lenguajes como COBOL y FORTRAN, lograron adaptarse y se mantuvieron como lenguajes de referencia en el mundo de los negocios y en el campo científico. EIF 200 FUNDAMENTOS DE INFORMÁTICA 41

42 Historia de los lenguajes de programación  Todos estos lenguajes se conocían como lenguajes de programación imperativos o estructurados.  En paralelo con el desarrollo de estos lenguajes surgieron dos nuevos estilos o paradigmas de programación: programación funcional y programación orientada a objetos  A principios de los ochenta apareció C++ como lenguaje imperativo con propiedades de orientación a objetos.  1995 surge Java: lenguaje orientado a objetos con una funcionalidad muy dirigida a la red Internet.  2000 surge C#, que está relacionado directamente con C, C++ y Java.  C# representa en la primera década del siglo XXI a un lenguaje de programación con la mayoría de las grandes propiedades que todo buen lenguaje debe cumplir. EIF 200 FUNDAMENTOS DE INFORMÁTICA 42

43 SOFTWARE  Programa de computadora: Un programa es un conjunto de instrucciones lógicas que le dicen a la computadora que debe hacer. Un programa debe satisfacer la necesidades de los usuarios utilizando eficientemente los recursos disponibles  Programación: proceso de escribir un programa o software.  Lenguaje de programación: conjunto de instrucciones que se pueden utilizar para escribir un programa.  Programa fuente: aquel que nos permite escribir un algoritmo mediante un lenguaje formal. Por eso al código desarrollado al programar se le llama código fuente.  Programa objeto: es el resultado de traducir un programa fuente a un lenguaje comprensible por la máquina EIF 200 FUNDAMENTOS DE INFORMÁTICA 43

44 TRADUCTORES: Ensambladores, Compiladores e Interpretes EIF 200 FUNDAMENTOS DE INFORMÁTICA 44

45 Traductores  Son programas que traducen los programas fuente escritos en lenguaje de alto nivel en instrucciones escritas en lenguaje máquina (0,1) que la computadora pueda entender. Se clasifican en: Ensambladores Intérpretes Compiladores EIF 200 FUNDAMENTOS DE INFORMÁTICA 45

46 Traductores  Ensambladores Tipo de traductor que convierte programas escritos en lenguaje ensamblador en programas escritos en código máquina.  Intérpretes Se trata de traductores-ejecutores ya que con cada instrucción realizan un proceso triple de lectura-traducción-ejecución. Son relativamente lentos, pero muy buenos para la depuración de programas. Los intérpretes han vuelto a renacer con la aparición de Java.  Compiladores Es el tipo de traductor más conocido. Se trata de un programa que traduce código fuente escrito en un lenguaje de alto nivel (Pascal, C, C++) en código máquina. Son más rápidos que los intérpretes pero presentan mayor dificultad a la hora de detectar errores. Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa de lenguaje máquina directamente ejecutable. EIF 200 FUNDAMENTOS DE INFORMÁTICA 46

47 Perspectiva histórica EIF 200 FUNDAMENTOS DE INFORMÁTICA 47

48 Diferencias entre un compilador y un intérprete  Los compiladores realizan la traducción en tiempo de desarrollo. Es decir, el programa aún no se está ejecutando. El compilador recibe todo el código fuente, lo analiza, lo optimiza y lo traduce a lenguaje máquina dejando un programa completo listo para su ejecución. Típicos lenguajes compilados son el C o el PASCAL  Los intérpretes realizan la traducción en tiempo de ejecución. Es decir, a medida que el programa se va ejecutando, el intérprete va traduciendo instrucciones al lenguaje máquina. Ejemplos: BASIC, LISP, Prolog. EIF 200 FUNDAMENTOS DE INFORMÁTICA 48

49 Lenguajes Interpretados Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 49

50 Lenguajes Compilados Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 50

51 El proceso ….  El programador, con ayuda de un editor de textos genera, en el lenguaje de alto nivel el programa (código fuente).  A continuación otro programa, realiza la traducción de este código fuente al lenguaje máquina propio del microprocesador (código objeto).  Los programas que realizan esta labor son los compiladores e intérpretes.  El programa, ya en lenguaje máquina, debe ponerse al alcance del microprocesador. Esto se realiza mediante los programas cargadores.  Las funciones mas importantes de un cargador son: colocar un programa objeto en la memoria e iniciar su ejecución Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 51

52 Proceso de ejecución Inicio Editar programa fuente Existen errores en la compilación? Compilar el programa Programa Programa ejecutable Enlazador Modificación programa fuente no si Ejecución EIF 200 FUNDAMENTOS DE INFORMÁTICA 52

53 Tipos de errores  De tiempo de compilación: Errores detectados por preprocesador, el analizador sintáctico y el propio compilador. Los hay meramente sintácticos, por ejemplo un paréntesis no cerrado; también de tipo lógico, por ejemplo la referencia a una variable no declarada previamente, etc.  De tiempo de enlazado: Son detectados por el enlazador. Por ejemplo una llamada a función cuya definición no aparece por ninguna parte (el enlazador no es capaz de encontrarla en los directorios que tiene asignados como "normales" para buscar); también la inversa: dos funciones del mismo nombre situadas en dos módulos (fuentes) distintos (la referencia aparece duplicada).  De tiempo de ejecución (runtime): Se producen cuando se ejecuta el programa; son los más difíciles de diagnosticar y verificar, sobre todo en aplicaciones grandes (los relativos a "pérdidas misteriosas" de memoria y punteros descontrolados son especialmente temibles). EIF 200 FUNDAMENTOS DE INFORMÁTICA 53

54 Gravedad de los errores  Errores fatales ("Errors"): Son errores graves, el proceso no puede continuar y es detenido después de mostrar la información pertinente.  Advertencias ("Warnings"): No son errores graves pero si circunstancias sospechosas o inusuales de las que el compilador entiende que merecen una advertencia por si es algo que se nos ha escapado inadvertidamente (por ejemplo: una variable declarada que no se utiliza para nada más). En estos casos, el proceso continua y si no hay errores graves se construye un ejecutable.  En todos los casos el aviso incluye indicación del archivo ("fuente".C/.CPP), el número de línea, y el nombre de la función donde se produce el error, así como una explicación más o menos clara de su motivo. EIF 200 FUNDAMENTOS DE INFORMÁTICA 54

55 Máquinas virtuales Java y.net  Los programas interpretados o compilados tienen distintas ventajas e inconvenientes. En un intento de combinar lo mejor de ambos mundos, durante la década de los 90 surge con fuerza el enfoque de máquina virtual. La solución consiste en que se define una máquina teórica o ‘máquina virtual’ con su propio “lenguaje máquina”.  Los principales lenguajes de esta tecnología son, por un lado, el lenguaje Java de Oracle (creado por Sun Microsystems), y por otro, los lenguajes de la plataforma.NET de Microsoft: Visual Basic y C#.  La filosofía de la máquina virtual es la siguiente: El código fuente se compila, detectando los errores sintácticos, y se genera una especie de ejecutable, con un código máquina dirigido a una CPU imaginaria. A esta especie de código máquina se le denomina código intermedio, lenguaje intermedio, p-code, o byte-code. Como esa CPU imaginaria no existe, para poder ejecutar ese ejecutable, se construye un intérprete. Este intérprete es capaz de leer cada una de las instrucciones de código máquina imaginario y ejecutarlas en una CPU real. A este intérprete se le denomina máquina virtual. Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 55

56 Ejemplo  Suponga que se escribe un programa en lenguaje JAVA y que se tienen dos ordenadores: CPU Pentium y sistema operativo Windows. CPU Sparc y sistema operativo Solaris  En el primer ordenador se instala un compilador de Java y una máquina virtual de Java específicos para Windows+Pentium.  En el segundo se instala un compilador y máquina virtual específicos para Solaris+Sparc.  Se confecciona un programa sencillo escrito en Java en el primer ordenador y se compila, generando un ejecutable intermedio.  Se puede utilizar la máquina virtual del primer ordenador para ejecutar ese código intermedio, o se puede coger ese ejecutable intermedio y llevarlo a la máquina con Solaris+Sparc, para ejecutarlo, y se tendrá exactamente el mismo resultado.  Este sistema es también utilizado por los juegos Java de los teléfonos móviles o las PDA. Distintas marcas de teléfonos móviles son capaces de ejecutar el mismo juego, aun cuando cada teléfono tiene una CPU y un sistema operativo distinto. EIF 200 FUNDAMENTOS DE INFORMÁTICA 56

57 Ventajas de la máquina virtual  Portabilidad: El código intermedio ya está libre de errores sintácticos, y es un código muy sencillo (al estilo del código máquina). Si existe un intérprete para este código en distintas plataformas, el mismo código se puede ejecutar en cada una de ellas. Además, la construcción de este intérprete será relativamente sencilla y su ejecución más rápida, ya que no ha de comprobar la sintaxis.  Estabilidad: El código intermedio no es ejecutado por una CPU real directamente, sino por una CPU virtual: la máquina virtual. Esto permite un mayor control sobre este código, facilitando la labor de impedir que un código descontrolado afecte a la estabilidad de la plataforma real. EIF 200 FUNDAMENTOS DE INFORMÁTICA 57

58 CompilarInterpretarMáquina virtual -Genera un ejecutable-No genera un ejecutable-Genera una especie de ejecutable, pero portable entre plataformas, dirigido a una CPU imaginaria. -El proceso de traducción se realiza una sola vez -El proceso de traducción se realiza en cada ejecución -Se realiza una sola traducción a código intermedio, y una interpretación muy rápida del código intermedio en cada ejecución. -La ejecución es muy rápida debido a que el programa ya ha sido traducido a código máquina -La ejecución es más lenta, ya que para cada línea del programa es necesario realizar la traducción -La ejecución no es tan rápida como en la compilación tradicional ni tan lenta como en la intepretación. -El ejecutable va dirigido a una plataforma concreta (una CPU, un sistema operativo, y quizá alguna otra consideración), siendo prácticamente imposible portarlo a otra. -No hay ejecutable, así que si existe un intérprete para una plataforma concreta, el programa se podrá ejecutar en ambas. Típicamente, los programas interpretados son mucho más portables que los compilados,. -El ejecutable va dirigido a una CPU imaginaria. Se puede transportar a una plataforma para la cual exista una "máquina virtual" (el intérprete de código intermedio) -Una vez compilado el programa, el código fuente no es necesario para ejecutarlo, así que puede permanecer en secreto si se desea. -El código fuente es necesario en cada ejecución, así que no puede permanecer en secreto -El código fuente no es necesario para la ejecución, sólo el código intermedio. -Los errores sintácticos se detectan durante la compilación. Si el fuente contiene errores sintácticos, el compilador no producirá un ejecutable. -Los errores sintácticos se detectan durante la ejecución, ya que traducción y ejecución se van haciendo simultáneamente. -Los errores sintácticos se detectan durante la compilación. EIF 200 FUNDAMENTOS DE INFORMÁTICA 58

59 Entornos integrados de desarrollo (IDE)  Un ambiente de desarrollo integrado, en inglés Integrated Development Environment (IDE), aplicación que proporciona servicios integrales para facilitarle al programador el desarrollo de software. proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, Phyton, Java, C#, Delphi, Visual Basic, etc.  Hoy día mediante entornos gráficos integrados de desarrollo se unifican, en un único entorno amigable, todas las funciones asociadas al desarrollo de programas: editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). EIF 200 FUNDAMENTOS DE INFORMÁTICA 59

60 Entornos integrados de desarrollo (IDE)  En los entornos de desarrollo tradicionales (por ejemplo, desarrollo en lenguaje C sobre UNIX) el código fuente se generaba mediante un editor de textos de propósito general. Luego, y en línea de comandos, se invocaba al compilador con todos sus parámetros y al denominado cargador/enlazador.  Algunos IDE’s soportan múltiples lenguajes, tales como Eclipse, Visual o NetBeans, ambas basadas en Java o MonoDevelop, basado en C#. El soporte para lenguajes alternativos es a menudo proporcionada por plugins, que les permite ser instalado en el mismo IDE al mismo tiempo. Por ejemplo, Eclipse y NetBeans tiene plugins para C / C + +, Ada, Perl, Python, Ruby y PHP, entre otros lenguajes EIF 200 FUNDAMENTOS DE INFORMÁTICA 60

61 Code Block Code::Blocks es un entorno de desarrollo integrado libre, de código abierto y multiplataforma para el desarrollo de programas en lenguaje C y C++. Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 61

62 NetBeans IDE  NetBeans comenzó como un proyecto estudiantil en Republica Checa (originalmente llamado Xelfi), en 1996 bajo la tutoría de la Facultad de Matemáticas y Física en la Universidad Carolina en Praga. La meta era escribir un entorno de desarrollo integrado (IDE) para Java parecida a la de Delphi  Es un entorno de desarrollo - una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas.  Está escrito en Java - pero puede servir para cualquier otro lenguaje de programación. Existe además un número importante de módulos para extender el NetBeans IDE.  NetBeans IDE es un producto libre y gratuito sin restricciones de uso. Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 62

63 Microsoft Visual Studio  Es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para sistemas operativos Windows. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic.NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros.  Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, así como servicios web en cualquier entorno que soporte la plataforma.NET.  Se pueden crear aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles. Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 63

64 Microsoft Visual C++  Es uno de los más famosos entornos de desarrollo visuales para programar en C++.  Permite agregar toda clase de objetos gráficos a la interfaz, como botones, cuadros de texto, cronómetros, imágenes, etiquetas, puertos, etc.  Se puede utilizar la última versión de SQL Server Express, con el fin de visualizar y gestionar una base de datos desde la interfaz gráfica del programa. Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 64

65 ZinjaI  Es un IDE libre y gratuito para programar en C/C++.  Para ser utilizado por estudiantes de programación durante el aprendizaje. Con énfasis en depurado de programas como un recurso educativo.  Interfaz inicial sencilla, con funcionalidades avanzadas que permiten el desarrollo de proyectos tan complejos como el propio ZinjaI. Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños EIF 200 FUNDAMENTOS DE INFORMÁTICA 65

66 Paradigmas de programación  Representa un enfoque particular o filosofía para la construcción del software  Indican las diversas formas que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilos para programar y para resolver los problemas por medio de una computadora Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS DE INFORMÁTICA 66

67 Paradigmas de programación  Paradigma estructurado: Básicamente el código se divide en bloques, estructuras, que pueden o no comunicarse entre si. Este software se controla con secuencia, selección e interacción. Otorga una mejor comprensión del código y permite su reutilización de una forma mas fácil.  Paradigma orientado a Objetos: Este tipo de programación posee como idea principal encapsular estado y operaciones en objetos. Estos objetos pueden comunicarse entre sí, poseen clases y herencia. Se puede destacar como ventaja la facilidad de reutilización de código. Ejemplos de algunos lenguajes orientados a objetos son: Simula, Smalltalk, C++ y Java.  Paradigma funcional: Este tipo de paradigma demuestra un tipo de programación en forma de funciones matemáticas. Los lenguajes puramente funcionales evitan efectos secundarios que pueden ser comunes en otros tipos de paradigmas. Está representado por Scheme.  Paradigma lógico: Se definen reglas lógicas que luego a traves de un motor de inferencias lógicas, resolver problemas planteados por el sistema. Está representado por Prolog. EIF 200 FUNDAMENTOS DE INFORMÁTICA 67

68 Referencias  http://itesocci.gdl.iteso.mx/~ia27563/basico.htm  http://members.xoom.com/mcruz/index-0.html  http://www.pegasosoft.com/curso/introduccion.htm  http://www.infosistemas.com.mx/soto10.htm  http://www.euitt.upm.es/java/cursojava/1_Intro/1.3_OOP/oop.ht m  http://www.fciencias.unam.mx/revista/temas/contenido.html  http://www.monografias.com  Enciclopedia Microsoft® Encarta® 98 © 1993-1997 Microsoft Corporation. Reservados todos los derechos.  Gaitán Rivera, Jorge Romeo. 1er. Semestre de Ingeniería Electrónica. EIF 200 FUNDAMENTOS DE INFORMÁTICA 68

69 Referencias  Lenguajes, compiladores e intérpretes http://igrgavilan.iespana.es/doc/MA_20070506_MT_Len guajes.pdf  Compiladores e intérpretes. Introducción http://www.angelfire.com/linux/eotto/comp_clase1.pdf webdelprofesor.ula.ve/forestal/mariaq/archivos_guias.../T ema1.ppt EIF 200 FUNDAMENTOS DE INFORMÁTICA 69

70 EIF200 FUNDAMENTOS DE INFORMÁTICA USO DIDÁCTICO CURSO EIF 200 Escuela de Informática Universidad Nacional Costa Rica Proyecto 0151-14 UNA – Mora & Coto, 2015


Descargar ppt "Organización de las computadoras Compilado por: Dra. Mayela Coto. Mag. Sonia Mora Imágenes en esta diapositiva son de dominio público EIF 200 FUNDAMENTOS."

Presentaciones similares


Anuncios Google