1.1. La multiplicidad de aplicaciones Las aplicaciones del ordenador son numerosas. He aquí algunos ejemplos: • Acceso a internet; • Envío de correo electrónico; • Creación de sitios Web; • Lectura de CD-ROM o de DVD; • Archivo y retoque de fotos; • Videojuegos; • Ofimática: tratamiento de texto, gestión de bases de datos…; • Gestión y contabilidad: facturación, pago, stocks…; • Análisis numérico; • Previsiones meteorológicas; • Ayuda a la concepción electrónica o grafica; • Pilotaje de satélites… 1.2. El programa Si un ordenador puede efectuar todas las tareas mencionadas anteriormente, y otras muchas más, es esencialmente porque es posible programarlo. Un programa está constituido por un conjunto de directivas, llamadas instrucciones, que especifican: • Las operaciones elementales a ejecutar, • La manera en la que están vinculadas. En definitiva, la rapidez de ejecución de un ordenador da su potencia; el programa le da la flexibilidad. 1.3. Los datos del programa, los resultados Supongamos que un profesor dispone de un ordenador y de un programa de calculo de la media de las notas. Para funcionar, ese programa necesita que le proporcionemos las notas las cuales buscamos la media. Las llamaremos informaciones dadas o más simplemente datos. De vuelta, el programa va a proporcionar la media buscada. Lo llamaremos información resultante o simplemente resultado. Si el programa ha sido previsto para ello, puede proporcionar otros resultados como el número de notas superiores a 10. 1.4. Comunicación o archivado Los datos son comunicados al programa por el utilizador; los resultados son comunicados al utilizador por el programa.
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 1
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
. En cambio, los datos no son siempre proporcionados por manualmente. Por
ejemplo, en el caso del programa de pago, es probable que algunas informaciones relativamente permanentes (nombres, números de seguridad social,) habrán sido previamente archivadas en un archivo o en una base de datos. El programa accederá a ellos directamente. Notaremos, a propósito de las bases de datos, que las informaciones que contienen deberán haber sido previamente archivadas por otros programas los cuales esas bases de datos constituían los resultados. Eso nos muestra la relatividad de la noción de dato o de resultado. Una misma información puede ser dato o resultado dependiendo del uso que la damos. 2 La codificación 2.1. El ordenador codifica la información Por razones puramente tecnológicas el ordenador no puede tratar o manipular que una información expresada en forma binaria. Esa información se imagina como una sucesión de 0 y de 1, pero podría utilizar cualquier pareja de símbolos (circulo blanco y circulo negro, bombilla iluminada y bombilla apagada). Cuando transmitimos información al ordenador, por ejemplo, tecleando es necesario que se transforme en binario. Diremos que realiza una codificación binaria de esa información. De la misma manera, antes de proporcionar un resultado, deberá operar una transformación simétrica. 2.2. El hombre codifica la información No solo el ordenador codifica la información. Por ejemplo, consideremos esta pequeña frase: 13, trece, has dicho XIII Podemos constatar que el mismo valor aparece expresado de tres formas diferentes: 13 trece XIII La primera forma se expresa con dos símbolos, cada uno siendo elegido entre las cifras de 0 a 9. Decimos que hemos utilizado dos posiciones de un código de diez momentos (las diez cifras 0,1,2…9). La segunda forma se expresa con seis símbolos (letras), cada uno elegido entre las veintiséis letras del alfabeto. Decimos que usamos seis posiciones de un código a veintiséis momentos. La última forma se expresa con cuatro posiciones de un código de siete momentos (las letras
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 2
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
representando los números romanos: I, V, X, L, C, M y D).
En cuanto a los códigos binarios utilizados por la computadora, son simplemente códigos de dos momentos ya que dos símbolos son suficientes para expresar información binaria. La elección de estos dos símbolos es puramente convencional; por lo general se usan ambos primeros dígitos de nuestro sistema decimal. De este modo: 10011010 representa información binaria utilizando ocho posiciones. Cada posición lleva el nombre de bit, término que es por lo tanto el equivalente, para códigos binarios, de los términos dígitos o letras utilizado por los códigos encontrados anteriormente. 2.3. Lo que diferencia al hombre del ordenador En definitiva, se puede decir que el ordenador y el hombre difieren en su manera de representar la información ya que el ordenador solo conoce el binario, mientras el hombre es capaz de utilizar una gran variedad de códigos. En definitiva, vemos que el ordenador codifica la información, el hombre actúa de la misma manera. En cambio, podríamos decir que el ordenador “codifica mas” que el hombre; en efecto, no es posible atribuir un sentido a una sola vista de una información binaria. 3 Funcionamiento del ordenador 3.1. Cada uno con su rol Hemos visto que una computadora: • procesa información usando un programa que memoriza; • comunica y archiva información. Estas diferentes funciones en realidad corresponden a tres constituyentes diferentes: • Memoria central, que almacena programas durante el tiempo que sea necesario en su ejecución. También contiene información temporal manejada por estos programas: datos después de su introducción, resultados antes de su comunicación a fuera, información intermedia que aparece durante el curso de un programa. • La unidad central, que es la parte activa del ordenador. Se encarga de tomar de memoria, una por una, cada instrucción del programa y ejecutarlo. Podemos distinguir entre dos tipos de instrucciones: – Las que actúan sobre información ubicada en la memoria central; ellos son los que permiten verdaderamente llevar a cabo el tratamiento esperado.
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 3
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
– Las que aseguran la comunicación o archivo de información; realizan
un intercambio de información entre la memoria central y otros dispositivos denominados dispositivos periféricos. • Periféricos, que corresponden a todos los dispositivos susceptibles de intercambiar información con la memoria central. Se pueden distinguir dos tipos: – los que aseguran la comunicación entre el hombre y la computadora: teclado, pantalla, impresora, ratón... – los que aseguran el archivo de la información: disco duro, disquete, CD-ROM, DVD, cintas magnéticas... 4 Lenguaje informático 4.1. Lenguaje máquina o lenguaje propio Como hemos visto, la computadora solo puede realizar un número limitado de operaciones elementales, dictadas por instrucciones de programa y codificada en binario. Traducimos esto diciendo que la computadora solo "entiende" el lenguaje de máquina. Pero esto no significa que deba llevarse a cabo ningún programa en este lenguaje de máquina. En efecto, y aquí es donde se encuentra la segunda idea fundamental de computación (después de la del programa grabado), a saber: usar la computadora misma (o, más precisamente, un programa) para realizar la traducción del lenguaje utilizado en el de la computadora. 4.2. En lenguaje ensamblador Supongamos, de manera algo simplificada, que estamos en presencia de una computadora para la cual instrucción de la máquina: 0101010011011010 significa: sumar (código de operación 0101) los valores ubicados en las direcciones 010011 y 011010. Podemos optar por expresar esto de una forma un poco más elocuente, por ejemplo: ADD A, B Para hacer esto, todo lo que necesita es un programa capaz de convertir el símbolo ADD en 0101 y reemplazar los símbolos A y B por direcciones binarias (aquí 010011 y 011010). Todos los fabricantes pueden proporcionar a su ordenador un programa capaz de traducir un lenguaje del tipo que acabamos de mencionar. Tal lenguaje se llama
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 4
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
lenguaje ensamblador o ensamblador. El programa de traducción correspondiente
también llamado ensamblador. Ambos lenguajes (lenguaje ensamblador y máquina) tienen prácticamente las mismas instrucciones; sólo difiere la forma de expresarlos. En cualquier caso, el uso del ensamblador requiere un buen conocimiento del funcionamiento de la computadora utilizada.
Ilustración 1 Lenguaje de máquina del Intel 8088. El código de máquina en
hexadecimal se en rojo, el equivalente en lenguaje ensamblador en magenta, y las direcciones de memoria donde se encuentra el código, en azul. Abajo se ve un texto en hexadecimal y ASCII. 4.3. Lenguaje de alto nivel Muy pronto apareció el interés por definir lenguajes generales utilizables en cualquier informático y orientado a los problemas, es decir, permitir a los usuarios pensar más en su problema que en la máquina. Así han aparecido muchos lenguajes que han sido calificados como avanzados. En este momento, podemos ver el valor de un lenguaje de alto nivel mirando la siguiente instrucción: Y=A*X+2*B+C Su significado es casi obvio: a partir de los valores contenidos en las cajas llamadas A, X, B y C, calculamos el valor de la expresión aritmética A*X + 2*B + C (el símbolo * representa una multiplicación), luego almacene el resultado en la ubicación llamada y. Como es de imaginar, el mismo trabajo requeriría muchas operaciones. en lenguaje máquina (o en ensamblador), por ejemplo: toma el valor de A, multiplícalo por el de X, almacenar el resultado en una ubicación temporal, tomar el valor de B, el multiplicar por 2, sumar el valor provisional anterior, sumar el valor de C y, finalmente, guardar el resultado final en Y. Por supuesto, cualquiera que sea el lenguaje avanzado utilizado, es necesario, aquí nuevamente, realizar por programa, la traducción en lenguaje máquina. Hay dos técnicas principales para esto: compilación e interpretación.
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 5
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
La compilación consiste en traducir globalmente todo el programa en un lenguaje
de alto nivel (que a menudo se llama un programa fuente) a un programa en lenguaje de máquina (que es a menudo llamado programa objeto), usando un programa llamado compilador. Si la traducción se realizó sin errores, el programa objeto se puede ejecutar colocándolo en memoria, tantas veces como se desee, sin tener que recurrir de nuevo al compilador. La interpretación consiste en traducir cada instrucción del programa fuente, antes de ejecutarlo, usando un programa llamado intérprete. En este caso, ya no existe el programa objeto completo y, en un momento dado, encontramos en la memoria tanto el programa fuente y el programa intérprete. Cabe señalar que el compilador, al igual que el intérprete, depende no solo del lenguaje en cuestión, sino también el tipo de ordenador para el que se realiza la traducción. 5 Conceptos básicos de los lenguajes de alto nivel Cada lenguaje tiene: • las llamadas instrucciones de asignación: permiten calcular el valor de una expresión y almacenarlo en una variable; • instrucciones para intercambiar información entre la memoria y los periféricos (ya sea para comunicación o archivo); estamos hablando de instrucciones: – lectura, cuando se produce el intercambio del periférico a la memoria, – escritura, cuando se produce el intercambio de la memoria al periférico. Otros conceptos, más teóricos, han sido inventados por el hombre para facilitar la actividad de programación. Este es particularmente el caso de las llamadas estructuras de control, estructuras de datos, funciones (o procedimientos) y, más recientemente, objetos. Las estructuras de control se utilizan para especificar cómo deben encadenarse las instrucciones de un programa. En particular, permiten expresar las repeticiones y las elecciones: hablamos entonces de una estructura de elección o una estructura de repetición. Estructuras de datos (cuidado, aquí la palabra datos se usa en el sentido general de información) se utilizan para representar mejor la información que debe ser manipulada por un programa. Este es el caso de la noción de tabla en la que un solo nombre permite designar una lista ordenada de valores, cada valor siendo identificado por un número llamado índice.
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 6
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
La función (o procedimiento) se utiliza para dar un nombre a un conjunto de
instrucciones que se vuelve posible usar a voluntad, sin tener que escribirlos varias veces. Como en el caso de una función matemática, estas instrucciones se pueden parametrizar, de forma que se puedan utilizarse varias veces con diferentes variables, llamadas parámetros. El buen uso de las funciones permite estructurar un programa descomponiéndolo en diferentes unidades relativamente independientes. Las nociones de objeto y clase son los pilares de la programación orientada a objetos. Un mismo objeto agrupa, a la vez, datos y funciones (entonces llamados métodos); solo estos los métodos están autorizados a acceder a los datos del objeto en cuestión. La clase generaliza a los objetos la noción de tipo de variables. Define las características de los objetos que tienen la misma estructura de datos y mismos métodos. 6 Programación La actividad de programar consiste, en última instancia, en realizar un programa (o una parte de un programa, por ejemplo, una función) para resolver un problema dado o satisfacer una necesidad dada. Dada la multiplicidad de lenguajes existentes, existen diferentes maneras de abordar esta actividad. Un primer paso consiste en estudiar la sintaxis precisa de un lenguaje dado y luego usar este lenguaje para escribir el programa deseado. Esto sugiere que hay tantas maneras de resolver el problema como diferentes lenguajes. Otro enfoque consiste en explotar el hecho de que la mayoría de los lenguajes se basan en principios comunes como los que acabamos de mencionar y que luego pueden ser utilizados para resolver el problema dado. 7 Concepto de sistema operativo y entorno de programación Para usar un programa, cualquiera que sea, debe estar presente en la memoria principal. Pero, a priori, los programas, como los datos, se guardan en un dispositivo de archivo como el disco duro (recordemos que la memoria central es de tamaño limitado y, sobre todo, volátil). Para traer un programa a la memoria central, usamos lo que se llama el sistema operativo. Este último no es más que un conjunto de programas, almacenados en el disco, parte del cual (a menudo llamado residente) se carga automáticamente en la memoria cuando su computadora se inicia. Esta parte residente le permite dialogar con el ordenador, utilizando el teclado y el ratón, gestionando adecuadamente sus solicitudes. Tenga en cuenta que cuando creamos un programa en un lenguaje determinado, utilizamos un determinado tipo de computadora, un determinado sistema
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 7
CAPITULO I: ORDENADOR, PROGRAMA Y LENGUAJE
operativo (puede haber varios para el mismo modelo de computadora), un
compilador determinado (pueden existir muchos para un mismo lenguaje utilizado en la misma computadora, con el mismo sistema). También es común que usemos lo que se llama un entorno de desarrollo integrado, es decir, software que le facilita escribir y depurar un programa utilizando herramientas más o menos sofisticadas: editor de sintaxis que le permite ingresar el texto de su programa resaltando su estructura; depurador que te permite seguir el progreso de tu programa paso a paso visualizando los valores de las variables... En ocasiones hablaremos de entorno de programación para designar este conjunto formado por el ordenador, el sistema, el lenguaje y el compilador utilizado (o el entorno de desarrollo integrado elegido).
FORTUNATO CLEMENTE ESENG BILOGO| CURSO DE FUNDAMENTOS DE PROGRAMACIÓN 8