Also known as DLR
system Platform
Dynamic Language Runtime (DLR) to 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: * Dynamiczny system typów, współdzielony pomiędzy wszystkie implementacje języków wykorzystujących DLR. * Expression Trees, czyli dynamiczne drzewa wyrażeń reprezentujące semantykę danego języka. * Call Site Caching, czyli mechanizm pamięci podręcznej przyspieszający operacje wykonywane na obiektach o dynamicznych typach danych, zazwyczaj poprzez zapamiętywanie cech tych obiektów (najczęściej ich typów danych). * Dynamic Object Interoperability, to zestaw klas i interfejsów reprezentujących dynamiczny obiekt i operacje na nim, które mogą być użyte przez programistów implementujących kolejne dynamiczne języki programowania. * API pozwalające na osadzanie (hosting) dynamicznych języków we własnych aplikacjach. Główne zalety DLR: * Uproszczenie tworzenia kolejnych implementacji dynamicznych języków programowania wykonywanych poprzez CLR. * Rozszerzenie istniejących statycznie typowanych języków programowania, takich jak C#, czy Visual Basic .NET, o wybrane cechy dynamicznych języków programowania. * Niezależność od środowiska uruchomieniowego CLR. Jeżeli w przyszłej wersji platformy .NET zostanie usprawniony np. garbage collector, wszystkie języki uruchamiane na tej platformie automatycznie będą mogły skorzystać z tego usprawnienia. * Możliwość współdzielenia bibliotek i obiektów. Dzięki DLR każdy typ danych stworzony w dowolnym języku programowania wykonywanym za pomocą środowiska uruchomieniowego CLR jest ze sobą kompatybilny. Obiekt stworzony w języku IronPython może być wykorzystany w języku C# bez żadnych dodatkowych warstw pośredniczących oraz konwersji typów danych. * DLR przyczyniło się do stworzenia na platformie .NET Framework szybkich implementacji mechanizmów typu oraz , zapewniających wydajne wykonywanie dynamicznych operacji poprzez zastosowanie polimorficznej pamięci podręcznej. 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 , czy . 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); } } }}
Abstract from DBpedia / Wikipedia · CC BY-SA
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).