Dynamic Language Runtime


Dynamic Language Runtime

La DLR est une surcouche facilitant l'implémentation et l'interopérabilité des langages dynamiques. La DLR permet de supporter plusieurs langages. Cette technologie est utilisé par Microsoft pour la plateforme .NET et Sun pour son langage java.

La CLR de Microsoft est l'équivalent de la machine virtuelle Java (JVM). La CLR ne gère que les langages propres à Microsoft tandis que la DLR de Microsoft a été créée pour prendre en charge d'autres langages. Sun suit la même politique d'ouverture en ajoutant à sa JVM une DLR de nom Da Vinci Machine permettant la gestion d'autres langages que Java. Le terme JVM devient donc inapproprié. Des langages tiers avaient déjà été portés sur la JVM en reprenant la syntaxe de langages existants. La raison principale des DLR est de faciliter le portage de langages tiers ; il est en effet très difficile de faire fonctionner un code dynamique (Python, Ruby) sur un environnement qui est typé lors de la compilation (statically typed environnement). Le portage d'un langage sur la DLR est donc plus facile que sur la CLR.

Sommaire

DLR Microsoft

La DLR est une surcouche qui implémente les concepts de la CLI et utilise le Framework .NET. La DLR permet le support de langages non Microsoft comme Python et Ruby alors que la CLR (sur laquelle est implémentée la DLR) utilise C# et VB.NET. Les versions de Python et Ruby fonctionnant sur la DLR sont appelées IronPython et IronRuby. IronPython et IronRuby sont sous licence Apache License, v2.0. D'autres implémentations sont supportés comme JScript .NET et VBScript .NET.

L'intérêt de la DLR se trouve dans l'utilisation de langages dynamiques comme le langage PHP et dans le fait que certains langages ont une syntaxe beaucoup plus simple et structurée comme Python.

Les premières applications fonctionnant avec les langages de la DLR sont :

  • Microsoft Silverlight 2.0, provenant de WPF, ne fonctionne que dans un navigateur (Mac/Intel et Windows) et supporte la DLR, IronPython et managed JScript
  • Unity 3D fonctionne sur Mono est la machine virtuelle implémentant la CLR sous Linux et pas seulement le navigateur
  • Manifold System supporte tous les langages compatibles .NET (IronPython, VBScript .NET, …) à l’exception d’IronRuby.

L'infrastructure de la DLR offerte par Microsoft a mis fin au portage natif de Ruby .Net[1].

Quelques langages ont été portés sur la DLR de microsoft :

Le code managé JScript et C# n'est pas supporté actuellement par la DLR

DLR de Sun

Quelques langages ont été portés sur la JVM de Sun

Les langages supportés par la DLR de Sun sont

  • Groovy est l'implémentation d'un langage de script reprenant la syntaxe Java et les idées de Python et Ruby
  • JavaFX est la mise en œuvre d'un langage de script permettant de concurrencer Silverlight et Adobe Flex

Da Vinci est la réponse de Sun à Microsoft : elle permet à la machine virtuelle java de prendre en charge les langages dynamiques.

Notes et références

Articles connexes

  • Da Vinci Machine (en)

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Dynamic Language Runtime de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Dynamic Language Runtime — Developer(s) Microsoft Dynamic Language Runtime Team Stable release 1.0 / April 16, 2010 Operating system Microsoft Windows, Debian, Ubuntu Platform …   Wikipedia

  • Common Language Runtime — (англ. CLR  общеязыковая исполняющая среда)  виртуальная машина, интерпретирующая и исполняющая код на языке CIL, в который компилируются программы, написанные, в частности, на .NET совместимых языках программирования (C#, Managed… …   Википедия

  • Common Language Runtime — The CLR converts CIL to native code. The Common Language Runtime (CLR) is the virtual machine component of Microsoft s .NET framework and is responsible for managing the execution of .NET programs. In a process known as just in time (JIT)… …   Wikipedia

  • Language Integrated Query — LINQ в составе .NET Framework Language Integrated Query (LINQ)  проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework …   Википедия

  • Language Integrated Query — LINQ redirects here. For the card game, see Linq (card game). Language Integrated Query Influenced by SQL, Haskell Language Integrated Query (LINQ, pronounced link ) is a Microsoft .NET Framework component that adds native data querying… …   Wikipedia

  • Dynamic programming language — This article is about a class of programming languages, for the method for reducing the runtime of algorithms, see Dynamic programming. Dynamic programming language is a term used broadly in computer science to describe a class of high level… …   Wikipedia

  • Runtime — In computer science, runtime or run time describes the operation of a computer program, the duration of its execution, from beginning to termination (compare compile time). The term runtime can also refer to a virtual machine to manage a program… …   Wikipedia

  • Dynamic recompilation — In computer science, dynamic recompilation (sometimes abbreviated to dynarec or the pseudo acronym DRC) is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling… …   Wikipedia

  • Dynamic compilation — is a process used by some programming language implementations to gain performance during program execution. Although the technique originated in the Self programming language,[citation needed] the best known language that uses this technique is… …   Wikipedia

  • Dynamic loading — is a mechanism by which a computer program can, at run time, load a library (or other binary) into memory, retrieve the addresses of functions and variables contained in the library, execute those functions or access those variables, and unload… …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.