Sunteți pe pagina 1din 7

Funciones de un Entorno de Programacin

Como se ha dicho, la misin de un Entorno de Programacin es dar soporte a la preparacin de programas, es decir, a las actividades de codificacin y pruebas. Las tareas esenciales de la fase de codificacin son: Edicin (creacin y modificacin) del cdigo fuente Proceso/ejecucin del programa Interpretacin directa (cdigo fuente) Compilacin (cdigo mquina) - montaje - ejecucin Compilacin (cdigo intermedio) interpretacin Otras funciones: o Examinar (hojear) el cdigo fuente o Analizar consistencia, calidad, etc. o Ejecutar en modo depuracin o Ejecucin automtica de pruebas o Control de versiones o Generar documentacin, reformar cdigo o ... y otras muchas ms ...
o o

Tipos de Entornos de Programacin


Un entorno de programacin puede estar concebido y organizado de maneras muy diferentes. A continuacin se mencionan algunas de ellas.

En las primeras etapas de la informtica la preparacin de programas se realizaba mediante una cadena de operaciones tales como la que se muestra en la figura para un lenguaje procesado mediante compilador. Cada una de las herramientas deba invocarse manualmente por separado. En estas condiciones no puede hablarse propiamente de un entorno de programacin

o o o o

El editor es un editor de texto simple El compilador traduce cada fichero de cdigo fuente a cdigo objeto El montador (linker / builder / loader) combina varios ficheros objeto para generar un fichero ejecutable El depurador maneja informacin en trminos de lenguaje de mquina

Un entorno de programacin propiamente dicho combina herramientas como stas, mejoradas y mejor integradas. A veces se nombra con las siglas IDE (Integrated Development Environment). Los componentes cuya evolucin ha sido ms aparente son los que realizan la interaccin con el usuario: o El editor ya no es un simple editor de texto, sino que tiene una clara orientacin al lenguaje de programacin usado (reconoce y maneja determinados elementos sintcticos) o El depurador no presenta informacin en trminos del lenguaje de mquina, sino del lenguaje fuente o El editor est bien integrado con las dems herramientas (se posiciona directamente en los puntos del cdigo fuente en los que hay errores de compilacin, o que se estn ejecutando con el depurador en un momento dado. No es fcil establecer una clasificacin dentro de la variedad de entornos de programacin existentes. En algn momento se describieron las siguientes clases de entornos, no excluyentes: o Entornos centrados en un lenguaje o Entornos orientados a estructura o Entornos coleccin de herramientas

Entornos centrados en un lenguaje


Presentan las siguientes caractersticas generales:

Son especficos para un lenguaje de programacin en particular Estn fuertemente integrados. Aparecen como un todo homogneo Se presentan como una herramienta nica El editor tiene una fuerte orientacin al lenguaje Son relativamente cmodos o fciles de usar A veces son poco flexibles en lo referente a la interoperacin con otros productos o a la ampliacin de sus funciones Se basan en representar el cdigo fuente como texto

Podemos encontrar ejemplos de estos entornos para todo tipo de lenguajes


Lenguajes funcionales con interpretacin directa o (Inter)Lisp, Haskell, etc. Lenguajes compilados a cdigo de mquina nativo o Delphi, Visual C++, AdaGide/GNAT, GPS, etc. Lenguaje ejecutados sobre mquina virtual o Java (Visual Age, Eclipse), C# (Visual Studio .NET) Ejemplos especiales: o Entornos Ada (Stoneman, Cais, Asis) o Entornos Smalltalk o Entornos Oberon, Component Pascal

Entornos orientados a estructura


Podran considerarse incluidos en la clase anterior, ya que suelen ser especficos para un lenguaje de programacin, pero estn concebidos de manera diferente:

El editor de cdigo fuente no es un editor de texto, sino un editor de estructura (editor sintctico) Se basan en representar internamente el cdigo fuente como una estructura: o rbol de sintaxis abstracta: AST La presentacin externa del cdigo es en forma de texto o Plantillas (elementos sintcticos no terminales) o Texto simple (elementos terminales - a veces "frases" para expresiones) Compilacin incremental (en algunos casos) Para desarrollo personal, no en equipo Ejemplos: o The Cornell Program Synthesizer (subconjunto de PL/I) o Mentor (Pascal) o Alice Pascal o Gandalf (intenta ser un entorno de desarrollo completo, para todo el ciclo de vida)

Estos entornos estuvieron de moda en los aos 80. Los desarrollos fueron fundamentalmente acadmicos, y quedaron en desuso. En la actualidad los lenguajes de marcado (XML) pueden ser una buena forma de representar la estructura del cdigo fuente con vistas a su manipulacin. Existen editores y procesadores XML que podran ser la base de nuevos entornos de programacin orientados a estructura.

Cuando nos referimos a entrada/salida estndar (E/S estndar) queremos decir que los datos o bien se estn leyendo del teclado, bien se estn escribiendo en el monitor de video. Como se utilizan muy frecuentemente se consideran como los dispositivos de E/S por default y no necesitan ser nombrados en las instrucciones de E/S. En el lenguaje c++ tenemos varias alternativas para ingresar y/o mostrar datos, dependiendo de la librera que vamos a utilizar para desarrollar el programa, entre estas estn: iostream.h y sodio.h.

< IOSTREAM.H> Las operaciones de entrada y salida no forman parte del conjunto de sentencias de C++, sino que pertenecen al conjunto de funciones y clases de la biblioteca estndar de C++. Ellas se incluyen en los archivos de cabecera iostream.h por lo que siempre que queramos utilizarlas deberemos introducir la lnea de cdigo #include <iostream.h> Esta biblioteca es una implementacin orientada a objetos y est basada en el concepto de flujos. A nivel abstracto un flujo es un medio de describir la secuencia de datos de una fuente a un destino o sumidero. As, por ejemplo, cuando se introducen caracteres desde el teclado, se puede pensar en caracteres que fluyen o se trasladan desde el teclado a las estructuras de datos del programa. Los objetos de flujo que vienen predefinidos sern: 1. cin, que toma caracteres de la entrada estndar (teclado); 2. cout, pone caracteres en la salida estndar (pantalla); 3. cerr y clog ponen mensajes de error en la salida estndar.

4. 5. 6. 7. 8. 9.

<STDIO.H> Operaciones de salida. Printf: Imprimir en pantalla Para utilizar la funcin printf en nuestros programas debemos incluir la directiva: #include <stdio.h> Si slo queremos imprimir una cadena basta con escribir la siguiente lnea de cdigo. 10. printf( "Cadena" ); 11. Como resultado muestra en pantalla: 12. Cadena 13. Lo que pongamos entre las comillas es lo que vamos a sacar por pantalla. 14. Si volvemos a usar otro printf, por ejemplo: 15. #include <stdio.h> 16. void main() 17. { 18. printf( "Cadena" ); 19. printf( "Segunda" ); 20. } 21. Obtendremos: 22. CadenaSegunda 23. Este ejemplo nos muestra cmo funciona printf. Para escribir en la pantalla se usa un cursor que no vemos. Cuando escribimos algo el cursor va al final del texto. Cuando el texto llega al final de la fila, lo siguiente que pongamos ir a la fila siguiente. Si lo que queremos es sacar cada una en una lnea deberemos usar "\n".

Es el indicador de retorno de carro. Lo que hace es saltar el cursor de escritura a la lnea siguiente: 24. #include <stdio.h> 25. void main() 26. { 27. printf( "Cadena\n" ); 28. printf( "Segunda" ); 29. } 30. y tendremos: 31. Cadena 32. Segunda 33. Tambin podemos poner ms de una cadena dentro del printf: 34. printf( "Primera cadena" "Segunda cadena" ); 35. Lo que no podemos hacer es meter cosas entre las cadenas: 36. printf( "Primera cadena" texto en medio "Segunda cadena" ); 37. esto no es vlido. Cuando el compilador intenta interpretar esta sentencia se encuentra "Primera cadena" y luego texto en medio, no sabe qu hacer con ello y da un error. 38. Pero qu pasa si queremos imprimir el smbolo " en pantalla? Por ejemplo imaginemos que queremos escribir: 39. Esto es "extrao" 40. Si para ello hacemos: 41. printf( "Esto es "extrao"" ); 42. obtendremos unos cuantos errores. El problema es que el smbolo " se usa para indicar al compilador el comienzo o el final de una cadena. As que en realidad le estaramos dando la cadena "Esto es", luego extrao y luego otra cadena vaca "". Pues resulta que printf no admite esto y de nuevo tenemos errores. 43. La solucin es usar \". Veamos: 44. printf( "Esto es \"extrao\"" ); 45. Esta vez todo ir como la seda. Como vemos la contrabarra '\' sirve para indicarle al compilador que escriba caracteres que de otra forma no podramos. 46. Esta contrabarra se usa en C para indicar al compilador que queremos meter smbolos especiales. Pero Y si lo que queremos es usar '\' como un carcter normal y poner por ejemplo Hola\Adis? Pues muy fcil, volvemos a usar '\': 47. printf( "Hola\\Adis" ); 48. y esta doble '\' indica a C que lo que queremos es mostrar una '\'.

1.1.2 Compilacin
Existen muchos compiladores de C. El cc es el compilador estndar de Sun. El compilador GNU de C es gcc, el cual es bastante popular y esta disponible en varias plataformas. Existen tambin compiladores equivalentes de C++ los cuales usualmente son nombrados como CC. Por ejemplo, Sun provee CC y GNU GCC. El compilador de GNU es tambin denotado como g++. Existen otros compiladores menos comunes de C y C++. En general todos los compiladores mencionados operan esencialmente de la misma forma y comparten muchas opciones comunes en la lnea de opciones. Ms adelante se listan y se dan ejemplos de opciones comunes de los compiladores. Sin embargo, la mejor referencia de cada compilador es a travs de las pginas en lnea, del manual del sistema. Por ejemplo: man gcc. Para compilar el programa usaremos el comando gcc. El comando deber ser seguido por el nombre del programa en C que se quiere compilar. Un determinado nmero de opciones del compilador pueden ser indicadas tambin. Por el momento no haremos uso de estas opciones todava, se irn comentando algunas ms esenciales. Por lo tanto, el comando bsico de compilacin es:
gcc programa.c

donde programa.c es el nombre del archivo.

Si hay errores obvios en el programa (tales como palabras mal escritas, caracteres no tecleados u omisiones de punto y coma), el compilador se detendr y los reportar. Podra haber desde luego errores lgicos que el compilador no podr detectar. En el caso que esta fuera la situacin se le estar indicando a la computadora que haga las operaciones incorrectas. Cuando el compilador ha terminado con xito, la versin compilada, o el ejecutable, es dejado en un archivo llamado a.out, o si la opcin -o es usada con el compilador, el nombre despus de -o es el nombre del programa compilado. Se recomienda y es ms conveniente usar la opcin -o con el nombre del archivo ejecutable como se muestra a continuacin:
gcc -o programa programa.c

el cual pone el programa compilado en el archivo del programa sealado, en ste caso en programa, en vez del archivo a.out.

1.1.3 Ejecucin del programa

El siguiente estado es correr el programa ejecutable. Para correr un ejecutable en UNIX, simplemente se escribe el nombre del archivo que lo contiene, en este caso programa (o a.out). Con lo anterior, se ejecuta el programa, mostrando algn resultado en la pantalla. En ste estado, podra haber errores en tiempo de ejecucin (run-time errors), tales como divisin por cero, o bien, podran hacerse evidentes al ver que el programa no produce la salida correcta. Si lo anterior sucede, entonces se debe regresar a editar el archivo del programa, recompilarlo, y ejecutarlo nuevamente.

1.2 El modelo de compilacin de C


En la figura 1.1 se muestran las distintas tapas que cubre el compilador para obtener el cdigo ejecutable.

Figura 1.1: Modelo de compilacin de C.

S-ar putea să vă placă și