Detrás de todo programa existe un código fuente que se escribió, y para que ese programa cobrará vida (hablando en sentido figurado), ese código fuente tuvo que pasar por un proceso de compilación.

Así pues, Roslyn la estrella de este artículo, es el siguiente compilador para .Net respectivamente para los lenguajes de programación C# y VB. Antes de platicar de Roslyn, retomemos algunos conceptos de compilación de software.

El proceso de compilación

Es importante mencionar, que programar un compilador es uno de los trabajos más desafiantes que un desarrollador pueda enfrentarse, implica un montón de análisis a las instrucciones, operadores, tabla de símbolos y su relación entre ellos para darle sentido (sintáctica y semántica).

Sin dar grandes explicaciones, hablando en términos de software, la compilación es el acto de tomar un código fuente escrito en algún determinado lenguaje de programación de alto nivel y convertirlo en algo que el hardware pueda ejecutar, estas son las tres fases:

img3

Sin embargo, los programas que están basados en la arquitectura del .Net Framework de código administrado, tienen un proceso ligeramente distinto.

img1

Cuando el compilador de .Net toma el código fuente, no lo traduce directamente a código máquina, si no que pasa a un estado llamado IL (Intermediate Language).

Intermediate Language / IL

Este código intermedio consiste en un conjunto de instrucciones independientes del sistema operativo o procesador, se ocupa de la manipulación de objetos, accesos de memoria y demás. Este código, al desconocer la arquitectura sobre la que va a correr, no es directamente ejecutable.

IL necesita pasar por otro proceso de compilación llamado Just In Time Compiler. De tal manera que el proceso completo queda así:

img2

Nuestro motor de ejecución será nuestro ya conocido Common Language Runtime o CLR. De ahí que cuando tenemos un equipo completamente nuevo con solo el sistema operativo y nuestros programas escritos en C# o VB no corran, será porque no tiene instalado el .Net Framework.

¿Quién es Roslyn?

Roslyn es la siguiente generación de compiladores de Microsoft basado en .Net (o sea que no está escrito lenguajes nativos como C++) para Visual Basic y C# y fue anunciado en el Microsoft Build 2014.

Con el compilador Roslyn encontramos una serie de API’s que nos permitirán crear y recorrer árboles sintácticos de código de una manera eficiente y rápida sin trabajar a bajo nivel.

img4

Las principales características de Roslyn son:

  • Refactoring
  • Analizadores
  • Roslyn viene muy de la mano con las características de C# 6.0 por lo que también vale la pena leer un poco más al respecto.

Roslyn es un proyecto Open Source disponible en el repositorio de GitHub y si quieres leer mas sobre el proyecto, también lo encuentras en la pagina oficial de .Net Foundation.
Si tienes Visual Studio 2015, este ya lo tiene incorporado por lo que podrás probar proyectos con este compilador.

Así que… ¿Vas en la escuela y te dejaron hacer un compilador? Roslyn te puede facilitar la vida, ¿Quieres meterle mano al siguiente compilador de Microsoft? Entonces, contribuye y empieza con tus commits en Github 🙂


Sigueme en Twitter @vmorenoz

¿Te gustó este artículo? Únete a Facebook en MicrosoftLand

Deja un comentario