Programando por primera vez Antes de comenzar a programar es necesario ubicar un entorno que disponga de un compilador para el lenguaje en el que queremos programar. Un compilador es un programa que se encarga de traducir el código escrito en lenguaje máquina (por ejemplo un.exe de Windows), para que este luego pueda ser interpretado y ejecutado por un ordenador. En el caso de C, que es el lenguaje en el que programaremos, el compilador de llama gcc (Gnu Compiler Collection). Dado que el gcc pasa de una entrada de texto al lenguaje máquina, el código que se escribe ha de estar sintácticamente correcto (bien escrito), por esta razón si el compilador detecta un error (Pe: falta un ; ) mostrará un mensaje por pantalla y NO generará el ejecutable. Para facilitar el proceso de programación los alumnos de LaSalle disponen de un entorno preparado que ya contiene el compilador gcc. Dicho entorno, solo accesible por línea de comandos, se encuentra en los servidores cygnus.salle.url.edu o vela.salle.url.edu que son una máquina física de la escuela. Aunque en este documento se utilizará la máquina vela, es recomendable que los alumnos utilicéis cygnus. Para conectarnos con cygnus o vela utilizaremos un programa de conexión remota que utilice el protocolo ssh. Como ejemplo práctico en este documento hemos utilizado putty que se puede descargar desde: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. En la Figura 1 se muestra el archivo que se ha de descargar. Figura 1: Archivo a descargar Una vez realizada la descarga se han de seleccionar los parámetros para conectarse con el servidor. Dichos parámetros son: 1. Nombre del servidor: cygnus.salle.url.edu (o vela.salle.url.edu) 2. Puerto: 22 3. Tipo de conexión: ssh Una vez colocados los parámetros el programa tendía que verse de la siguiente forma:
Figura 2: Configuración de putty Una vez colocados los parámetros se ha de pulsar Open para abrir la conexión contra el servidor. Es posible que aparezca una advertencia, en dicho caso se ha de responder Yes para poder aceptar la conexión con el servidor. Llegados a este punto, el sistema pedirá un nombre de usuario y contraseña (que son los mismos que para conectarse al estudy). Si todo va bien en este momento estaréis en vuestra carpeta inicial (desde ahora denominada home) de vuestra cuenta. Por consiguiente si utilizáis comandos como: cd, ls, etc. Podréis navegar y mostrar las carpetas del sistema. A partir de este momento al lugar donde se escriben los comandos (mostrado como cygnus:~>) lo denominaremos Shell. El símbolo ~ indica que se está en la carpeta home, si se utiliza el comando cd este símbolo cambiará al nombre de la carpeta seleccionadora, indicado así que estáis dentro de una carpeta. Entorno Linux A partir de este momento se puede comenzar a programar. Como se ha comentado anteriormente para poder programar y escribir el código se necesitará un editor de texto, en nuestro caso VIM. El VIM es un editor de texto por línea de comandos, por lo tanto para poder utilizarlo correctamente tendremos que aprender un par de comandos básicos. Primero que nada vamos a crear un programa de ejemplo, así que tendremos que crear un nuevo fichero de texto. Para programar en C los ficheros que creemos han de tener extensión.c o.h (si son un fichero de cabecera). Para crear un fichero nuevo simplemente se ha de colocar en el shell vim nombre, donde nombre es como se llamará el fichero. Como ejemplo crearemos un fichero llamado HelloWorld.c mediante el comando vim HelloWorld.c.
Figura 3: Creación de un fichero Al pulsar Enter aparecerá una pantalla como la mostrada a continuación: // Figura 4: Nuevo Fichero Nota: Si el editor no funciona correctamente (no las flechas no funcionan, etc) se tendrán que seguir estos pasos para la configuración del vim. // 1. Salir del vim (ctrl :wq) 2. cd 3. wget http://users.salleurl.edu/~xavic/so/assig/vimrc_profile.tar 4. tar xf vimrc_profile.tar 5. mv profile.profile 6. mv vimrc.vimrc A partir de este punto se puede comenzar a escribir. Para escribir pulsamos la tecla i y para ejecutar comandos pulsamos el ctrl seguido del comando (pe. :wq para guardar y salir). A modo de ejemplo podemos escribir el siguiente programa.
Figura 5: Ejemplo de programa en C Una vez escrito el programa guardamos y salimos mediante: 1. Pulsar ctrl para activar el modo de comandos. 2. Escribir :wq y pulsar Enter. Llegados a este punto tenemos un programa escrito en C. Tal y como se ha dicho anteriormente el programa se ha de compilar para poder ser ejecutado, así que vamos a utilizar el gcc. Para compilar el programa utilizaremos el comando: gcc nombre_fichero.c o nombre_ejecutable donde nombre_fichero.c será el nombre del fichero anteriormente creado (en nuestro caso HelloWorld.c) y nombre_ejecutable es el nombre que le queremos dar a programa, para este ejemplo utilizaremos Hello. Este segundo nombre puede ser cualquiera y es el nombre que se utilizará para llamar a la aplicación que se ha creado. Finalmente a modo de ejemplo ejecutaremos el comando gcc HelloWorld.c o Hello en el Shell del sistema. Hay que tener en cuenta que el fichero HelloWorld.c ha de estar en la misma carpeta que donde estamos ejecutando el comando, ya que sino el sistema no encontrará el archivo. Una vez compilado el programa podemos llamar a la aplicación desde el Shell mediante./hello.tal y como se muestra en la Figura 6 el programa muestra la línea esperada. Figura 6: Ejecución del programa En la Figura 6 se puede observar que el compilador nos ha dado un aviso, ese aviso no es un error y por lo tanto sí que nos ha generado el programa. En este caso lo que indica el compilador es que el main tendría que estar declarado como int en vez de void. Este aviso lo podemos ignorar ya que por temas docentes declararemos el programa como void.
Entorno Windows Para aquellas personas que no quieran utilizar el VIM, es posible utilizar el Windows para escribir el programa, aunque todos los ficheros creados en Windows tendrán que pasarse a Linux para ser compilados. La ventaja de Windows es que podríamos utilizar el notepad para escribir el programa y utilizar un sistema de ftp para pasar los archivos a la máquina cygnus. En este documento enseñaremos a utilizar el programa FileZilla, que se puede descargar desde: http://filezilla-project.org/. Para descargar el programa seleccionar descargar Cliente y luego seleccionar la versión de Windows. Figura 7: Web de FileZilla Una vez instalado el programa a la parte superior se colocan los mismo parámetros que al putty y se pulsa conexión rápida.
Figura 8: Partes importantes de programa En la Figura 8 se distinguen tres zonas que serán importantes. Primero que nada en la zona 1 se ha de seleccionar la carpeta donde se quien subir o bajar los archivos. Una vez seleccionada en la zona 2 se ha de buscar el archivo que se desea subir, cuando esté seleccionado (con el segundo botón de mouse) se pulsa sobre el fichero y finalmente se escoge la opción subir. Si en vez de subir un archivo se desea descargar uno, desde la zona 3 se ha de seleccionar el archivo y arrastrarlo hacia la carpeta deseada en la zona 2. Como se puede observar trabajar en el entorno Windows tiene la facilidad de ser gráfico, pero tiene el inconveniente de la transferencia de archivos.