Diferencia entre revisiones de «Proyecto Mono»

Línea 14: Línea 14:
 
'''Proyecto Mono:''' ha sido propuesto por Miguel de Icaza para crear un entorno de desarrollo y producción utilizando alguna de las tecnologías propuestas en la arquitectura .NET.<br>  
 
'''Proyecto Mono:''' ha sido propuesto por Miguel de Icaza para crear un entorno de desarrollo y producción utilizando alguna de las tecnologías propuestas en la arquitectura .NET.<br>  
  
== Que es el proyecto Mono?<br>  ==
+
 
 +
 
 +
== ¿Que es el proyecto Mono?<br>  ==
  
 
<br>Básicamente el proyecto Mono ha comenzando con un compilador de C#. La idea<br>inicial es explorar hasta que punto el lenguaje C# y la arquitectura propuesta para su máquina virtual (VM) puede ser una opción que mejore las condiciones de producción de los desarrolladores de software libre.  
 
<br>Básicamente el proyecto Mono ha comenzando con un compilador de C#. La idea<br>inicial es explorar hasta que punto el lenguaje C# y la arquitectura propuesta para su máquina virtual (VM) puede ser una opción que mejore las condiciones de producción de los desarrolladores de software libre.  
Línea 38: Línea 40:
 
<br>  
 
<br>  
  
'''¿Por qué es interesante el proyecto MONO?'''<br>
+
== '''¿Por qué es interesante el proyecto MONO?'''<br> ==
  
En la primera fase del proyecto MONO se está trabajando en tres áreas:<br>
 
  
  
 +
En la primera fase del proyecto MONO se está trabajando en tres áreas:<br>
  
'''Compilador C#'''
+
'''Compilador C#'''  
  
Esta ha sido la primera fase del proyecto. Solo existe un compilador completo de<br> C# actualmente es el desarrollado por MS para Windows. El compilador de C#<br> esta a un 50% y esta desarrollado en C#. La idea era hacerlo en C# para aprender a programar y conocer al 100% el lenguaje. Actualmente parsea el código y es<br> capaz de verificar la sintaxis y generar el 95% de los arboles de código. La idea es<br> que genere CLI y código C. Cuando este terminado se compilara con el<br> compilador de C# y generara su propio código fuente en CLI y C haciéndolo<br> transportable a otros sistemas.
+
Esta ha sido la primera fase del proyecto. Solo existe un compilador completo de<br> C# actualmente es el desarrollado por MS para Windows. El compilador de C#<br> esta a un 50% y esta desarrollado en C#. La idea era hacerlo en C# para aprender a programar y conocer al 100% el lenguaje. Actualmente parsea el código y es<br> capaz de verificar la sintaxis y generar el 95% de los arboles de código. La idea es<br> que genere CLI y código C. Cuando este terminado se compilara con el<br> compilador de C# y generara su propio código fuente en CLI y C haciéndolo<br> transportable a otros sistemas.  
  
 
<br> Actualmente esta compilando programas sencillos estilo: impresión de "hello<br> world", cálculo de series de fibonucci o creación de una ventana basada en las<br> GTK. No solo compila estos códigos sino que además genera ejecutables que son<br> correctamente interpretados por el JIT de MONO y el de MS.<br>  
 
<br> Actualmente esta compilando programas sencillos estilo: impresión de "hello<br> world", cálculo de series de fibonucci o creación de una ventana basada en las<br> GTK. No solo compila estos códigos sino que además genera ejecutables que son<br> correctamente interpretados por el JIT de MONO y el de MS.<br>  
  
<br>'''Clase de Librerías C#'''<br> Esta es la base fundamental del lenguaje C#. Realmente C# como lenguaje no es<br> más que otro lenguaje. Lo que hace realmente potente a C# y todos los lenguajes<br> que utilicen la arquitectura .NET son las bibliotecas de clases que pueden ser<br> utilizadas por cualquier lenguajes. Dentro del proyecto MONO y solo en unos<br> meses ya están implementadas el 50% de las clases.<br>Máquina Virtual.
+
<br>'''Clase de Librerías C#'''<br> Esta es la base fundamental del lenguaje C#. Realmente C# como lenguaje no es<br> más que otro lenguaje. Lo que hace realmente potente a C# y todos los lenguajes<br> que utilicen la arquitectura .NET son las bibliotecas de clases que pueden ser<br> utilizadas por cualquier lenguajes. Dentro del proyecto MONO y solo en unos<br> meses ya están implementadas el 50% de las clases.<br>Máquina Virtual.  
  
<br> La máquina virtual que ejecute CLI es la parte clave del proyecto. Si se consigue<br> que funcione óptimamente y que cualquier lenguaje pueda generar CLI podemos<br> estar ante la solución a los problemas de portabilidad e integración entre lenguajes.
+
<br> La máquina virtual que ejecute CLI es la parte clave del proyecto. Si se consigue<br> que funcione óptimamente y que cualquier lenguaje pueda generar CLI podemos<br> estar ante la solución a los problemas de portabilidad e integración entre lenguajes.  
  
