Hay distintos lenguajes que nos permiten dar instrucciones a un ordenador (un programa de ordenador es b�sicamente eso: un conjunto de �rdenes para un ordenador).
El lenguaje m�s directo es el propio del ordenador, llamado “lenguaje de m�quina” o “c�digo m�quina“, formado por secuencias de ceros y unos. Este lenguaje es muy poco intuitivo para nosotros, y dif�cil de usar. Por ello se recurre a otros lenguajes m�s avanzados, m�s cercanos al propio lenguaje humano (lenguajes de alto nivel), y es entonces el mismo ordenador el que se encarga de convertirlo a algo que pueda manejar directamente.
Se puede distinguir dos tipos de lenguajes, seg�n se realice esta conversi�n:
- En los int�rpretes, cada instrucci�n que contiene el programa se va convirtiendo a c�digo m�quina antes de ejecutarla, lo que hace que sean m�s lentos (a cambio, los int�rpretes suelen ser m�s f�ciles de crear, lo que permite que sean baratos y que puedan funcionar en ordenadores con menor potencia).
- En los compiladores, se convierte todo el programa en bloque a c�digo m�quina y despu�s se ejecuta. As�, hay que esperar m�s que en un int�rprete para comenzar a ver trabajar el programa, pero despu�s �ste funciona mucho m�s r�pido (a cambio, los compiladores son m�s caros y suelen requerir ordenadores m�s potentes).
Hay lenguajes para los que s�lo hay disponibles int�rpretes, otros para los que s�lo existen compiladores, y otros en los que se puede elegir entre ambos. La mayor�a de los lenguajes actuales son compilados, y el entorno de desarrollo suele incluir:
- Un editor para escribir o revisar los programas.
- El compilador propiamente dicho, que los convierte a c�digo m�quina.
- Otros m�dulos auxiliares, como enlazadores (linkers) para unir distintos subprogramas, y depuradores (debuggers) para ayudar a descubrir errores.
Es cada vez m�s frecuente que todos estos pasos se puedan dar desde un �nico “entorno integrado”.
Por ejemplo, el entorno de Turbo Pascal tiene la siguiente apariencia:
Algunos de los lenguajes m�s difundidos son:
- FORTRAN, concebido para ingenier�a, operaciones matem�ticas, etc. Tambi�n va quedando desplazado.
- Ensamblador, muy cercano al c�digo m�quina (es un lenguaje de “bajo nivel”), pero sustituye las secuencias de ceros y unos (bits) por palabras m�s f�ciles de recordar, como MOV, ADD, CALL o JMP.
- C, uno de los mejor considerados actualmente (junto con C++ y Java, que mencionaremos a continuaci�n), porque no es demasiado dif�cil de aprender y permite un grado de control del ordenador muy alto, combinando caracter�sticas de lenguajes de alto y bajo nivel. Adem�s, es muy transportable: existe un est�ndar, el ANSI C, lo que asegura que se pueden convertir programas en C de un ordenador a otro o de un sistema operativo a otro con bastante menos esfuerzo que en otros lenguajes.
- C++, un lenguaje desarrollado a partir de C, que permite Programaci�n Orientada a Objetos, por lo que resulta m�s adecuado para proyectos de una cierta envergadura.
- PASCAL, el lenguaje estructurado por excelencia (ya se ir� viendo qu� es esto m�s adelante), y que en algunas versiones tiene una potencia comparable a la del lenguaje C, como es el caso de Turbo Pascal en programaci�n para DOS y de Delphi en la programaci�n para Windows. Frente al C tiene el inconveniente de que es menos portable, y la ventaja de que en el caso concreto de la programaci�n para DOS, Turbo Pascal no tiene nada que envidiar la mayor�a de versiones del lenguaje C en cuanto a potencia, y adem�s resulta m�s f�cil de aprender, es muy r�pido, crea ficheros EXE m�s peque�os, etc., mientras que en la programaci�n para Windows, Delphi es una muy buena herramienta para crear aplicaciones de calidad en un tiempo razonablemente breve.
Dos conceptos que se mencionan mucho al hablar de programaci�n son “programaci�n estructurada” y “programaci�n orientada a objetos”.
La programaci�n estructurada consiste en dotar al programa de un cierto orden, dividi�ndolo en bloques independientes unos de otros, que se encargan de cada una de las tareas necesarias. Esto hace un programa m�s f�cil de leer y modificar.
La programaci�n orientada a objetos se tratar� m�s adelante, cuando ya se tenga una buena base de programaci�n “convencional”. Como simple comentario, para que vayan sonando las cosas a conocidas, dir� que “Objects Pascal” es el nombre que se suele dar a un lenguaje Pascal que permita programaci�n orientada a objetos (como es el caso de Turbo Pascal), y que “C++” es una ampliaci�n del lenguaje C, que tambi�n soporta P.O.O.
En lo que sigue vamos a ver los fundamentos de la programaci�n en Pascal, primero intentando ce�irnos al Pascal est�ndar, y luego ampliando con las mejoras que incluye Turbo Pascal, la versi�n m�s difundida.
Los primeros programas, los m�s sencillos, se podr�n compilar con cualquier versi�n del lenguaje Pascal (o casi), aunque la mayor�a de los m�s avanzados (los que incluyan manejo de gr�ficos, por ejemplo) estar�n creados pensando en el que posiblemente sea en estos momentos el compilador de Pascal m�s usado: Free Pascal, o bien en el cl�sico Turbo Pascal 7.0 para Dos.
Lo primero que llama la atenci�n es que casi todas las palabras est�n escritas en ingl�s. Esto ser� lo habitual: la gran mayor�a de las palabras clave de Pascal (palabras con un significado especial dentro del lenguaje) son palabras en ingl�s o abreviaturas de �stas.
En el lenguaje Pascal no existe distinci�n entre may�sculas y min�sculas, por lo que “BEGIN” har�a el mismo efecto que “begin” o “Begin”. As�, lo mejor ser� adoptar el convenio que a cada uno le resulte m�s legible: algunos autores emplean las �rdenes en may�sculas y el resto en min�sculas, otros todo en min�sculas, otros todo en min�sculas salvo las iniciales de cada palabra… Yo emplear� normalmente min�sculas, y a veces may�sculas y min�sculas combinadas cuando esto haga m�s legible alg�n comando “m�s enrevesado de lo habitual” (por ejemplo, si est�n formados por dos o m�s palabras inglesas como OutText o SetFillStyle.)
Otra cosa que puede extra�ar es eso de que algunas l�neas terminen con un punto y coma. Pues bien, cada sentencia (u orden) de Pascal debe terminar con un punto y coma (;), salvo el �ltimo “end”, que lo har� con un punto.
Tambi�n hay otras tres excepciones: no es necesario un punto y coma despu�s de un “begin”, ni antes de una palabra “end” o de un “until” (se ver� la funci�n de esta palabra clave m�s adelante), aunque no es mala t�cnica terminar siempre cada sentencia con un punto y coma, al menos hasta que se tenga bastante soltura.
Cuando definamos variables, tipos, constantes, etc., veremos que tampoco va punto y coma despu�s de las cabeceras de las declaraciones.
Comienza con la palabra program. Esta palabra no es necesaria en muchos compiladores, como Turbo Pascal o Surpas, pero s� lo era incialmente en Pascal est�ndar, y el formato era
program NombrePrograma (input, output);
Entre par�ntesis se escrib�a “input, output” para indicar que el programa iba a manejar los dispositivos de entrada y salida. Por ejemplo, como este programa escribe en la pantalla, si alguien usa una de las primeras versiones del Pascal de GNU, o alg�n otro compilador que siga estrictamente el Pascal est�ndar, deber� poner:
program Saludo(output);
Aunque para nosotros no sea necesario, su empleo puede resultar c�modo si se quiere poder recordar el objetivo del programa con s�lo un vistazo r�pido a su cabecera.
En algunos compiladores, puede que “nos rega�e” si la palabra que sigue a “program” es distinta del nombre que tiene el fichero (es el caso de las primeras versiones de Tmt Pascal Lite), pero normalmente el programa funcionar� a pesar de ello.
En nuestro caso, a nuestro programa lo hemos llamado “Saludo”. La palabra “Saludo” es un identificador. Los “identificadores” son palabras que usaremos para referirnos a una variable, una constante, el nombre de una funci�n o de un procedimiento, etc. Ya iremos viendo todos estos conceptos, pero s� vamos a anticipar un poco uno de ellos: una variable equivale a la cl�sica inc�gnita “x” que todos hemos usado en matem�ticas (eso espero), que puede tomar cualquier valor. Ahora nuestras “inc�gnitas” podr�n tener cualquier valor (no s�lo un n�mero: tambi�n podremos guardar textos, fichas sobre personas o libros, etc) y podr�n tener nombres m�s largos (y que expliquen mejor su contenido, no har� falta limitarnos a una �nica letra, como en el caso de “x”).
Estos nombres de “identificadores” ser�n combinaciones de letras (sin acentos) y n�meros, junto con algunos (pocos) s�mbolos especiales, como el de subrayado (_). No podr�n empezar con un n�mero, sino por un car�cter alfab�tico (A a Z, sin � ni acentos) o un subrayado, y no podr�n contener espacios.
Las palabras “begin” y “end” marcan el principio y el final del programa, que esta vez s�lo se compone de una l�nea. N�tese que, como se dijo, el �ltimo “end” debe terminar con un punto.
“Write” es la orden que permite escribir un texto en pantalla. El conjunto de todo lo que se desee escribir se indica entre par�ntesis. Cuando se trata de un texto que queremos que aparezca “tal cual”, �ste se encierra entre comillas.
El punto y coma que sigue a la orden “write” no es necesario (va justo antes de un “end”), pero tampoco es un error, y puede ser c�modo, porque si despu�s a�adimos otra orden entre “write” y “end”, ser�a dicha orden la que no necesitar�a el punto y coma (estar�a justo antes de “end”), pero s� que pasar�a a requerirlo el “write”.
La orden “write” aparece algo m�s a la derecha que el resto. Esto se llama escritura indentada, y consiste en escribir a la misma altura todos los comandos que se encuentran a un mismo nivel, algo m�s a la derecha los que est�n en un nivel inferior, y as� sucesivamente, buscando mayor legibilidad.
Los detalles concretos sobre c�mo probar este programa depender�n del compilador que se est� utilizando. Unos tendr�n un Entorno Integrado, desde el que escribir los programas y probarlos (como Free Pascal, Turbo Pascal y Surpas), mientras que en otros har� falta un editor para teclear los programas y el compilador para probarlos (como Tmt Lite) y otros no incluyen editor en la distribuci�n normal, pero es f�cil conseguir uno adaptado para ellos (es el caso de FPK y de Gnu Pascal).
Las variables son algo que no contiene un valor predeterminado, una posici�n de memoria a la que nosotros asignamos un nombre y en la que podremos almacenar datos. En el primer ejemplo que vimos, puede que no nos interese escribir siempre el mensaje “Hola”, sino uno m�s personalizado seg�n quien ejecute el programa. Podr�amos preguntar su nombre al usuario, guardarlo en una variable y despu�s escribirlo a continuaci�n de la palabra “Hola”, con lo que el programa quedar�a
program Saludo2;
var
nombre: string[20];
begin
writeln(‘Introduce tu nombre, por favor’);
readln(nombre);
write(‘Hola ‘,nombre);
end.
P�gina siguiente |