Dynamic Language Runtime

Dynamic Language Runtime (DLR) – projekt firmy Microsoft mający na celu stworzenie zestawu usług zbudowanych na bazie Common Language Runtime (CLR) wspomagających tworzenie i wykonywanie różnych dynamicznych języków programowania oraz ich integrację z platformą .NET Framework.

Usługi te to:

Główne zalety DLR:

Mechanizmy zawarte w DLR zostały użyte do tej pory przy implementacjach języków IronPython oraz IronRuby. DLR jest również częścią platformy .NET Framework w wersji 4.0, oferując wsparcie dla wybranych możliwości dynamicznych języków programowania w sztandarowych, statycznie typowanych językach, takich jak C#, czy Visual Basic.NET.

Najnowsza wersja bibliotek DLR została przez firmę Microsoft przekazana w ręce społeczności i jest rozprowadzana na licencji Apache License, v2.0. DLR będzie również rozwijany niezależnie przez zespół odpowiedzialny za rozwój platformy .NET Framework, w celu zapewnienia wsparcia dla większej ilości możliwości, oferowanych przez dynamiczne języki programowania.

Przykład integracji dynamicznego języka IronPython oraz statycznie typowanego języka C#:

using System;
using System.Linq;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;

namespace CallingPythonLib
{
    class Program
    {
        static void Main(string[] args)
        {
            // ustawienie ścieżki do bibliotek języka Python
            System.IO.Directory.SetCurrentDirectory(@"C:\Program Files (x86)\IronPython 2.7\Lib\");

            ScriptRuntime py = Python.CreateRuntime();

            // utworzenie obiektu reprezentującego typ danych zdefiniowany w języku Python
            dynamic random = py.UseFile("random.py");

            int[] items = Enumerable.Range(1, 7).ToArray();

            // wywołanie metody dynamicznego typu Random
            random.shuffle(items);

            foreach (int item in items)
            {
                Console.WriteLine(item);
            }
        }
    }
}

Linki zewnętrzne