SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
3. Poner a punto el programa mediante el uso de un
editor de lenguaje de programación estructurado.
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:
BASIC, que durante mucho tiempo se ha
considerado un buen lenguaje para comenzar a
aprender, por su sencillez, aunque se podía
tender a crear programas poco legibles. A pesar
de esta "sencillez" hay versiones muy potentes,
incluso para programar en
entornos gráficos como Windows.
COBOL, que fue muy utilizado
para negocios (para crear software de gestión,
que tuviese que manipular grandes cantidades
de datos), aunque últimamente está bastante en
desuso.
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.
Java, desarrollado a su vez a partir de C++, que
elimina algunos de sus inconvenientes, y ha
alcanzado una gran difusión gracias a
su empleo enInternet.
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.
3.1 Captura y edición del programa.
Existen tipos de compiladores menos comunes de
C y C++. En general todos los compiladores
mencionados operan esencialmente de la misma
y de dan ejemplos de opciones comunes de los
compiladores. Sin embargo, la mejor referencia
de cada compilador es a través de las paginasen
línea, del manual del sistema. Por ejemplo:
mangcc. Para compilar el programa usaremos el
comando gcc. El comando deberá ser seguido
por el nombre del programa C que se quiere
compilar. Un determinado número de opciones
del compilador pueden ser indicadas también.
Por el momento no haremos uso de estas
opciones todavía, se irán comentando algunas
más esenciales. Por lo tanto el comando básico
de compilación es: gccprograma.c Donde
programa.c es el nombre del archivo. Si hay
errores obvios en el programa el compilador se
detendrá y los reportara. Podría haber desde
luego errores lógicos que el compilador no podrá
detectar. En el caso que esta fuera la situación se
le estará indicando a la computadora que haga
las operaciones incorrectas. Cuando el
compilador ha terminado con éxito, la versión
compilada o el ejecutable, es dejado en un
archivo llamado a.out o si la opción o es usada
con el compilador el nombre después de o es el
nombre del programa compilado. Se
recomienda y es más conveniente usar la opvion
o con el nombre del archivo ejecutable como se
muestra a continuación: gcc –o programa.c el
cual pone el programa compilado en el archivo
del programa señalado, en este caso en
programa, en vez del archivo a.out.
3.2 Compilar el programa, depurar el programa,
ejecutar el programa.
Dev-C++ contiene un depurador, no demasiado
avanzado, pero sí lo suficiente como para resultar útil.
Los programas no pueden ser depurados siempre, antes
deben cumplir determinadas condiciones. La primera es
que se pueda obtener un ejecutable. Si no llegamos a
eso los errores serán de compilación o de enlazado, y
un depurador no tiene sentido hasta que se solucionen
todos esos problemas.
La segunda condición es que el fichero ejecutable
contenga la información para la depuración. Un
ejecutable que no contenga esa información se puede
depurar, pero sólo en ensamblador, y no con el
depurador que incluye Dev-C++. La información de
depuración consiste en el propio fichero fuente, y los
lazos que unen cada una de las instrucciones del
programa y variables, con las resultantes de compilar el
programa, de modo que el depurador pueda saber a
qué instrucciones de código máquina corresponden
cada instrucción de C/C++. Y también a qué
direcciones de memoria corresponde cada variable, asi
como su tipo.
Para que el compilador añada esa información al
programa ejecutable hay que indicar al enlazador que
lo haga. Dev-C++ es lo bastante "listo" como para hacer
esto de forma automática, pero no está de más que
sepamos cómo hacerlo nosotros. Sobre todo porque
dicha información aumenta considerablemente el
tamaño del ejecutable, y una vez depurado,
deberíamos eliminarla para crear una versión final.
Para hacer que el enlazador incluya o no la información
del depurador debemos acceder a las "Opciones del
Compilador", que se encuentran en el menú de
"Herramientas", y, como se ve en el siguiente gráfico, en
la pestaña "Configuración" del cuadro de diálogo de
"Opciones del Compilador", en las opciones del "linker".
Si activamos la opción "Generar Información de Debug",
dicha información se añadirá la próxima vez que
compilemos y enlacemos el programa con éxito. Si la
desactivamos, se eliminará, del mismo modo, después
de compilar y enlazar el programa.
Para ejecutar hay varias formas de hacer esto. Una
consiste en pulsar el icono en forma de 'V' en la barra
de herramientas. El mismo icono está en la parte inferior,
en la pestaña de "Depurar", al activar esta pestaña
podemos acceder al icono de "Depurar", por último,
también podemos hacerlo mediante el menú "Depurar-
>Depurar", o por el atajo, pulsando la tecla [F8].
En cualquier caso, el programa se ejecutará
normalmente hasta alcanzar un punto de parada. En
ese momento el control vuelve al entorno de Dev-C++ y
se muestra la línea de ejecución actual con fondo azul y
con un icono en forma de flecha en el margen:
Otra variante de punto de parada consiste en situar el
cursor en la línea hasta la que queremos que se ejecute
el programa y pulsar "Ir al cursor". Esto trabaja igual que
si hubiéramos situado un punto de parada en esa línea,
y lo borráramos una vez alcanzado. Pero cuidado, el
resto de los puntos de parada siguen activos, si se
alcanza uno de ellos antes que la posición del cursor, el
programa parará en ese punto.

