¿Qué es un programa

Anuncio
¿Qué es un programa?
Una pequeña introducción a los lenguajes de alto nivel
Por Mario Macías
A menudo, las personas sin nociones de programación son bastante reacias a comprender un
concepto tan sencillo. Sin darnos cuenta, cada día estamos haciendo cosas similares a programar. Si
no se lo creen, imaginen la siguiente situación: una ama de casa envía a su hijo a hacer las compras
del día, para ello le indica: "Primero, ves a la panadería y compra 3 barras de cuarto. Luego ves a la
charcutería y compra 100 gramos de chorizo. Si no queda chorizo, compra 100 gramos de jamón".
De la misma manera que se puede indicar a una persona qué es lo que debe hacer se puede indicar a
un ordenador cómo es el programa que debe ejecutar. Un ordenador no comprende el lenguaje
humano, por lo que no le podemos decir cómo actuar al estilo de "Abre una ventana con dos
botones..." porque no nos comprenderá.
El lenguaje del ordenador es algo más complejo; consta de largas cadenas de ceros y unos que
eléctricamente determinan cómo deben comportarse sus circuitos. ¡Pero no se asuste! Usted no debe
preocuparse si se cree incapaz de aprender el lenguaje de su computador, por que nadie (o casi
nadie) es capaz de hacerlo. Para escribir programas se utilizan los lenguajes de alto nivel: lenguajes
formales que describen al computador la manera ordenada de ejecutar los programas. Una vez
escritos los programas, un programa se encargará de traducir este lenguaje al código binario
(cadenas de 0 y 1 que sí entiende el computador). Como ejemplo, podríamos traducir a un lenguaje
de alto nivel las órdenes que da la madre a su hijo en el ejemplo anterior:
programa compras
inicio
ir a panadería
comprar 3 barras de cuarto
ir a charcutería
si hay chorizo
comprar 100 gramos de chorizo
si no
comprar 100 gramos de jamón
fin si
final programa
Para escribir un código en un lenguaje de alto nivel se pueden utilizar diferentes lenguajes, cada uno
con sus ventajas y desventajas, sus usos y sus desusos. El ejemplo anterior no está escrito en ningún
lenguaje en concreto, es un pseudocódigo utilizado para comprender de manera simplificada la
estructura de un programa
A continuación se describirán algunos de los lenguajes de alto nivel más utilizados y algunas de sus
características:
•
FORTRAN: uno de los primeros lenguajes de alto nivel. Como su nombre indica
(FORmule TRANslator), su finalidad es el cálculo de funciones matemáticas mediante el
computador.
•
LOGO: lenguaje muy sencillo, creado para enseñar a los niños en las escuelas los
fundamentos de la programación de ordenadores. Se podría decir de él que, más que
lenguaje, es un "juguete".
•
LISP: lenguaje de procesado de listas. Es un poco lento y complejo, pero es muy utilizado
en el campo de la inteligencia artificial y en ámbitos académicos.
•
BASIC: Sencillo lenguaje cuya principal finalidad fue la iniciación a la programación. En
los 60 y 70 tuvo un gran éxito en las universidades, y todavía hoy se siguen utilizando
extensiones de este lenguaje incluso en ámbitos profesionales (es probable que haya oído
hablar alguna vez de Visual Basic).
•
Pascal: lenguaje creado en los años 60 con la finalidad de ser un lenguaje modular, es decir,
se puede dividir en partes diferenciadas, cada una de las cuales tiene una función concreta.
Durante mucho tiempo fue muy utilizado en ámbitos académicos.
•
C: Lenguaje creado en los 70 por Kernigham y Ritchie en los laboratorios Bell de AT&T.
Se creó especialmente para desarrollar el sistema operativo UNIX. Mucha gente, la primera
impresión que se lleva es que es "como Pascal pero más feo y difícil"; nada más lejos de la
realidad. Este es el lenguaje que aprenderemos a utilizar en este libro, y a lo largo de éste
iremos viendo las inmensas posibilidades y la gran potencia que nos ofrece el lenguaje C,
que van mucho más allá que las de Pascal.
•
C++: Ampliación de C, creada a finales de los 80 por Bjarne Stroupstroup. Se añaden
algunos conceptos nuevos como flujos de datos, excepciones y orientación a objeto,
términos que no explicaremos por que escapan del objetivo de este libro.
•
Java: Es de características similares a C++. La gran novedad es que el código no se traduce
al lenguaje que entiende su computador, sino que se traduce al lenguaje de una máquina
imaginaria (la Máquina Virtual de Java), y esta máquina, a su vez, le dice a su ordenador
qué es lo que debe hacer. La ventaja de esto es que usted puede crear una aplicación que
pueda ejecutarse en cualquier ordenador o página WEB; la desventaja es que su programa
irá del orden de unas 10-20 veces más lento que si lo hubiera hecho en C o C++.
A la hora de escoger un lenguaje, a parte de las características del mismo, hay que tener en cuenta si
se trata de un lenguaje compilado o interpretado. Un lenguaje interpretado necesitará de un
intérprete cada vez que queramos ejecutarlo, que vaya leyendo nuestro programa paso a paso y
diciendo al computador qué es lo que debe hacer. Un lenguaje compilado traducirá, en cambio, el
programa al lenguaje del computador una sola vez, y cada vez que queramos ejecutar el programa,
lo ejecutaremos directamente en código que entienda el computador, por lo que el programa será
más rápido. Para entenderlo mejor, se podría hacer la siguiente analogía con la realidad: imagínese
usted que quiere escribir una carta a una persona que vive en Pekín, pero usted no sabe chino ni él
sabe español. Tiene, pues, dos alternativas: enviarle la carta en español y que él, cada vez que
quiera leerla, necesite de los servicios de un intérprete que le vaya traduciendo a medida que lee;
otra alternativa es que usted busque a alguien que le traduzca la carta al Chino y se la envía en dicho
lenguaje, por lo que el destinatario podrá leerla sin problemas tantas veces como le plazca. Si usted
es el programador y la persona de China es un computador, usted ya habrá caído en que la primera
opción es el equivalente a la de interpretar un programa y que la segunda opción equivale a
compilarlo.
Como se ha dicho antes, en este libro usted aprenderá a programar en C, que es un lenguaje modular
y compilado, por lo que usted podrá escribir programas con gran facilidad y, una vez compilados,
ejecutarlos a una gran velocidad.
Nuestro primer programa en C
Observe el siguiente programa en C. Si compilásemos este programa no habría que incluir los
números de línea, pero en la parte de los ejemplos numeraremos cada línea del programa para
facilitar la explicación del mismo. No se preocupe si no entiende la mayor parte del programa, esto
es sólo un ejemplo; cuando haya leído unos cuantos capítulos más, seguro que lo entenderá
perfectamente:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#include<stdio.h>
int main(void)
{
char nombre[15];
printf(“Dime tu nombre: “);
scanf(“%s”,nombre);
printf(“Encantado de conocerte, %s!\n”,nombre);
return 0;
}
Este programa nos pedirá mediante un mensaje de texto nuestro nombre, y una vez se lo hayamos
introducido nos mostrará un mensaje de saludo tal y como se puede ver a continuación:
> Dime tu nombre: Pedro
> Encantado de conocerte, Pedro!
Ahora que no conoce nada del lenguaje C podrá parecerle un tanto incomprensible el programa de
muestra, por eso a continuación describiremos línea a línea las funciones que realiza el programa:
•
Línea 1. Incluye la librería que utilizará el programa. Por ahora no necesita saber qué es una
librería, sólo debe saber que las órdenes printf y scanf necesitan que se incluya la librería
stdio para poder funcionar. Habrá otras órdenes que necesiten otras librerías, como stdlib,
windows, allegro, etc... pero no se preocupe, que en este libro le iremos indicando las
librerías que deberá incluir.
•
Línea 3. Indica que es el comienzo de la función principal (main). En otras palabras, es el
inicio del programa. Más adelante conocerá todo lo referente a funciones.
•
Líneas 4 y 10. Los símbolos { y } marcan respectivamente el inicio y el fin de la función
principal. Otras veces se utilizan para delimitar otras partes del programa que más adelante
mostraremos.
•
Línea 5. Indica que se va a utilizar un pequeño espacio en memoria de 15 letras para guardar
el nombre. El nombre que le hemos puesto es, lógicamente, nombre. Aunque podría haberse
llamado de cualquier otra manera.
•
Línea 6. Se indica que muestre por pantalla el mensaje escrito entre comillas y paréntesis.
•
Línea 7. Indica que mediante el teclado escribiremos algo, y que lo guarde en el espacio
llamado nombre. El %s indica que lo que escribimos es un texto.
•
Línea 8. Muestra por pantalla el saludo, hemos añadido al mensaje el símbolo %s y fuera de
las comillas el espacio nombre. Esto quiere decir que donde va %s hay que substituirlo por
lo que hay en nombre. En este caso, el nombre introducido por el teclado.
•
Línea 9. Aquí return 0 indica que se ha acabado el programa sin ningún problema. Si se
substituyera por return -1 estaríamos indicando al Sistema Operativo (por ejemplo,
Windows) que ha habido algún error durante el programa.
Como apunte final, debe saber que C hace distinción entre mayúsculas y minúsculas, por tanto, si
escribimos "Return" el compilador nos dará error, ya que la manera correcta es "return"; o un
espacio de memoria llamado "Nombre" no será el mismo que uno llamado "nombre" o que uno
llamado "NoMbRe".
Observar también que cada instrucción y definición debe acabar en punto y coma (;) para indicar el
final de ésta. No deben llevar punto y coma los símbolos { y }, la definición del programa principal
(main), ni las líneas para incluir librerías.
¿Qué ha aprendido?
En este capítulo se le ha mostrado la filosofía de la programación, concretamente la programación
en lenguajes de alto nivel. Se le ha enumerado las características de algunos lenguajes y se le ha
explicado la diferencia entre lenguaje compilado y lenguaje interpretado. Todo esto se ha
completado con un sencillo ejemplo de programa en lenguaje C, explicado paso a paso, con tal de
mostrarle la estructura básica de un programa.
Descargar