Proceso de Compilación

Sitio: Facultad de Ingeniería U.Na.M.
Curso: Computación ET-344
Libro: Proceso de Compilación
Imprimido por: Invitado
Día: miércoles, 3 de julio de 2024, 06:31

1. Pasos para crear un programa en C++.

 Figura 1

2. Interface de trabajo

Entorno de Desarrollo Integrado IDE

Un entorno de desarrollo integrado (IDE) es un sistema de software para el diseño de aplicaciones que combina herramientas del desarrollador comunes en una sola interfaz gráfica de usuario (GUI). Cuando el alumno realiza su primeros pasos en un lenguaje de programaciónes altamente recomendable que utilice una IDE. De no hacerlo, deberá lidiar concuestiones relacionadas al proceso de compilación y al manejo de la linea decomandos para el uso de un compilador en particular. Es conveniente, en unaprimer etapa, concentrarse en las cuestiones relacionadas al lenguaje y a lalógica de los problemas a resolver.

Normamente el alumno asume que no puede programar si NO tiene una IDE, esto NO ES CIERTO!. La IDE es una herramienta que facilita la tarea, pero se puede programar si ella.

Veamos para fijar la idea un video donde se crea un archivo con un editor de texto de Linux llamado "nano" , aquí NO se puede usar el MOUSE, luego se compila utilizando el compilador de C++ llamado g++, finalmente se corre el programa que muestra "Hola Mundo".

En este curso vamos a facilitar la tarea de programación utilizando  cualquier IDE interface de desarrollo que:

  • sea Libre o gratuita.
  • exista para todos los Sistemas Operativos ( Window, Linux, Mac) 

Elegimos a  Zinjai : http://zinjai.sourceforge.net//   , pero basta que busque en Google, interfaces de desarrolllo C++, para que vea la gran cantidad de interfaces que hay.

     Figura 1

Se deja como tarea al alumno leer de la Documentación : http://zinjai.sourceforge.net/index.php?page=documentacion.php

   Figura 2

3. Archivos creados

Durante los pasos para crear un ejecutable a partir de un Código fuente, se crean tres archivos.

En el primer capítulo se mencionó lo que se conoce como : Enlazado.

El proceso de creación de un archivo ejecutable sería:

 Figura 1

Se denomina Enlazado, al proceso de combinar el código binario obtenido a partir del Código fuente que hizo el programador, mas el código binario de otros programadores, por ejemplo, códigos de librerías, este tipo de enlazado pruede ser: Dinámico o Estático.

Enlace dinámico y estático.


Existen dos modos de realizar el enlace:
- estático: los binarios de las funciones se incorporan al código binario de nuestro ejecutable.
- dinámico: el código de las funciones permanece en la biblioteca; nuestro ejecutable cargará en memoria la biblioteca y ejecutará la parte de código correspondiente en el momento de correr el programa.
El enlazado dinámico permite crear un ejecutable más chico, pero requiere disponible el acceso a las bibliotecas en el momento de correr el programa.

El enlazado estático crea un programa autónomo, pero al precio de agrandar el tamaño del ejecutable binario.

Figura 2

Código Fuente : Lo que escribe el programador, en este caso  C++, podría se Python, java, etc.

Extensión de código fuente :  .cpp

Código Objeto: Lo que genera el Compilador son ceros y unos, es el lenguaje que entiende el microprocesador e incluye el código objeto que resulta de compilar el código fuente, mas el código objeto de librerías.

Extensión de archivo objeto :  .o

Ejectutable, es un archivo binario ( cero y uno) que puede ser cargado en la memoria de la maquina y que el procesador puede ejecutar.

En Windows las extensiones de los archivos ejecutables pueden ser: .com, .exe. .bat , .bin , entre otras tantas.

En Linux, no existe o no importa la extensión, se trata de otra manera. Los archivos tienen un atributo que se llama ejecutable. Si el archivo tiene el atributo ejecutable, se puede ejecutar... no depende de las extensiones.

Extensión ejecutable en Windows :  .exe

4. Trabajando con Zinjai

Lo primero que hay que hacer al abrir un archivo nuevo es: GUARDAR COMO .. Y DALE NOMBRE.