<br> En el diseño del CLR se esta teniendo en cuenta la portabilidad desde el comienzo<br> del diseño. Esto nos permitirá que funcione bajo otros sistemas operativos sin<br> demasiados esfuerzos.<br><br>
+
<br> En el diseño del CLR se esta teniendo en cuenta la portabilidad desde el comienzo<br> del diseño. Esto nos permitirá que funcione bajo otros sistemas operativos sin<br> demasiados esfuerzos.<br><br>  
  
 
== Fuentes<br>  ==
 
== Fuentes<br>  ==

Revisión del 20:22 1 abr 2011

Proyecto Mono
Información sobre la plantilla
Última versión estable2.8.2 7 de enero, 2011
GéneroLenguaje de programación
Sistemas Operativos compatiblesMultiplataforma
LicenciaGPL, LGPL y MIT
Sitio web
http://www.mono-project.com


Proyecto Mono: ha sido propuesto por Miguel de Icaza para crear un entorno de desarrollo y producción utilizando alguna de las tecnologías propuestas en la arquitectura .NET.


¿Que es el proyecto Mono?


Básicamente el proyecto Mono ha comenzando con un compilador de C#. La idea
inicial es explorar hasta que punto el lenguaje C# y la arquitectura propuesta para su máquina virtual (VM) puede ser una opción que mejore las condiciones de producción de los desarrolladores de software libre.


Como lenguaje_de_programación lenguaje de programación C# recuerda mucho al lenguaje Java. Hay varios factores que han hecho que C# genere un interés en la comunidad de desarrolladores.


La primera es que las especificaciones del lenguaje están siendo estandarizadas por la ECMA desde el principio. Esta ya es un hecho excepcional viniendo de Microsoft.


Otra parte interesante de usar C# es el conjunto de clases que lleva asociado. La idea es que este conjunto de clases permita realizar cualquier tipo de programación. La parte innovadora es que estas clases, y en general el uso de librerías, esta también normalizado de modo que estas pueden ser utilizadas por otros lenguajes. Para que estas librerías puedan ser utilizadas estos lenguajes tienen que tener compiladores que generen CLI.


Además C# tiene una gestión de memoria y recolección de memoria no usada que le hace muy interesante. Realmente esta opción esta implementada en la máquina virtual que ejecuta el código CLI generado.


El compilador de C# del proyecto Mono esta siendo desarrollado en C#. De las
múltiples alternativas para realizar el compilador se ha elegido ésta por razones
"educativas". Desarrollar un compilador es un ejercicio de programación complicado y hacerlo en el lenguaje que se esté implementando hace que se descubra todo el potencial que tiene dicho lenguaje.


Existen otros proyectos libres interesados en la creación de un compilador de C#, pero no ha habido una convergencia por disparidad de criterios o herramientas utilizadas.


Aunque C# va a ser el primer lenguaje soportado por el compilador del proyecto
Mono, ya se están empezando a implementar otros lenguajes como VB Object. No esta previsto de momento el soporte de otros lenguajes en el compilador pero la arquitectura actual de Mono permite con bastante facilidad que se puedan integrar otros lenguajes gestionados como Python .NET o Perl .NET.


¿Por qué es interesante el proyecto MONO?

En la primera fase del proyecto MONO se está trabajando en tres áreas:

Compilador C#

Esta ha sido la primera fase del proyecto. Solo existe un compilador completo de
C# actualmente es el desarrollado por MS para Windows. El compilador de C#
esta a un 50% y esta desarrollado en C#. La idea era hacerlo en C# para aprender a programar y conocer al 100% el lenguaje. Actualmente parsea el código y es
capaz de verificar la sintaxis y generar el 95% de los arboles de código. La idea es
que genere CLI y código C. Cuando este terminado se compilara con el
compilador de C# y generara su propio código fuente en CLI y C haciéndolo
transportable a otros sistemas.


Actualmente esta compilando programas sencillos estilo: impresión de "hello
world", cálculo de series de fibonucci o creación de una ventana basada en las
GTK. No solo compila estos códigos sino que además genera ejecutables que son
correctamente interpretados por el JIT de MONO y el de MS.


Clase de Librerías C#
Esta es la base fundamental del lenguaje C#. Realmente C# como lenguaje no es
más que otro lenguaje. Lo que hace realmente potente a C# y todos los lenguajes
que utilicen la arquitectura .NET son las bibliotecas de clases que pueden ser
utilizadas por cualquier lenguajes. Dentro del proyecto MONO y solo en unos
meses ya están implementadas el 50% de las clases.
Máquina Virtual.


La máquina virtual que ejecute CLI es la parte clave del proyecto. Si se consigue
que funcione óptimamente y que cualquier lenguaje pueda generar CLI podemos
estar ante la solución a los problemas de portabilidad e integración entre lenguajes.


En el diseño del CLR se esta teniendo en cuenta la portabilidad desde el comienzo
del diseño. Esto nos permitirá que funcione bajo otros sistemas operativos sin
demasiados esfuerzos.

Fuentes

www.mono-project.com/

http://www.go-mono.com
http://www.go-mono.com/faq.html
http://developer.intel.com/software/idap/ecma