Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Scripts de LUA

Iniciado por bnl, 19 de Julio de 2006, 02:46:58 PM

« anterior - próximo »

bnl

He hecho un pequeño ejemplo para aprender a manejar el codedom. Os lo pego por si a alguien le puede servir. Simplemente a partir de una cadena (q se podria leer de un fichero) que contiene el codigo de una clase la compilo y la ejecuto sin escribir en disco.



       Dim fuente As String

       fuente = "Imports Microsoft.VisualBasic" & vbCrLf

       fuente &= "Public Class Clase" & vbCrLf
       fuente &= "Public shared Sub Saluda()" & vbCrLf
       fuente &= "MsgBox(""222Hello, World!"") " & vbCrLf
       fuente &= "End Sub" & vbCrLf
       fuente &= "End Class" & vbCrLf

       Dim provider As VBCodeProvider = New VBCodeProvider()

       Dim cp As New CompilerParameters()

       cp.ReferencedAssemblies.Add("System.dll")
       cp.GenerateInMemory = True
       cp.GenerateExecutable = False
       Dim cr As CompilerResults = provider.CompileAssemblyFromSource(cp, fuente)

       If cr.Errors.Count = 0 Then
           Dim a As System.Reflection.Assembly
           a = cr.CompiledAssembly
Nothing)
           a.GetType("Clase").GetMethod("Saluda").Invoke(Nothing, Nothing)
       End If

Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

bnl

No habia visto el ultimo enlace.
Mi hola mundo es bastante sencillote
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

Diferencial

Con el system.codeDom seguro que puedes crear tu propio lenguaje. bnl tu que te has enterado mejor del tema, sabes como se podria hacer?
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

bnl

Tampoco lo he mirado demasiado. No sabría decirte. Seguramente si a partir de codigo en tu lenguaje generas el codedom luego podrias grabarlo como un ensamblado.
O quiza con el emit tendrias que ir traducciondo cada instruccion de tu lenguaje a MSIL.

No se, lo mismo son burradas.
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

[Over]

Hola.

No comentas el mismo error que mucha gente y te pongas a programar tu lenguaje de script... porque siendo sincero. no creo que superes el nivel de los lenguajes que hay en un tiempo aceptable.

Mirate bien LUA y que veras que realmente es super sencillo y sino te gusta, mirate el AngelScript.

Yo he usado los dos y ambos tienen cosas buenas y malas, pero molan mucho y son sencillos de usar. Vamos, muchisimo más que hacerte tu uno propio...

Marci

Cita de: "[Over"]No comentas el mismo error que mucha gente y te pongas a programar tu lenguaje de script...
Eeeeeh. Eso me ha dolido. Mi tiempo libre lo despercio como me apetece :D

Ahora en serio, montarse un sistema de script un poco funcional es una comedura de coco y como tu dices probablemente una perdida de tiempo. Lo bueno es que aprendes un monton de cosas de como funcionan los lenguajes de programacion y los compiladores/interpretes y te das cuenta de que muchos de estos son autenticas maravillas. Y no te cuento si te metes a bajo nivel. Altamente recomendable como practica.

bnl

Yo en la universidad estudie todo esto e hice una practica en PASCAL. Es bastante interesante y la complejidad tampoco es tan elevada (tampoco es que sea trivial precisamente)

Citar
Mirate bien LUA y que veras que realmente es super sencillo y sino te gusta, mirate el AngelScript.

Si, me estuve mirando LUA. Utilizarlo con .NET es bastante sencillito, pero comente desde el script puedes ejecutar funciones del framework de .NET sin haberlas registrado  y eso no me hace ninguna gracia.
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.