Más contenido relacionado

La actualidad más candente

Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Lesly Gonzalez
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prevjtk1
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Jahir Sanchez Sdval
 
Programacion C#.NET
Programacion C#.NETProgramacion C#.NET
Programacion C#.NETSaviotec
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosDIEGO BAROJA
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Leslie Diaz
 

La actualidad más candente (16)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
UNIDAD 3
UNIDAD 3 UNIDAD 3
UNIDAD 3
 
Tasm
TasmTasm
Tasm
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33
 
Programacion C#.NET
Programacion C#.NETProgramacion C#.NET
Programacion C#.NET
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Informatica
InformaticaInformatica
Informatica
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 

Destacado

Destacado (12)

Practica 28 gaem
Practica 28 gaemPractica 28 gaem
Practica 28 gaem
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Practica 30 gaem
Practica 30 gaemPractica 30 gaem
Practica 30 gaem
 
Practica 29 gaem
Practica 29 gaemPractica 29 gaem
Practica 29 gaem
 
Computadora
ComputadoraComputadora
Computadora
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 7 gaem
Unidad 7 gaemUnidad 7 gaem
Unidad 7 gaem
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

Similar a Unidad 3

Programación
ProgramaciónProgramación
ProgramaciónGraceelml
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLfelipeforero72
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...Kareen's Maldonado
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...carolina peña
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...Domitho Ibarra
 
Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Maryfer' Ortega
 
Software de aplicación
Software de aplicaciónSoftware de aplicación
Software de aplicaciónAndyHP
 
Software de aplicación
Software de aplicaciónSoftware de aplicación
Software de aplicaciónAndyHP
 
Software de aplicación
Software de aplicaciónSoftware de aplicación
Software de aplicaciónAndyHP
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxDavidGarca147527
 

Similar a Unidad 3 (20)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Dev-C++
Dev-C++ Dev-C++
Dev-C++
 
Programación
ProgramaciónProgramación
Programación
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
 
Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Tercera unidad ;3
Tercera unidad ;3Tercera unidad ;3
Tercera unidad ;3
 
Software de aplicación
Software de aplicaciónSoftware de aplicación
Software de aplicación
 
Software de aplicación
Software de aplicaciónSoftware de aplicación
Software de aplicación
 
Software de aplicación
Software de aplicaciónSoftware de aplicación
Software de aplicación
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 

Más de Kareen 'Gonzaalez (20)

Practica 13 gaem
Practica 13 gaemPractica 13 gaem
Practica 13 gaem
 
Practica 12 gaem
Practica 12 gaemPractica 12 gaem
Practica 12 gaem
 
Practica 11 gaem
Practica 11 gaemPractica 11 gaem
Practica 11 gaem
 
Practica 10 gaem
Practica 10 gaemPractica 10 gaem
Practica 10 gaem
 
Practica 9 gaem
Practica 9 gaemPractica 9 gaem
Practica 9 gaem
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 7
Practica 7Practica 7
Practica 7
 
Practica 6
Practica 6Practica 6
Practica 6
 
Practica 5
Practica 5Practica 5
Practica 5
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Practica 4
Practica 4Practica 4
Practica 4
 
Practica3
Practica3Practica3
Practica3
 
Practica nº 2
Practica nº 2Practica nº 2
Practica nº 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Practica 1 flash.
Practica 1 flash.Practica 1 flash.
Practica 1 flash.
 
flash
flashflash
flash
 
flash
flashflash
flash
 
Presentación1
Presentación1Presentación1
Presentación1
 
Power point
Power pointPower point
Power point
 
La mesita de la abuela
La mesita de la abuelaLa mesita de la abuela
La mesita de la abuela
 

