IronPython es una implementación de Microsoft del intérprete Python escrito totalmente en C#. El proyecto trata de seguir al pie de la letra el lenguaje Python, como implementación de Python que es. Esto hace que cualquier programa escrito en Python pueda ser interpretado con IronPython, con las ventajas añadidas de poder usar las bibliotecas de la plataforma .NET y poder compilar el código a bytecode. Apareció en 2006, y su última versión estable es la 2.7.2.1 , aparecida en marzo de 2012. IronPython es a lenguaje dinámico, construido para correr sobre Microsoft .NET Framework 2.0 (o mayor), así que ese es el requerimiento que debe tener en cuenta, antes de instalarlo.

¿Qué es un Lenguaje Dinámico?

En los lenguajes tipeados dinámicamente, no tiene que definir el tipo de una variable antes de usarla. Vamos a ver un código escrito en C# (un lenguaje tipeado estáticamente), y luego lo compararemos con el mismo código escrito en IronPython. El siguiente es un método escrito en C#, que demuestra los tipos estáticos:

public void TiposEstáticos()
{
   // el tipo de la izquierda obliga a que en la derecha 
   // asignemos un valor válido.
   int number = 15;
   string pais= "Panamá";
   bool isPar = true;
   // La línea siguiente disparará un error en tiempo de 
   // compilación ya que 34 no es un valor booleano válido
   bool isPrincipante = 34;
}

Ahora compararemos el código C# con un método IronPython que realiza la misma tarea, aunque tiene un resultado ligeramente diferente:

def DynamicTyping():
             # El valor del tipo a la derecha, determina el tipo de 
             # la variable a la izquierda
             number = 15
             pais = "Panamá"
             isPar= True
             # Esto NO dispara un error, ya que el compilador infiere 
             # el tipo de la variable a partir de su valor
             isPrincipiante = 34

Veamos las diferencias: En un lenguaje de tipos estáticos como C#, el compilador necesita saber en tiempo de compilación cuál es el tipo de una variable. El intento de asignar un valor cuyo tipo no coincide con el tipo de la variable, genera un error y el código no compilará. (en el código C# tratar de asignar el número 34 a la variable booleana isPrincipiante genera un error en tiempo de compilación.) En cambio, en el código IronPython, a la variable llamada "isPrincipiante", se le asigna un valor de 34 y esto no genera un error, ya que el compilador inferirá a partir de esta asignación el tipo de la variable asignada. Es muy importante conocer este tipo de asignación, ya que si bien es muy diferente a muchos lenguajes de programación, es muy potente si se usa correctamente. En la definición del método de C#, se incluyó la palabra "void" para indicar que el método no devuelve un valor. Pero si en algún momento queremos devolver el valor de la variable "pais", habría que cambiar la palabra "void" por "string" para indicarle al compilador de C# que queremos devolver un valor de tipo string, y además deberíamos agregar return name al final del método para evitar un error del compilador y devolver el tipo de dato correctamente. Esto no es el caso de IronPython, que se encargará de manejar esto examinando el tipo de datos del valor devuelto al salir de la función. Además, IronPython, no necesita ni puntos y comas al final de una sentencia, como tampoco abrir y cerrar llaves para marcar un bloque de código. En realidad, IronPython, confía en los espacios en blancos y en la identación (sangría) para controlar el flujo del programa. Puede bajar la última versión de IronPython, desde esta dirección Una vez que haya descargado el archivo, ejecute el paquete de instalación. Siga las directivas que aparecen en pantalla y así instalará IronPython 2.7.1. Después que lo haya instalado, abrimos una ventana de comandos y vamso al directorio dónde se instaló IronPython (por defecto, "C:\Program Files\IronPython 2.7.1"). Si escribe ipy y pulsa Enter, deberá ver la ventana siguiente, que le indicará que la instalación fue exitosa:

IPY
Figura 1 - IPY es un intérprete interactivo de IronPython

 

 

 


Ejemplos de uso de IPY

Si todavía no lo ha hecho, abra una ventana de comandos y vaya al directorio IronPython (para no tener que hacer esto cada vez que quiera usar ipy, puede agregar el directorio a la variable de entorno path). Escriba ipy y presione Enter. El intérprete IronPython debe comenzar. Ejercicio 1: en el indicador (prompt >>>), escriba 12 + 20 + 4 y presione Enter. La salida será el número 36, seguida de un nuevo indicador (prompt), como se muestra en la figura 2:

 

 

 

IPY
Figura 2 - Salida del ejercicio 1 corrido en el ipy (intérprete IronPython)


Ejercicio 2: Escriba resultado = 21 y presione Enter. El intérprete debe responder inmediatamente con un nuevo prompt, como se ve en la figura 3:

IPY
Figura 3 - Salida del ejercicio 2 corrido en el ipy (intérprete IronPython)


Ejercicio 3: Escriba print "El resultado es", resultado y presione Enter. El intérprete inmediatamente responderá como se ve en la figura 4:

IPY
Figura 4 - Salida del ejercicio 3 corrido en el ipy (intérprete IronPython)


Ejercicio 4: Escriba exit() y presione Enter para salir del intérprete. La salida se ve en la figura 5:

IPY
Figura 5 - Terminando el intérprete IronPython


El intérprete no es sólo para escribir código en tiempo real, si no que también puede ser usando para correr scripts de IronPython, que son basicamente archivos de texto que contienen instrucciones específicas para hacer que IronPython haga lo que querramos que haga. Estaré cubriendo eso en un próximo artículo de La Escuela del Programador...

respag
Panamá - © 2012
Haga su donación para colaborar con La Escuela del Programador

La Escuela del Programador es un sitio web sin anuncios, sin ánimo de lucro, no es un sitio web comercial. Es el sueño de compartir con todos, muchos años de una gran pasión. Si realmente encuentra este sitio útil y lo aprovecha, le pido su generosa y no importa cuán modesta colaboración, simplemente para afrontar los costos de mantener este sitio disponible en internet.
No deseo lucrar con este sitio, ya que lo hago desinteresadamente, sólo le pido que, si puede, aporte (desde un dólar hasta lo que crea que puede dar), para afrontar los costos de dominio y hosting. Muchísimas gracias y ojalá juntos podamos hacer un sitio que sea una buena fuente de aprendizaje de programacíon en español.

Si no se siente en condiciones de colaborar, igualmente será bienvenido al sitio, es libre para todos y será un placer que encuentre mis artículos provechosos, pero si realmente me ayuda con una donación minima, seguramente, colaborará para que La Escuela del Programador se mantenga en la Web y crezca, conviertiendo a este sitio hecho con mucha pasión, dedicación y esfuerzo, en una buena fuente de aprendizaje.

Mis saludos cordiales y gracias por interesarse en mi sitio.

Rubén E. Spagnuolo
respag
Panamá - © 2012