2.1.- Ejecutables. Tipos.
En sistemas operativos Windows, podemos reconocer un fichero ejecutable, porque su extensión, suele ser .exe. En otros sistemas operativos, por ejemplo, los basados en GNU/Linux, los ficheros ejecutables se identifican como ficheros que tienen activado su permiso de ejecución (y no tienen que tener una extensión determinada).
Según el tipo de código que contenga un ejecutable, los podemos clasificar en:
- Binarios. Formados por un conjunto de instrucciones que directamente son ejecutadas por el procesador del ordenador. Este código se obtiene al compilar el código fuente de un programa y se guarda en un fichero ejecutable. Este código sólo se ejecutará correctamente en equipos cuya plataforma sea compatible con aquella para la que ha sido compilado (no es multiplataforma). Ejemplos son, ficheros que obtenemos al compilar un ejecutable de C o C++.
-
Interpretados. Código que suele tratarse como un ejecutable, pero no es código binario, sino otro tipo de código, que en Java, por ejemplo se llama bytecode. Está formado por códigos de operación que tomará el intérprete (en el caso de Java, el intérprete es la máquina virtual Java, Java Runtime Environment o JRE). Ese intérprete será el encargado de traducirlos al lenguaje máquina que ejecutará el procesador. El código interpretado es más susceptible de ser multiplataforma o independiente de la máquina física en la que se haya compilado.
Un tipo especial de ejecutables interpretados, son los llamados scripts. Estos ficheros, contienen las instrucciones que serán ejecutadas una detrás de otra por el intérprete. Se diferencian de otros lenguajes interpretados porque no son compilados. Por lo que los podremos abrir y ver el código que contienen con un editor de texto plano (cosa que no pasa con los binarios e interpretados compilados). Los intérpretes de este tipo de lenguajes se suelen llamar motores. Ejemplos de lenguajes de script son: JavaScript, php, JSP, ASP, python, ficheros .BAT en MS-DOS, Powershell en Windows, bash scripts en GNU/Linux, …
- Librerías. Conjunto de funciones que permiten dar modularidad y reusabilidad a nuestros programas. Las hemos incluido en esta clasificación, porque su contenido es código ejecutable, aunque ese código sea ejecutado por todos los programas que invoquen las funciones que contienen. El conjunto de funciones que incorpora una librería suele ser altamente reutilizable y útil para los programadores; evitando que tengan que reescribir una y otra vez el código que realiza la misma tarea. Ejemplo de librerías son: las librerías estándar de C, los paquetes compilados DLL en Windows; las
API
(Interfaz de Programación de Aplicaciones), como la J2EE de Java (Plataforma Java Enterprise Edition versión 2); las librerías que incorpora el framework de .NET; etc.



Ver código binario.
Java Runtime Environment o Entorno de Ejecución Java.
Ficheros ejecutables interpretados que contienen las instrucciones que serán ejecutadas una detrás de otra por el intérprete o motor. La diferencia con otros lenguajes interpretados, es que éstos no están compilados.
Lenguaje de programación del que sus ejecutables son ficheros interpretados; por ejemplo, Java, python, php, ...
Editor que no introduce códigos de formato en un fichero de texto. Ejemplos de editores de texto plano son: bloc de notas, edit, notepad++, ultraedit, gedit, nano, vi, ...
Tipos de ejecutables
Autoevaluación
Solución
Para saber más
Como en el resto de módulos del ciclo, vamos a utilizar Java como lenguaje. Ya sabemos que es un lenguaje de programación interpretado, pero ¿es el único? ¿qué ventajas e inconvenientes aceptamos al utilizarlo?
Ampliar información sobre lenguajes de programación interpretados con su definición en wikipedia.