Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción a la programación
ING. GABRIEL ENRÍQUEZ PEÑA
Contenido
aunque en su diseño también primó el hecho que fuera especificado como un lenguaje de programación de
Sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.
Hoy, en el siglo XXI, C sigue siendo uno de los lenguajes de programación más utilizados en la industria del
software, así como en institutos tecnológicos, escuelas de ingeniería y universidades. Prácticamente todos los
fabricantes de sistemas operativos, Windows, UNIX, Linux, MacOS, Solaris..., soportan diferentes tipos de
compiladores de lenguaje C y en muchas ocasiones distribuciones gratuitas bajo cualquiera de los sistemas
operativos citados. Todos los compiladores de C++ pueden ejecutar programas escritos en lenguaje C,
preferentemente si cumplen el estándar ANSI C.
4.2. Traducción de un programa
Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos
en lenguajes de alto nivel a código máquina. Los traductores se dividen en compiladores e
interpretes.
4.2. Traducción de un programa
Intérpretes
Un intérprete es un traductor que toma un programa fuente, lo traduce
y, a continuación, lo ejecuta.
Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador
(linker).
1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo
similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento (por
ejemplo, un disco).
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador C.
4. Verificar y corregir errores de compilación (listado de errores).
5. Obtención del programa objeto.
6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.
4.2.1.Compilación
4.2.2.Enlace
La siguiente etapa de compilación es el enlace con las funciones presentes en las librerías de
funciones. Si nuestro programa utiliza solo funciones ANSI, no suele ser necesario indicarle al
compilador en que librerías están esas funciones. Sin embargo hay excepciones.
Por ejemplo si utilizamos funciones matemáticas debemos integrar la librería #include <math.h>.
Es decir, la etapa de enlazado integra el código de bajo nivel generado de todos los ficheros y sub
programas que se han mandado compilar y se añade el código de las funciones que hay en las
bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el
sistema operativo, traduciendo así finalmente el código objeto a código maquina, y generando un
módulo ejecutable.
4.2.3.Errores en tiempo de
compilación
El compilador es capaz de detectar algunos errores que pueden cometerse en el desarrollo de un programa escrito en C.
Evidentemente, no puede detectar todos ya que un programa puede funcionar perfectamente pero no hacer lo que se espera
de él. Los errores detectados por el compilador son de dos clases: errores propiamente dichos (errors), y advertencias (warnings)
Los errores se deben a cuestiones sintácticas relacionadas con el lenguaje. El compilador enumera los errores que se
encontraron, y luego detiene la compilación. El mensaje de error que aparece siempre indica al menos tres cosas:
Las advertencias no indican errores, sino que llaman la atención al programador sobre los posibles usos incorrectos del lenguaje.
Las advertencias, a diferencia de los errores no detienen el proceso de compilación, pero casi siempre señalan un error oculto.
En general, si aparece un warning hay que intentar eliminarlo.
Si el compilador encuentra el error , intentara seguir compilando el programa para encontrar todos los errores posibles,
deteniéndose cuando le resulte imposible seguir.
4.3. Ejecución de un programa
A un programa en ejecución se le suele llamar también proceso.
El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes
pasos:
1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una
máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento.
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador.
4. Verificar y corregir errores de compilación.
5. Obtención del programa objeto
6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.
Se denomina tiempo de ejecución (runtime en inglés) al intervalo de tiempo en el que un programa de computadora se ejecuta
en un sistema operativo.
Este tiempo se inicia con la puesta en memoria principal del programa, por lo que el sistema operativo comienza a ejecutar sus
instrucciones. El intervalo finaliza en el momento en que éste envía al sistema operativo la señal de terminación, sea ésta una
terminación normal, en que el programa tuvo la posibilidad de concluir sus instrucciones satisfactoriamente, o una terminación
anormal, en el que el programa produjo algún error y el sistema debió forzar su finalización.
Este término suele emplearse, en oposición a tiempo de compilación, para indicar si una acción o hecho sucede en uno u otro
tiempo.
4.4.Errores en tiempo de ejecución
Los errores en tiempo de ejecución son los que se producen durante la ejecución del programa. Son los más
difíciles de encontrar, no son detectados por el compilador, ya que son errores de lógica, no de sintaxis.Aunque
al compilar un programa no de errores, el programa puede funcionar incorrectamente y/o a dar errores durante
su ejecución. Por ejemplo:
• Un programa puede producir resultados erróneos, al equivocarnos (errores lógicos) al programar el algoritmo
(sumar en vez de restar, etc.).
• Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una división y el divisor es
cero,etc.
− Errores fatales: Son raros. Indican errores internos del compilador. Cuando ocurren la compilación se detiene
inmediatamente.
− Errores de sintaxis: Son los errores típicos de sintaxis. No detienen la compilación sino que al finalizar ésta se
mostrará la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros cometidos
con anterioridad. Con este tipo de errores no se puede obtener un programa objeto y por lo tanto tampoco el
ejecutable.
− Advertencias o avisos (warnings): Indican que hay líneas de código sospechosas que a pesar de no infringir
ninguna regla sintáctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un
warning la compilación no se detiene. Si en un programa fuente sólo se detectan warnings sí que se podrá
obtener un programa objeto, que tras el linkeado dará lugar a un programa ejecutable.
4.4.Errores en tiempo de ejecución
Encontrar la causa que los provoca es una labor en ocasiones complicada, razón por la cual los EID
(Entornos Integrados de Desarrollo,) nos proporcionan una herramienta llamada Depurador que nos ayuda a
encontrar los errores lógicos y demás errores producidos en tiempo de ejecución.
Los depuradores nos permiten trazar el programa (ejecutarlo sentencia a sentencia) y visualizar el contenido de
las variables y direcciones de memoria durante la ejecución del programa.
Además permiten alterar el flujo de ejecución del mismo, cambiar los valores de las variables e introducir puntos
de parada.