Fundamentos de Lenguajes de Programación: Tipos, Código y Procesamiento
Clasificado en Informática
Escrito el en español con un tamaño de 4,95 KB
Tipos de Lenguajes de Programación
En informática, existen principalmente dos categorías de lenguajes de programación en función de su nivel de abstracción respecto al hardware:
- Lenguaje de bajo nivel (como el Ensamblador o Assembler)
- Lenguaje de alto nivel (como C, C++, Python, Java, etc.)
- Lenguaje máquina (el nivel más bajo, directamente entendido por el procesador)
Lenguaje de Bajo Nivel
Son lenguajes totalmente dependientes de la máquina, es decir, que un programa realizado con este tipo de lenguajes no se puede migrar o utilizar directamente en otras máquinas con arquitecturas diferentes. Dentro de esta categoría encontramos el lenguaje máquina y el lenguaje ensamblador.
Lenguaje de Alto Nivel
Se trata de lenguajes independientes del tipo de máquina. En principio, un programa escrito en un lenguaje de alto nivel se puede migrar de una máquina a otra (con el compilador o intérprete adecuado) sin grandes problemas. Dentro de este tipo de lenguajes encontramos ejemplos como C, C++, Python, Java, entre otros.
Del Código Fuente al Ejecutable
El proceso de creación de un programa implica diferentes representaciones del código:
Código Fuente
Es un conjunto de líneas de texto con los pasos que debe seguir el ordenador para ejecutar dicho programa, o una parte de él.
Características:
- Es el texto que escriben los programadores mediante algún editor de texto.
- No constituye software directamente ejecutable, solo un conjunto de instrucciones escritas.
- Utiliza sentencias y órdenes derivadas, a menudo, del inglés.
- Está cercano al razonamiento y entendimiento humano.
- El ordenador no entiende directamente este código.
- Se escribe en un lenguaje de alto nivel (como C++, Java, Python).
- Los diferentes lenguajes de alto nivel habitualmente son incompatibles entre sí por tener sintaxis y semántica diferentes.
Existe el concepto de código fuente libre (Open Source), que consiste en que cualquier programador tenga acceso libremente a los algoritmos desarrollados por sus creadores para poder analizarlo, copiarlo y modificarlo, creando nuevas versiones.
Código Objeto
Es el resultado de la compilación del código fuente. Es una traducción intermedia y el resultado puede estar en Bytecode (un código intermedio independiente de la plataforma) o directamente en lenguaje máquina.
Características:
- Se genera después de procesar el código fuente con un compilador.
- Es un código intermedio entre el código fuente y el código ejecutable (en muchos procesos de compilación).
- El programa traductor que lo genera es el compilador.
- Generalmente no es inteligible directamente para el ser humano.
- A partir del código objeto, normalmente no se puede obtener el código fuente original de forma sencilla (proceso conocido como descompilación, que suele ser complejo).
Código Ejecutable
Es el código final que genera el fichero directamente ejecutable por el sistema operativo.
Características:
- Representa el último paso para crear un programa que el usuario puede correr.
- Este código conforma el fichero ejecutable (con extensión
.exe
en Windows, o sin extensión específica en sistemas tipo Unix, pero con permisos de ejecución). - Está en lenguaje máquina o un formato que el cargador del sistema operativo entiende.
Compilación e Interpretación
Existen dos formas principales de traducir y ejecutar programas escritos en lenguajes de alto nivel:
- Compilación: El programa que realiza este proceso se llama compilador.
- Interpretación: El programa que realiza este proceso se llama intérprete.
Ambos son programas traductores que convierten el código escrito en un lenguaje de alto nivel a código máquina, aunque trabajan de forma distinta:
- Un compilador traduce todo el código fuente a código máquina (o código intermedio) de una vez, generando un archivo ejecutable separado.
- Un intérprete traduce y ejecuta el código fuente línea por línea o instrucción por instrucción, sin generar necesariamente un archivo ejecutable independiente previo.
Proceso General:
Lenguaje de Alto Nivel → Traductor (Compilador o Intérprete) → Lenguaje Máquina (Ejecución)