Es muy frecuente que el alumnos NO le da NOMBRE AL ARCHIVO de códig fuente y NO sabe donde se guarda, así que es lo primerop que debe hacer, es una recomendación.

5. Nombres de Archivos

El propósito de esta materia es que sepamos escribir un programa, los programas necesitan ser llamados y para ello deben tener un nombre.

Normalmente no tratamos el tema de los posibles nombres a los programas, pero solía ser un error común que los alumnos asignen nombres y que luego al momento de hacer correr el programa o ejecutar tira algunos errores, es por eso que vamos a establecer para el presente curso unas reglas para los nombres de programas.


Estas 3 reglas son sencillas y veremos que tienen un parecido grande con los nombre de las variables que veremos mas adelante y nos van a permitir evitar errores menores.

1. Todo nombre de programa debe empezar con una letra del alfabeto inglés (mayúscula o minúscula).

2. No debe contener espacios en blanco ni punto. Este suele ser un error frecuente de los alumnos.

3. Puede contener una combinación de los siguientes caracteres : letras, dígitos y el guión bajo.

Se entiende por Letras:

a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N OPQRSTUVWXYZ 
Se entiende por Dígitos:

0 1 2 3 4 5 6 7 8 9 
Se entiende por  Caracter especial :

_  (guión bajo) 

Observación:   NO ESTA EL ESPACIO!!

5.1. Case Sentitive

Que algo sea sensible   a las mayúsculas y minúsculas, conocido como o sensible a mayúscula o minúscula en inglés case sensitive, es una expresión usada en informática que se aplica a los textos en los que tiene alguna relevancia escribir un carácter en mayúsculas o minúsculas. Esto se aplica en particular para las variables y quiere decir que no es lo mismo

  • Temperatura
  • temperatura
  • TERMPEARTURA
  • TEMPeratura

En C++ todos estos nombres serán tratados como distintos, ya que C++ es case sensitive.

5.2. Tipos de Notación

Recordemos que los espacios no son recomendados en los nombres, ni de programas ni de variables como ya dijimos.

Se comentan aquí dos alternativas para hacer entendible el nombre usando lo que se conoce como notación con delimitadores.

Palabras separadas por _ (guión bajo)

Programa_uno

Ejemplo_dos

Ejercicio_funcion_1

Palabras separadas por mayúsculas o camello 

ProgramaUno

EjemploDos

EjercicioFuncion1

5.3. Accesos Directos

En estos tiempos en lo que todo es bajo un gráfico, permite hacer que el usuario sea un ignorante respecto del nombre de un programa y para ello los Sistemas Operativos con un entorno gráfico reemplazan los nombre de los programas por otros que no tienen las limitaciones vistas y mencionadas.

Estos se llaman en Windows Accesos Directos y en Linux, Enlaces.. pero el propósito es el mismo.. eliminar las limitaciones de los nombres de los programas. Veamos algunos casos comunes.

El caso de Microsoft Word, nombre del acceso directo al programa winword.exe

El caso de LibreOffice Writer, nombre del acceso directo al programa  /usr/lib/libreoffice/program/soffice.bin --writer

El caso de LibreOffice Calc, nombre del acceso directo al programa  /usr/lib/libreoffice/program/soffice.bin --calc

El caso de Bloc de Notas, nombre del acceso directo al programa notepad.exe

Importante: En este curso escribiremos programas (no accesos directos) , por lo tanto debemos respetar las limitaciones de los nombres o probablemente no funcionarán

5.4. Nombre si, Poema NO

La idea es dar al ejecutable un indicio de que realiza, de esa manera no vamos a tener que ejecutar para tratar de saber que hace el ejecutable.

Un programa en Python es un script, es el código fuente que escribió el programador, el Interprete ejecuta ese script o programa.

En C++ el ejecutable NO ES COMO EN PYTHON, son cero y unos.. es un archivo Binario, por lo que NO vemos el código fuente, de allí la importancia de poder identificar mediante el nombre la funcionalidad que tiene el ejecutable.

Debemos darle un nombre descriptivo pero que no sea un poema de largo.. con espacios, etc.