Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
y máquinas virtuales
Cuando aprendemos a programar, normalmente escogemos o nos
imponen un determinado lenguaje de programación. Una de las
primeras distinciones que es interesante conocer acerca de nuestro
lenguaje es si el lenguaje se compila o se interpreta.
La confección de un programa se realiza
escribiendo una serie de órdenes o instrucciones
que siguen las normas de un lenguaje de
programación. Estas órdenes las escribimos en
ficheros de texto plano, utilizando algún editor de
textos más o menos sencillo, o bien alguno de los
editores especializados para programación
A estos ficheros de texto les llamamos fuente. (del inglés source. A
menudo se utilizan expresiones como código fuente, ficheros fuente,
etc.).
Sin embargo, sabemos que la CPU sólo entiende su propio lenguaje,
que normalmente es extraordinariamente sencillo comparado el
lenguaje de programación que estamos aprendiendo. El lenguaje de la
CPU es el código máquina (del inglés machine code). El código
máquina son secuencias binarias que la CPU ejecuta como
instrucciones sencillas
Los humanos expresamos la dinámica de un programa mediante un
lenguaje de los llamados de "alto nivel". Estos son lenguajes como C#,
Java, Visual Basic, Delphi, Python, etc... casi cualquiera de los nombres
que conoces.
Decimos que un lenguaje tiene un nivel más bajo cuanto más parecido
es en su expresión al código máquina y al funcionamiento de la CPU, y
de un nivel más alto cuanto más ajeno es al funcionamiento de la CPU
y más se acerca a la forma de razonar humana.
Compilar
-La ejecución es muy rápida debido a que el -La ejecución es más lenta, ya que para cada -La ejecución no es tan rápida como en la
programa ya ha sido traducido a código línea del programa es necesario realizar la compilación tradicional ni tan lenta como en la
máquina traducción intepretación
-No hay ejecutable, así que si existe un
-El ejecutable va dirigido a una plataforma
intérprete para una plataforma concreta, el
concreta (una CPU, un sistema operativo, y
programa se podrá ejecutar en ambas.
quizá alguna otra consideración), siendo
Típicamente, los programas interpretados
prácticamente imposible portarlo a otra. En -El ejecutable va dirigido a una CPU
son mucho más portables que los
ocasiones, si existe un compilador para otra imaginaria. Se puede transportar a una
compilados, ya que suelen existir
plataforma, se puede recompilar el plataforma para la cual exista una "máquina
intérpretes del mismo lenguaje en distintas
programa, aunque normalmente esto virtual" (el intérprete de código intermedio)
plataformas. Los programas que se van a
plantea serias dificultades. Los programas
interpretar no suelen ser muy dependientes
que se van a compilar suelen estar muy
de su plataforma de destino, siendo más
ligados a la plataforma de destino.
portables.
Los lenguajes compilados suelen -Los lenguajes interpretados no suelen -La plataforma de destino es virtual. Así
proporcionar al programador ser muy dependientes de la plataforma pues, los programas son dependientes de
mecanismos más potentes y flexibles, a de destino, pero en contrapartida suelen esta plataforma virtual, que es emulada
costa de una mayor ligazón a la ser menos flexibles y potentes que los luego sobre plataformas reales por la
plataforma. compilados. "maquina virtual".