2.
EJECUCIÓN DE UN PROGRAMA EN VISUAL BASIC .NET
En
un lenguaje de programación tradicional, la ejecución
de un programa es la que se muestra en la figura 1. En
ella, llamamos “plataforma hardware” al conjunto
del hardware y del sistema operativo. El programa se
encuentra compilado, es decir, traducido en un lenguaje
binario (el llamado “lenguaje máquina”)
que la plataforma hardware reconoce. Este programa puede
ser ejecutado directamente por dicha plataforma, como
puede observarse en la figura.
Figura
1. Ejecución de un programa tradicional
La
ventaja de este enfoque tradicional es que es rápido,
eficiente y directo. La desventaja es que, como cada
plataforma hardware entiende un lenguaje máquina
diferente, el programa compilado es completamente específico
para esta plataforma. Esto hace imposible que un programa
compilado para un PC pueda ejecutarse, por ejemplo, en
una máquina Windows CE.
Por
el contrario, en Visual Basic .NET, la ejecución
de un programa es la que aparece en la figura 2 (nótese
que en las figuras de la 1 a la 4 del presente artículo,
los rectángulos representan archivos con código
de programación y las figuras redondeadas simbolizan
programas -o plataformas- en ejecución). El programa
compilado es ahora un conjunto de clases (pues se trata
de un lenguaje orientado a objetos). Pero estas clases
no están en lenguaje máquina, sino en un
lenguaje intermedio llamado MSIL (“MicroSoft Intermediate
Language”). Como este lenguaje no es entendido
por la plataforma hardware (la cual, como sabemos, sólo
conoce el lenguaje máquina), se necesita un programa
para ejecutarlo. Este programa se llama CLR (“Common
Language Runtime”) y se ejecuta directamente sobre
la plataforma. Microsoft ofrece de forma gratuita un
CLR para cada plataforma Windows.
Figura
2. Ejecución de un programa en Visual Basic
.NET
Como
se ve en la figura, este enfoque es más complicado
que el anterior y, por ello, su utilidad no es evidente
a primera vista. Sin embargo, hay que notar que el lenguaje
MSIL es independiente de la plataforma hardware y, por
ello, puede ejecutarse en cualquier plataforma (siempre
que exista un CLR para ella, lo que, como hemos visto,
sucede para todas las plataformas Windows, aunque no
para el resto). Así, el programa compilado en
un PC se ejecutará en una Windows CE, sin más
necesidad que copiarlo.
Esto
da independencia de la plataforma, siempre que tenga
Windows como sistema operativo. Dicho de otra manera,
da independencia del hardware. (Aunque existe un proyecto
de código abierto, llamado Mono, que intenta implementar
el CLR sobre Linux, es dudoso que esto permita que en
el futuro que los programas .NET sean independientes
del sistema operativo, por razones que sería muy
largo explicar aquí).
|