Un lenguaje de programación consiste en una serie de normas y elementos que persiguen controlar el hardware para que lleve a cabo un proceso. Se trata de la herramienta que permite crear el software (aplicaciones y programas informáticos).
Un lenguaje de programación consiste en una serie de instrucciones, de operadores y de reglas que permiten controlar el hardware de un equipo informático para que realice un determinado proceso o función. Se trata de la herramienta básica para el desarrollo del software, entendiendo como tal al conjunto de aplicaciones y programas que se van a ejecutar en un sistema informático.
A lo largo de la historia de la Informática podemos distinguir varias generaciones de lenguajes informáticos, en función de su nivel de abstracción y de su dependencia de la arquitectura hardware de la máquina sobre la que se van a ejecutar las aplicaciones desarrolladas.
El primer tipo de lenguaje de programación es el Código Máquina, totalmente dependiente del conjunto de instrucciones del ordenador en que se va a ejecutar y en el que la programación se debe realizar en el sistema binario, codificando mediante ceros y unos las instrucciones y los datos a procesar. Se trata de la primera generación de lenguajes, muy difícil y engorrosa de utilizar y totalmente dependiente de la arquitectura del equipo (hardware).
El segundo tipo de lenguaje de programación es el conocido como Lenguaje Ensamblador, que representó en su día un importante avance al utilizar instrucciones y etiquetas que eran posteriormente traducidas por las correspondientes secuencias de ceros y unos (Código Máquina), que es lo que, en definitiva, entiende el ordenador. El Lenguaje Ensamblador mantiene su total vinculación con la arquitectura del equipo, de forma que cada equipo tiene su propio lenguaje ensamblador y el programador debe conocer en profundidad la arquitectura del ordenador en cuestión.
Con la aparición de los Lenguajes de Alto Nivel, surge una nueva generación, más orientada a la resolución general de operaciones, con independencia de la máquina en que se realice tal operación, incorporando un nuevo nivel de abstracción. Con ello se facilita enormemente la programación, al utilizar un conjunto de expresiones y operadores más amigables y próximos al lenguaje natural, que equivalen a varias decenas de instrucciones básicas en Código Máquina.
De este modo, se mejora la legibilidad del código fuente de los programas y se reduce su tamaño, con la ventaja añadida que supone su portabilidad, es decir, que un mismo programa de alto nivel pueda ser traducido al Código Máquina de distintos ordenadores. En estos lenguajes procedimentales de tercera generación, como Basic, C, Fortran, Cobol, Pascal, etc., el programador debe indicar el algoritmo con la secuencia de comandos que debe ejecutar el ordenador para cumplir con las distintas funcionalidades de la aplicación.
Más recientemente han aparecido los Lenguajes de Cuarta Generación, soportados por máquinas con muchos más recursos de memoria y capacidad de procesamiento. Se trata de lenguajes de tipo declarativo, donde el programador indica qué es lo que desea conseguir del programa, sin tener que especificar la secuencia de comandos a ejecutar y en los que, además, muchas de las tareas de programación se realizan con apoyo de un entorno gráfico muy amigable e intuitivo (similar al manejo de una aplicación ofimática). Gracias a estas nuevas herramientas, es posible desarrollar aplicaciones en mucho menos tiempo y con menos conocimientos de informática, si bien el código generado es menos eficiente, por lo que los programas obtenidos son más largos y consumen más recursos informáticos (no obstante, hoy en día esto no supone un problema para la mayoría de las aplicaciones, dada la enorme velocidad y capacidad de memoria con que cuentan los ordenadores actuales).
Los Entornos de Programación cuentan con herramientas que posibilitan y facilitan la labor de programación, entre las que podemos citar:
- Editor:
Es la herramienta que permite escribir y revisar el código fuente, de acuerdo con el léxico (conjunto de instrucciones] y las reglas sintácticas del lenguaje de programación utilizado.
- Depurador (debugger):
Se trata de una herramienta que analiza el código generado para detectar errores lógicos o de sintaxis, así como posibles fallos en la aplicación, con el objeto de eliminar los errores en la codificación del programa.
- Compilador (compiler):
Los “lenguajes interpretados” van traduciendo las instrucciones a Código Máquina a medida que se va ejecutando la aplicación. A su vez, los “lenguajes compilados” son traducidos a Código Máquina una sola vez (al finalizar la creación del programa), obteniendo así un programa ejecutable directamente en la máquina. Esta labor es realizada por el compilador y proporciona una aplicación más rápida y eficiente, por cuanto no tiene que ser traducida cada vez que se va a ejecutar en el ordenador.
- Enlazador (tinker):
Es el encargado de enlazar el Código Máquina obtenido del compilador con las distintas librerías del sistema operativo. Estas librerías facilitan una serie de funciones básicas sobre las que se puede apoyar el programador para simplificar la creación de sus aplicaciones.