Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Los primeros dos elementos ms unos dispositivos de almacenamiento ms rpidos y ms pequeos que la memoria principal, llamados registros, constituyen la unidad central de procesamiento (UCP o CPU por su nombre en ingls: Central Processing Unit), que hoy en da normalmente reside ntegramente en el procesador.
Pregunta 1 Discute con tus compaeros y escriban qu saben de: El procesador o CPU (marcas, tipos, velocidades). La memoria (tipos, velocidades, tamaos, usos).
Sistema binario
Los computadores son mquinas que funcionan con electricidad. En consecuencia, necesitan de un sistema para manejar datos que pueda resumirse en hay voltaje o no hay voltaje. A esta unidad mnima de electrnica digital se le conoce como bit. A travs de convenciones y estndares de codificacin, los bits permiten representar nmeros, textos, imgenes, videos, etc. Para manejar nmeros enteros se usa el sistema
numrico binario, en que una secuencia de n bits corresponde a un nmero natural (entero 0) de acuerdo a la siguiente frmula:
En las arquitecturas actuales n normalmente es mltiplo de 8, como 32 64 bits. A una secuencia de ocho bits se le llama byte, por lo que las arquitecturas actuales usan palabras de 4 y 8 bytes.
(1 2 2 1 0 ) = 2
=0
Ejemplo 1 En un computador con palabras de un byte, (00000011) 2 = 027 + 026 + 025 + 024 + 023 + 022 + 121 + 120 = (3) 10
(00001011) 2 = 027 + 026 + 025 + 024 + 123 + 022 + 121 + 120 = (11) 10
(10010010) 2 = 127 + 026 + 025 + 124 + 023 + 022 + 121 + 020 = (146) 10
Esto ltimo se lee el nmero binario 10010010 es igual al nmero decimal 146 .
La codificacin posicional en bytes tiene muchas ventajas, en especial una aritmtica muy simple.
Ejemplo 2
00000100 + 00000111 00001011
Podemos observar en este ejemplo, que la suma en el sistema binario moderno es idntica a la decimal, que conocemos desde la escuela: se suma cada par de dgitos en una misma posicin. La diferencia radica en cundo ocurre una reserva: cuando ambos dgitos son uno, el resultado es 1 + 1 = 10, es decir se escribe 0 y se acarrea 1 en la reserva. Sin embargo, esta notacin tan simple presenta dificultades para trabajar con los nmeros enteros negativos. En estos casos, el estndar actual es codificarlos en complemento a dos. El procedimiento es muy simple: 1. primero, obtenemos la representacin binaria del valor absoluto del nmero (la versin positiva) 2. luego esta representacin se complementa, es decir los ceros se cambian por unos y los unos por ceros 3. a este resultado, le sumamos la representacin binaria del valor uno para obtener la representacin final Ejemplo 2
La representacin del valor -7 sera: (7)10 (00000111)2 Complementando (00000111)2 (11111000)2 Sumando (00000001)2 (11111001)2 Luego (-7)10 = (11111001)2
Una de las ventajas por las cuales se utiliza el estndar complemento a dos es que mantiene la lgica aritmtica, lo que adems permite implementar la operacin de resta fcilmente (i.e. sin hardware adicional). Por ejemplo, la operacin 4-7 en lgica binaria de 8 bits sera: Ejemplo 3
4 - 7 = + 00000100 11111001 11111101 =
- 3
Pregunta 3 Realice las siguientes sumas y restas en complemento a 2 de 8 bits: 1. 01110000 + 00111010 2. 01110000 - 00111010
Software
No podemos hablar de software sin definir antes la nocin de programa. As, podemos decir que un programa es una secuencia de instrucciones que un computador puede interpretar y ejecutar. As, un programa es algo que necesitamos para que los computadores funcionen, pero es algo intangible. Solo podemos ver el resultado de su funcionamiento. Un concepto similar, a veces usado como sinnimo, es el trmino software. Sin embargo ste agrupa algo ms que instrucciones ejecutables por un computador y se refiere ms bien a los programas, procesos, reglas y documentacin asociada para la operacin de un sistema de informacin.
Clasificaciones de Software Una de las clasificaciones que se le da comnmente al software, es segn su utilizacin. De esta forma se pueden distinguir tres grandes grupos: los sistemas de aplicacin, los sistemas operativos y los sistemas utilitarios. Los sistemas de aplicacin son aquellos que interactan con el usuario, permitindole realizar distintas funciones en el computador o equipo tecnolgico que est utilizando. Entre ellos se pueden mencionar los sistemas de ofimtica (v.g. LibreOffice y MS Office), para el manejo de imgenes (v.g. InkScape y Adobe PhotoShop), para aplicaciones cientficas (e.g. Octave y Matlab), que permiten al usuario realizar diferentes tareas, segn su propsito. Los sistemas operativos son aquellos que permiten que los sistemas de aplicacin puedan ser ejecutados. En los computadores actuales normalmente se puede encontrar a Unix, Solaris, Linux, Windows, Irix, FreeBsd, etc.. Los sistemas utilitarios son programas adicionales que ayudan a la interconexin interna entre programas de aplicacin o dispositivos externos, y un sistema operativo. Algunos ejemplos de ellos son: drivers, codecs de video, bibliotecas dinmicas (DLLs), entre otros.
Lenguajes de programacin
Como hemos visto, los computadores operan con unidades digitales binarias. Es decir, todo es almacenado y manejado en forma de ceros y unos. Desde luego, esto resulta muy difcil de comprender y manejar para las personas, por lo que existen lenguajes que buscan acercarse un poco ms a la forma en que nosotros nos comunicamos. En la enseanza bsica y media, todos aprendemos que los lenguajes, como el espaol o el ingls, tienen una estructura y un conjunto de normas para poder expresarnos adecuadamente. Los lenguajes de programacin tambin son, como su nombre lo indica, lenguajes, aunque su finalidad no es facilitar la comunicacin entre personas, sino permitir que los seres humanos puedan interactuar con mquinas, y tienen diversas reglas que permiten escribir correctamente sentencias y bloques, que corresponden respectivamente a las ideas de oraciones y prrafos del espaol. Los siguientes prrafos describen los tipos de reglas que encontramos normalmente en los lenguajes de programacin. Reglas lxicas que establecen cmo debe ser escrita cada palabra del programa. Por ejemplo, en muchos lenguajes los nombres deben comenzar con una letra, aunque puedan contener tambin dgitos. Reglas sintcticas que determinan cmo debe ser la estructura de un programa. Vale decir, cmo se deben ordenar las palabras en una sentencia o las sentencias en un bloque. Por ejemplo, si en matemticas decimos c = a + b estamos indicando claramente que el valor c corresponde a la suma de los valores de a y de b, mientras que si escribimos c b = a + no se entiende! Reglas semnticas que comprueban que cada palabra presente en una sentencia tenga sentido de acuerdo a su contexto. Por ejemplo, la sentencia c = b + a es sintcticamente correcta. Pero qu pasa si c e b son nmeros y a es una palabra? Ser posible hacer esa suma? Algunos lenguajes de programacin son ms cercanos a nosotros que otros, por lo que podemos hablar de lenguajes de bajo y alto nivel. Pregunta 4 Identifique si las sentencias presentadas a continuacin presentan errores e indique a que regla pertenece el error: 1. 2. 3. 4. Los lenguajes de programacin ayudan a aprehender. Profesora, fui maana al circo. Maana hay control de clculo. Asados lloviendo est patos. 6
5. 6. 7. 8.
El burro de mi primo se perdi. Envitastes las tareas al profesor. Comida china para servir y llevar. El perro est durmiendo en el sof
www.retrogames.cl/cap4.html
lenguajes nos proporcionan diversos mecanismos de abstraccin que nos permiten crear programas de manera ms clara para nosotros. El ejemplo 5 muestra un fragmento de un programa escrito en el lenguaje de programacin de alto nivel Pascal que, al igual que el ejemplo 4, muestra la palabra HOLA en pantalla 2. Se puede observar que la terminologa es bastante ms comprensible al ser ms cercana al idioma ingls, y tambin que los elementos estn organizados de un modo jerrquico. Ejemplo 5
1 2 3 4 program helloworld; begin writeln(HOLA) end.
Por supuesto, estos lenguajes tambin tienen sus desventajas: necesitan ser traducidos al lenguaje de mquina y a veces no son tan eficientes como los de bajo nivel en el uso de recursos.
rosettacode.org/wiki/Hello_world#Pascal
Compiladores e intrpretes Hemos hablado de lenguajes de alto nivel y de bajo nivel, que deben ser traducidos al lenguaje de la mquina para que puedan ser ejecutados. Esto quiere decir que necesitamos algn mecanismo que nos permita llevar nuestro programa al lenguaje binario del computador, ocupando nicamente las instrucciones disponibles. El primer mecanismo a considerar es el compilador. Esta herramienta lee un programa escrito en un lenguaje fuente (o sea, el lenguaje que ocup el programador) y revisa que no contenga errores lxicos, sintcticos o semnticos. Si hay errores, notifica al programador. En caso contrario, crea un nuevo programa equivalente escrito en lenguaje objeto, generalmente el lenguaje de la mquina (en Windows, este programa equivalente corresponde al archivo ejecutable). Una de las grandes ventajas de este esquema es que logra que la ejecucin del programa sea ms rpida al no tener que hacer la revisin y la traduccin cada vez que queramos usarlo. Sin embargo, tiene la desventaja de que el programa compilado no sirve en cualquier mquina. El segundo mecanismo es el intrprete. En este caso no se crea un programa equivalente que pueda ser reutilizado, sino que se van tomando una a una las sentencias escritas en lenguaje fuente, en forma secuencial, para revisarlas y traducirlas al lenguaje de mquina. Una vez traducida una sentencia, esta es ejecutada y la traduccin se descarta. Se puede concluir que, con este enfoque, la ejecucin de un programa es ms lenta porque debemos esperar la traduccin cada vez que queramos usar el programa. Sin embargo, basta con que una mquina tenga el intrprete del lenguaje empleado para poder ejecutarlo, sin necesidad de hacer modificaciones.
Por lo que si instalas una versin diferente y los ejemplos no funcionan como los apuntes indican, es de tu exclusiva responsabilidad, y puede significar incluso que tus programas no funcionen y se te califique con menor nota. Se eligi esta versin de Python debido a que es estable, cercana al lenguaje natural y existen diversos recursos en la web que pueden apoyar las prcticas fuera del aula, a diferencia de las versiones ms recientes.
Una vez que tengas el archivo, comenzaremos a instalarlo como cualquier otro programa, es decir, haciendo doble clic sobre el ejecutable, lo que nos llevar a la pantalla que se muestra en la figura 2.
Seleccionaremos el directorio en el que queremos que se instale Python y luego presionamos Next >, a continuacin veremos la pantalla de personalizacin de la instalacin de Python, en la cual podremos indicar que mdulos de Python queremos que se instalen, se recomienda, debido a su peso, instalar todo directamente para evitar tener que volver a cargar mdulos de nuevo, esto se realiza seleccionando en Python, la opcin Entire feature will be instaled on local hard drive, como se muestra en la figura 3., seleccionamos esta opcin y volvemos a pulsar Next >.
10
Esperamos unos minutos, en los que se nos mostrar el progreso de la instalacin, como se muestra en la figura 4.
Finalmente, si la instalacin ha sido exitosa, deberamos ver la pantalla que se muestra en la figura 5, con esto pulsamos Finish y terminamos exitosamente la instalacin del intrprete de Python.
11
Tarea
Si tienes un equipo para practicar en tu hogar, instala el intrprete de Python 2.6 bajndolo desde internet y prubalo como se indica a continuacin.
Una vez realizada la instalacin, probaremos si esta ha sido exitosa, para ello iremos a Inicio Todos los programas y buscaremos entre el listado de programas la carpeta Python 2.6 y abriremos ah el programa llamado Python (command line), deberamos ver una pantalla negra con letras blancas con las primeras lneas del ejemplo 6, y deberamos ver una lnea horizontal parpadeante inmediatamente despus del signo >>>, como se muestra en la figura 6.
12
En ella escribiremos print HOLA", y presionaremos enter, ahora la pantalla debera tener el mismo texto presentado en el ejemplo 6, es decir, el computador debera haber respondido HOLA, como se le solicit con el comando, si lo hizo, lo hemos logrado, se ha instalado el intrprete de Python correctamente y has escrito tu primera lnea de cdigo en Python, conocida en el mundo de la informtica como HOLA MUNDO. Felicitaciones! Forma alternativa de ejecutar el intrprete Es posible ejecutar el intrprete de Python directamente desde la consola de Windows, esto se realiza abriendo la consola con el comando cmd en la barra de bsqueda de programas de Windows Vista y 7 o en la opcin ejecutar en el men de inicio de Windows XP y versiones anteriores. Al abrir la ventana de comandos, nos muestra la consola de Windows, y debemos navegar en ella con los comandos cd .. y cd <Nombre del Directorio> hasta encontrar la carpeta de Python, llamada comnmente Python26, una vez all, tipeamos Python presionamos la tecla enter y la consola de Windows funcionar como el intrprete de Python.
13