Desarrollo de Compiladores en C#

24/10/2003 - 01:47 por Leonardo Zanatta | Informe spam
Que tal Comunidad.

Soy un desarrollador de aplicaciones, en donde la mayoría
de ellas incluyen un compilador para desarrollado por "la
casa" necesario para darle "flexibilidad" a los sistemas.
Todos nuestros desarrollos han sido desarrollados en
Delphi, sin embargo hace poco incurcionamos en un curso
de .NET y lo estamos evaluando para que sea nuestra nueva
plataforma de desarrollo para nuevas versiones.

Sin embargo el problema es el siguiente:
La solución que será desarrollada trabajará bajo un
esquema cliente-servidor, en donde el cliente "envia"
el "codigo fuente" al servidor, y este lo compila y lo
ejecuta. Al ver algunas de las características de .net,
vimos que es posible compilar código fuente de VB o C# en
tiempo de ejecución de la aplicación, por lo que el
desarrollo del compilador "de casa" ya no sería necesario
y tomaríamos como lenguaje de programación dentro de la
aplicación C# o VB (Obviamente desarrollando todas las
clases que le den funcionalidad práctica a la aplicación).

Ahora bien la pregunta es la siguiente, que tan
recomendable sería hacer esto tomando en cuenta que se
pudieran recivir varias peticiones simultáneas, ¿La
compilación podría ser rápida?, es posible compilar y
dejar el "ejecutable" en memoria y desde ahí ejecutarlo
sin tener que utilizar acceso a disco? o ¿Estamos
enloqueciendo y lo mejor es seguir con delphi y el
compilador de casa?, Una de las grandes ventajas que
vemos es que el usuario final no tendría que "aprender"
un nuevo lenguaje de programación (Como actualmente
sucede), sino que gracias al compilador "interno" del
framework podría elegir entre lenguajes comunes como VB o
C#.

Alguien me podría dar su opinion.

gracias. de antemano.
Saludos.
 

Leer las respuestas

#1 Tristan
24/10/2003 - 11:19 | Informe spam
Puedes compilar el código en memoria. De todas formas,
para conseguir la máxima eficiencia, lo que haría más
bien, es grabar el ensamblado generado (en memoria) a
disco, y solo compilarlo cuando haya cambios en el
fuente. La clase Assembly tiene métodos para
cargar/grabar un ensamblado a disco. De todas formas, el
compilador es muy eficiente.

Dejé en un hilo de asunto "Compilador propio para script"
del 30/9 un mensaje con la clase CSharpEvaluator que
espero te pueda orientar sobre lo que puedes hacer con
CSharpCodeProvider.

Por cierto, yo tb programaba en Delphi hasta hace dos
años (desde la 1.0). Desde entonces me convertí en un
fanático de C# :-))


Juan Carlos Badiola
MVP - C#

Preguntas similares