Entorno de desarrollo del lenguaje de programación C++
Existe un conjunto bastante amplio de herramientas de desarrollo que se pueden utilizar para escribir y poner en ejecución software en el lenguaje de programación C++. Estas herramientas facilitan los procesos de edición del código en lenguaje de alto nivel y luego su conversión a lenguaje de máquina para que una vez cargado en memoria se puedan ejecutar en el computador.
Algunas de estas herramientas integran todos estos procesos en un Entorno de Desarrollo Integrado (IDE por sus siglas en inglés) simplificándolos para que el programador se concentre en crear el algoritmo correcto para la solución del problema planteado. Entre los IDEs más populares, en nuestro medio, se encuentran Microsoft Visual Studio, NetBeans, Eclipse, Code:Blocks y Dev C++.
Los IDEs facilitan la ejecución de todas las fases anteriormente analizadas en un único ambiente de trabajo donde se integra un editor de texto, para la fase de EDICIÓN; un compilador, para las fases de PREPROCESAMIENTO, COMPILACIÓN y ENLACE; además realiza la fase de CARGA, para que el computador a través del CPU realice la fase de EJECUCIÓN.
Máquinas virtuales
Las máquinas virtuales, en sentido general, pretenden facilitar el muy deseado objetivo de los programadores expresado en el famoso axioma de Java “escríbelo una vez, ejecútalo en cualquier parte” o lo que también se conoce como crear código que sea multiplataformas, entendiéndose plataformas como sistemas operativos.
Para lograr esto, desde sus inicios Java propuso la creación de las Máquinas Virtuales de Java (JVM por sus siglas en inglés), las mismas que se crean para los diferentes sistemas operativos donde se desea que ejecuten los programas desarrollados en este lenguaje de programación de alto nivel.
Cuando se elabora un programa en Java, como en cualquier otro lenguaje de programación de alto nivel, expresamos el algoritmo utilizando las instrucciones definidas por el mismo. En los lenguajes de programación compilados debemos ejecutar el proceso de compilación, que como se explicó anteriormente, traduce las instrucciones de código en lenguaje de alto nivel en su correspondiente conjunto de instrucciones en lenguaje de máquina que por medio del sistema operativo son ejecutadas por el computador. Este código compilado no podrá ejecutarse directamente en otros sistemas operativos diferente al utilizado para su compilación.
Los programas desarrollados en Java también son compilados, pero a un subconjunto de instrucciones propuestos por Java que se conocen como BYTECODE y no a lenguaje de máquina, como sería normalmente.
Cuando se desea ejecutar ese programa escrito en Java, el BYTECODE es interpretado línea por línea por la Máquina Virtual de Java y convertidas en la instrucción de máquina correspondientes para el sistema operativo en el que se está ejecutando. Esto permite que el mismo BYTECODE se pueda ejecutar en cualquier sistema operativo que tenga instalado una JVM.
Microsoft en su plataforma .Net establece una máquina virtual conocida como el Framework .Net que realiza una función similar a las JVM, mejorándolas en rendimiento y eficiencia. Se asemejan en que el código fuente no se compila a lenguaje de máquina si no al Lenguaje Intermedio Común (CIL por sus siglas en inglés) similar en Java al Bytecode. Para ejecutarse el compilador Just in Time (JIT) genera el código de máquina correspondiente a cada instrucción del código fuente.