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.

Preguntas similare

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#
Respuesta Responder a este mensaje
#2 Leonardo Zanatta
24/10/2003 - 21:13 | Informe spam
Gracias, la verdad es un paso díficil de hacer, el
cambiar de delphi a C#, sin embargo posiblemente el
compilador no fuera necesario debido a la plataforma,
pero es algo trabajoso de entender.

Gracias.

Saludos.


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#
.

Respuesta Responder a este mensaje
#3 Tristan
25/10/2003 - 12:25 | Informe spam
No entiendo a que te refieres con que el compilador no fuera necesario. Con
mi clase CSharpEvaluator no es necesario, si es a lo que te refieres. Solo
clases del framework, en concreto se basa en CSharpCodeProvider.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#4 Leonardo Zanatta
31/10/2003 - 01:07 | Informe spam
Gracias Juan Carlos.

La verdad no se ni por que contesté eso, posiblemente
venía de leer otro mensaje Perdón. Seguiré haciendo
pruebas y cuando menos me siento mejor al pensar que hay
mas gente que ha cambiado de borland a Microsoft y ha
quedado satisfecho. Espero no estar confiando demasiado
en .net y realmente sea lo que espero (Sinceramente sin
conocerla !!).

Gracias.
Saludos.

No entiendo a que te refieres con que el compilador no


fuera necesario. Con
mi clase CSharpEvaluator no es necesario, si es a lo que


te refieres. Solo
clases del framework, en concreto se basa en


CSharpCodeProvider.

Juan Carlos Badiola
MVP - C#


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida