Un programa informático, cuando se encuentra en su formato de código fuente, puede tener varias partes importantes que hay que conocer. Algunos programadores comienzan a estudiar lenguajes sin conocer las bases y esto les dificulta el aprendizaje. Aquí veremos algunas de las partes más importantes, cogiendo como ejemplo el lenguaje C, que es el que más domino.
El código fuente es el conjunto de instrucciones escritas en un lenguaje de programación que constituyen el programa o software. Es la forma legible por los programadores y actúa como la «receta» o instrucciones detalladas que definen cómo se debe comportar el programa. El código fuente es escrito por los desarrolladores y contiene todas las funciones, algoritmos, estructuras de datos y lógica necesaria para que el programa funcione correctamente. A partir del código fuente, se puede realizar la compilación o interpretación para generar un programa ejecutable que pueda ser utilizado por los usuarios finales. Esencialmente, el código fuente es el punto de partida para la creación de cualquier software y proporciona el control total sobre su funcionalidad y comportamiento.
También te puede interesar leer nuestro tutorial para saber qué ordenador elegir para programación
Una vez que hemos entendido el concepto de código fuente, exploraremos las diferentes secciones fundamentales que lo componen. Es importante comprender estos elementos desde el principio, ya que muchos principiantes en programación pueden cometer errores o no entender completamente el propósito de las diversas partes que utilizan constantemente en sus códigos fuente. Como he dicho, utilizaré el lenguaje de programación C como ejemplo, ya que es el que mejor conozco y presenta seis secciones distintas que deben comprenderse claramente. Sin embargo, en otros lenguajes se sigue una estructura similar, aunque con una sintaxis diferente. De hecho, un lenguaje de programación no difiere mucho del lenguaje humano, ya que también tiene una estructura definida, palabras que se utilizan y una sintaxis específica. Veamos en qué consiste este formato en particular:
Sección | Descripción |
---|---|
Documentación | Generalmente, al inicio de un código fuente se incluye una sección de comentarios, aunque no es una práctica común en todos los códigos fuente debido a malas prácticas. Sin embargo, es recomendable incluir esta sección para describir qué hace el código fuente y proporcionar información adicional, como el nombre del programador y la fecha de creación. Los comentarios se escriben en un formato especial para distinguirlos del código ejecutable y suelen estar precedidos por un símbolo o etiqueta específica. Estos comentarios son una forma de documentación interna que ayuda a los programadores a comprender y mantener el código en el futuro. /* Programa de ejempo. Creado por Isaac para PR. Versión 1 */ |
Enlace | Después de la sección de documentación, se encuentra la sección de inclusión de archivos de cabecera o bibliotecas necesarios para el código fuente en desarrollo. Estos archivos contienen definiciones y declaraciones de funciones, estructuras y variables que serán utilizadas en el programa. Al compilar o interpretar el código, se debe asegurar que se incluyan copias de estos archivos de cabecera para que el programa funcione correctamente. En esencia, se utilizan como bloques de construcción predefinidos, lo que facilita la labor del programador al no tener que escribir el código desde cero. Por ejemplo, la función «printf» se utiliza para imprimir texto en pantalla, pero su implementación y definición están presentes en el archivo de cabecera «stdio.h» y «math.h». Por lo tanto, es común ver la línea de código: #include <stdio.h> #include <math.h> |
Definición | En ciertas ocasiones, aunque no en todos los casos, se requiere una directiva de preprocesador que contiene constantes simbólicas. Un ejemplo de esto es la directiva «#define», que nos permite utilizar constantes en nuestro código. Esta directiva reemplaza todas las apariciones de dichas constantes con su valor correspondiente en el código. En el caso del ejemplo del programa «Hola Mundo», no es necesario y no se encuentra presente, pero en otros códigos es común utilizarla. Por ejemplo: #define LONGITUD 21 #define E 2,71828 En este caso, podemos ver que define una longitud fija o constante, y el valor del número e. |
Declaración global | Esta sección engloba las declaraciones de variables globales, funciones, variables globales estáticas y funciones. Aunque no se encuentra presente en el ejemplo del programa «Hola Mundo», es común encontrarlo en otros casos. Esta parte del código permite definir y declarar las variables y funciones que serán utilizadas en diferentes partes del programa. Proporciona una visión general de los recursos y funcionalidades que se utilizarán en el código. Por ejemplo:
|
Función principal | Cada programa en C comienza su ejecución en la función principal, conocida como main(). Es imprescindible incluir esta función en cada programa C que escribamos. La función main() puede tener diferentes formas, como int main() o void main(), entre otras. Al igual que cualquier otra función, la función main() puede recibir argumentos y devolver un valor. Es en esta función donde se inicia la ejecución del programa. Cuando se devuelve un valor desde la función main(), este valor se entrega al sistema operativo. Cuando utilizamos void main(), estamos indicando que la función main() no retornará ningún valor, mientras que int main() implica que main() puede retornar un valor de tipo entero. Si nuestro programa es sencillo y no finalizará antes de llegar al final del código, o si el código está libre de errores, podemos utilizar void main(). Sin embargo, si deseamos finalizar el programa utilizando el método exit(), entonces necesitamos retornar valores enteros (cero o diferentes de cero). En tal caso, void main() no será adecuado. Por lo tanto, es considerado una buena práctica utilizar int main(). Es posible que hayas encontrado variaciones como int main(int argc, char **argv) u otras similares. En este caso, se incluyen argumentos dentro de los paréntesis para pasarlos durante la ejecución del programa. Estos argumentos son utilizados en la línea de comandos al ejecutar el programa, similar a cómo se utilizan los argumentos en los comandos habituales. Por ejemplo: #include <stdio.h> main(argc, argv) int argc; char *argv[]; { if(argc!=2) { printf(«Ha olvidado su nombre.\n»); exit(1); } printf(«Hola %s», argv[1]); } Si se compila este código fuente para generar el binario ejecutable, y tras ejecutarlo, lo que hará es devolver Hola seguido del nombre que uses tras el comando. Si lo compilamos como «nombre», en la CLI podemos usar el comando: name Isaac Y el resultado será que nos devuelve el mensaje por la salida estándar, generalmente en la pantalla: Hola Isaac |
Subprogramas | En esta sección, encontrarás todas las funciones definidas por el usuario. Verás una variedad de funciones con propósitos diferentes, dependiendo del programa en cuestión. Es importante destacar que estas funciones pueden estar desordenadas y no seguir un orden lógico de ejecución. Es posible que también te encuentres con varios bloques de funciones, cada uno con un propósito específico. Sin embargo, cabe señalar que todas estas funciones son opcionales, excepto la función main(), que es obligatoria y marca el punto de inicio del programa. |
No olvides comentar, si tienes dudas, sugerencias, etc.
CHIEFTEC acaba de presentar dos nuevas cajas para PC, Visio y Visio Air con un…
Asus ZenWiFi BT8 es un sistema Mesh Wi-Fi 7 el cual se sitúa por debajo…
Qualcomm anuncia nuevos SoC Snapdragon X, pero no se trata de una nueva generación, sino…