Introducción a la programación y sus lenguajes

Blog colaborativo de: Valentina Pardo, Raúl González y Ricardo Toledo


Cuando hablamos del concepto de programación, la creencia general es que únicamente se trata del proceso de codificar una serie de instrucciones de tal manera que un ordenador presente un comportamiento determinado al interpretarlas. Sin embargo, la programación es un proceso que involucra muchas fases del desarrollo de software, y es que cuando hablamos de programación nos referimos al proceso de diseño, codificación, depuración y mantenimiento del código fuente de un programa [1].


Quizá el término de depuración resulte desconocido para alguien que no pertenezca al ámbito informático, por lo que se explica a continuación. Depurar consiste en realizar pruebas a un determinado programa para identificar y corregir errores de programación, también conocidos como bugs [2]. En estas pruebas, el programador generalmente suele colocar puntos de interrupción en determinadas líneas del programa para detener la ejecución del mismo en un determinado punto y, tras esto, se ejecuta línea por línea el programa comprobando los valores de variables o el comportamiento de los métodos o funciones para determinar el punto exacto en el que se produce el error.

También se ha mencionado el concepto de código fuente, que será explicado posteriormente para comprender el término de compilador.



Compiladores e interpretación de los lenguajes de programación



A lo largo de la historia, en el ámbito social han aparecido cientos de lenguas o idiomas por todo el mundo en los que, para comunicarse, es necesario que tanto el emisor como el receptor conozcan el código utilizado (conjunto de reglas léxicas, sintácticas y semánticas) para poder comprender el mensaje.


De la misma manera, en el ámbito técnico han aparecido múltiples lenguajes de programación para la representación de información, cada uno de ellos con sus propias reglas léxicas, sintácticas y semánticas. Al igual que en el lenguaje natural, mediante el conocimiento del lenguaje y de su código es posible comunicarse con otro ente o sistema que también lo conozca. En este caso, un programador es capaz de “comunicarse” con un ordenador ya que ambos conocen el código del lenguaje y existe un proceso de traducción del código fuente escrito por el programador (similar al lenguaje natural) a código máquina con ceros y unos, comprensible para el ordenador.






En este proceso de traducción desempeñan un papel fundamental los compiladores. Un compilador es un programa que analiza léxica, sintáctica y semánticamente el código fuente introducido por el programador en un determinado lenguaje de programación y genera ficheros de salida con código máquina que puede ser interpretado por el ordenador [3]. Además, los compiladores, antes de generar el código máquina, realizan una fase de optimización del código para que el código final resulte más rápido de ejecutar (por ejemplo, se elimina el código que nunca se va ejecutar o código muerto).


¿Y por qué es necesario este proceso de traducción? ¿No comprende el ordenador directamente el léxico, la sintaxis y la semántica del lenguaje de programación? Evidentemente no. Como sabemos, el funcionamiento de un ordenador está basado en impulsos eléctricos y un ordenador únicamente es capaz de distinguir dos posibles valores eléctricos (encendido si pasa corriente eléctrica y apagado en caso contrario), por lo que desde los inicios se optó por el código binario, que cuenta con dos posibles valores (1 y 0), para poder representar la información. Al igual que en el lenguaje natural se forman palabras y frases mediante la combinación de las letras del alfabeto, en un ordenador es posible representar datos e instrucciones mediante secuencias de bits (los símbolos unitarios del código binario). Por lo tanto, el ordenador realmente no interpreta el código fuente introducido por el programador, sino la secuencia de unos y ceros correspondiente al mismo.


Los lenguajes de programación en el ámbito de Ingeniería del Software

Los lenguajes de programación se utilizan para el desarrollo de software o programas dentro del ámbito de la Ingeniería del Software, entendiendo la Ingeniería del Software como la disciplina orientada al diseño, construcción y mantenimiento de sistemas software de calidad y a la elaboración de la documentación del proceso.

Para lograr que el software producto de la Ingeniería tenga calidad se utilizan una serie de técnicas, herramientas y metodologías probadas que proporcionan una serie de características deseables, como pueden ser usabilidad, robustez o confiabilidad. Por ejemplo, para la elaboración de software se utiliza un modelo de ciclo de vida dividido en fases, en cada una de las cuales hay que realizar una serie de tareas específicas para la elaboración de software de calidad.


Como primer paso del proceso, se han de definir una serie de requisitos o requerimientos que el software producto debe cumplir para adaptarse a las necesidades del cliente.

A continuación, se procede a diseñar el software y el sistema, para lo cual se elaboran una serie de diagramas (de componentes, de clases, de casos de uso, etc.) que determinan como se debe construir el sistema y como se interrelacionan las diferentes partes del mismo, entre otros.

Posteriormente, se procede a construir o implementar el sistema mediante la utilización de los mencionados lenguajes de programación y de herramientas como los editores y los compiladores.

Una vez finalizada la fase de construcción, se somete el sistema a una serie de pruebas para comprobar su correcto funcionamiento y que se ajusta a los requerimientos establecidos en la fase inicial.

Por último, el sistema se integra en el entorno de destino y se inicia la operación y el mantenimiento del mismo.

En definitiva, el proceso de elaboración de software es un proceso que puede involucrar a un elevado número de personas y en el que es imprescindible realizar una buena definición de requisitos inicial para la consecución de los objetivos.

Comentarios