100 likes | 273 Views
Dynamic languages for dynamic applications. Miha Valen čič. Poznavanje tematike. DLR Funkcijski jeziki Python IronPython, IronRuby. Kaj je DLR?. Dynamic Language Runtime Microsoft.Scripting.dll Vsebovan v IronPython, IronRuby, Silverlight, Managed JScript Oz. Glavne značilnosti DLR.
E N D
Dynamic languages for dynamic applications Miha Valenčič
Poznavanje tematike • DLR • Funkcijski jeziki • Python • IronPython, IronRuby
Kaj je DLR? • Dynamic Language Runtime • Microsoft.Scripting.dll • Vsebovan v IronPython, IronRuby, Silverlight, Managed JScript • Oz....
Glavne značilnosti DLR • “Enostavna” gradnja dinamičnih jezikov • Interoperabilnost med dinamičnim jezikom in CLR • Interoperabilnost med različnimi dinamičnimi jeziki, ki so zgrajeni na DLRju (DLRConsoleDemo) • “The DLR adds functionality such as a shared dynamic type system, a standard hosting model, and support to make it easy to generate fast dynamic code and fast symbol tables.”
3 nivoji uporabe DLRja • ScriptRuntime.Create().Execute(file | text) • Engine, compiled code, sources, obj operations • Full control, including language tools, remoting...
Primeri uporabe DLR • Dinamična .NET koda • Bogato "skriptno" okolje • Kreiranje DSL • LOLcode - http://www.iunknown.com/2007/11/lolcode-on-dlr.html • Dinamično širjenje funkcionalnosti aplikacije • Primer: Resolver (http://www.resolversystems.com/)
IronPython / IronRuby • Open source projekta (codeplex, rubyforge) • “Še ena” implementacija jezika • Podpora native funkcijam, razredom • Podpora za C extensione, ki so platformsko neodvisni (IronClad za IPY) • Integracija z .NET svetom, in to v obe smeri • Dokumentacija (je ni, ker je prejšnja zastarela ) • Primer
DLR in klasične .NET aplikacije • Hosting specifikacija • (http://compilerlab.members.winisp.net/dlr-spec-hosting.pdf) • Primer aplikacije
Reference • DLR Resources • http://compilerlab.members.winisp.net/ (hosting specification) • http://blogs.msdn.com/mmaly/ • http://blogs.msdn.com/ironpython/archive/2008/03/16/dlr-resources.aspx • http://www.dotnetguru.org/us/dlrus/DLR2.htm • http://www.iunknown.com/2007/11/lolcode-on-dlr.html • http://blogs.msdn.com/hugunin/ • http://jimmy.schementi.com/silverlight/dlrconsole/ • IPY resources • http://msdn.microsoft.com/en-us/magazine/cc300810.aspx • http://blog.jimmy.schementi.com/2008/05/story-of-ruby-and-python-in-silverlight.html • http://www.resolversystems.com • http://www.jjude.com/index.php/archives/2008/09/07/ironpython-learnings/