Unidad 3

  • 1. 3. Poner a punto el programa mediante el uso de un editor de lenguaje de programación estructurado. 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,
  • 2. 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
  • 3. Algunos de los lenguajes más difundidos son: BASIC, que durante mucho tiempo se ha considerado un buen lenguaje para comenzar a aprender, por su sencillez, aunque se podía tender a crear programas poco legibles. A pesar de esta "sencillez" hay versiones muy potentes, incluso para programar en entornos gráficos como Windows. COBOL, que fue muy utilizado para negocios (para crear software de gestión, que tuviese que manipular grandes cantidades de datos), aunque últimamente está bastante en desuso. 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.
  • 4. 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. Java, desarrollado a su vez a partir de C++, que elimina algunos de sus inconvenientes, y ha alcanzado una gran difusión gracias a su empleo enInternet. 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. 3.1 Captura y edición del programa. Existen tipos de compiladores menos comunes de C y C++. En general todos los compiladores mencionados operan esencialmente de la misma y de dan ejemplos de opciones comunes de los compiladores. Sin embargo, la mejor referencia de cada compilador es a través de las paginasen
  • 5. línea, del manual del sistema. Por ejemplo: mangcc. Para compilar el programa usaremos el comando gcc. El comando deberá ser seguido por el nombre del programa C que se quiere compilar. Un determinado número de opciones del compilador pueden ser indicadas también. Por el momento no haremos uso de estas opciones todavía, se irán comentando algunas más esenciales. Por lo tanto el comando básico de compilación es: gccprograma.c Donde programa.c es el nombre del archivo. Si hay errores obvios en el programa el compilador se detendrá y los reportara. Podría haber desde luego errores lógicos que el compilador no podrá detectar. En el caso que esta fuera la situación se le estará indicando a la computadora que haga las operaciones incorrectas. Cuando el compilador ha terminado con éxito, la versión compilada o el ejecutable, es dejado en un archivo llamado a.out o si la opción o es usada con el compilador el nombre después de o es el nombre del programa compilado. Se recomienda y es más conveniente usar la opvion o con el nombre del archivo ejecutable como se muestra a continuación: gcc –o programa.c el cual pone el programa compilado en el archivo del programa señalado, en este caso en programa, en vez del archivo a.out.
  • 6. 3.2 Compilar el programa, depurar el programa, ejecutar el programa. Dev-C++ contiene un depurador, no demasiado avanzado, pero sí lo suficiente como para resultar útil. Los programas no pueden ser depurados siempre, antes deben cumplir determinadas condiciones. La primera es que se pueda obtener un ejecutable. Si no llegamos a eso los errores serán de compilación o de enlazado, y un depurador no tiene sentido hasta que se solucionen todos esos problemas. La segunda condición es que el fichero ejecutable contenga la información para la depuración. Un ejecutable que no contenga esa información se puede depurar, pero sólo en ensamblador, y no con el depurador que incluye Dev-C++. La información de depuración consiste en el propio fichero fuente, y los lazos que unen cada una de las instrucciones del programa y variables, con las resultantes de compilar el programa, de modo que el depurador pueda saber a qué instrucciones de código máquina corresponden cada instrucción de C/C++. Y también a qué direcciones de memoria corresponde cada variable, asi como su tipo. Para que el compilador añada esa información al programa ejecutable hay que indicar al enlazador que lo haga. Dev-C++ es lo bastante "listo" como para hacer esto de forma automática, pero no está de más que sepamos cómo hacerlo nosotros. Sobre todo porque dicha información aumenta considerablemente el tamaño del ejecutable, y una vez depurado, deberíamos eliminarla para crear una versión final.
  • 7. Para hacer que el enlazador incluya o no la información del depurador debemos acceder a las "Opciones del Compilador", que se encuentran en el menú de "Herramientas", y, como se ve en el siguiente gráfico, en la pestaña "Configuración" del cuadro de diálogo de "Opciones del Compilador", en las opciones del "linker". Si activamos la opción "Generar Información de Debug", dicha información se añadirá la próxima vez que compilemos y enlacemos el programa con éxito. Si la desactivamos, se eliminará, del mismo modo, después de compilar y enlazar el programa. Para ejecutar hay varias formas de hacer esto. Una consiste en pulsar el icono en forma de 'V' en la barra de herramientas. El mismo icono está en la parte inferior, en la pestaña de "Depurar", al activar esta pestaña podemos acceder al icono de "Depurar", por último,
  • 8. también podemos hacerlo mediante el menú "Depurar- >Depurar", o por el atajo, pulsando la tecla [F8]. En cualquier caso, el programa se ejecutará normalmente hasta alcanzar un punto de parada. En ese momento el control vuelve al entorno de Dev-C++ y se muestra la línea de ejecución actual con fondo azul y con un icono en forma de flecha en el margen: Otra variante de punto de parada consiste en situar el cursor en la línea hasta la que queremos que se ejecute el programa y pulsar "Ir al cursor". Esto trabaja igual que si hubiéramos situado un punto de parada en esa línea, y lo borráramos una vez alcanzado. Pero cuidado, el resto de los puntos de parada siguen activos, si se alcanza uno de ellos antes que la posición del cursor, el programa parará en ese punto.