Dynamic Language Runtime

Dynamic Language Runtime (DLR)
Original author(s)Microsoft Dynamic Language Runtime Team
Developer(s).NET Foundation
Initial releaseApril 16, 2010; 14 years ago (2010-04-16)
Stable release
1.3.1 / December 2, 2021; 3 years ago (2021-12-02)[1]
Repositorygithub.com/IronLanguages/dlr
Written inC#
Operating systemWindows, macOS, Linux (Debian, Ubuntu)
PlatformCommon Language Infrastructure
TypeSystem platform
LicenseApache License 2.0
Websitedocs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamic-language-runtime-overview

The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include:

The DLR is used to implement dynamic languages on the .NET Framework, including the IronPython and IronRuby projects.

Because the dynamic language implementations share a common underlying system, it should be easier for them to interact with one another. For example, it should be possible to use libraries from any dynamic language in any other dynamic language. In addition, the hosting API allows interoperability with statically typed CLI languages like C# and Visual Basic .NET.

History

Microsoft's Dynamic Language Runtime project was announced by Microsoft at MIX 2007.[2][3]

Microsoft shipped .NET DLR 0.9 beta in November 2008,[4] and final 0.9 in December 2008. Version 1.0 shipped in April 2010. In July 2010, Microsoft changed the license of the DLR from the Microsoft Public License to the Apache License 2.0.[5] With the release of .NET 4, also in April 2010, DLR was incorporated into the .NET Framework itself.[6]

The open source DLR project hosted on GitHub has a few additional features for language implementers. After the July 2010 release, there was little activity on the project for some years. This was interpreted by a Microsoft developer who worked on IronRuby as a lack of commitment from Microsoft to dynamic languages on the .NET Framework.[7][8] However, there has been regular activity since 2016/17, leading to a number of improvements and upgrades.

Language implementations

In 2007, Microsoft initially planned to use the DLR for the upcoming Visual Basic 2010 (VB 10.0) and Managed JScript (ECMAScript 3.0) as well as Python and Ruby.[2][9][10][11][12]

The DLR work on Ruby and Python resulted in IronRuby, a .NET implementation of the Ruby language, and IronPython.[2]

By August 2009, Microsoft had announced it had no more plans to implement Managed JScript on the DLR.[13] Fredrik Holmström later independently contributed a JavaScript implementation for the DLR which he dubbed "IronJS" in the naming tradition of IronPython and IronRuby.

Like C#, Visual Basic can access objects from dynamic languages built on the DLR such as IronPython and IronRuby.[14][15]

PowerShell 3.0, released in Windows 8, was updated to use the DLR.[16]

IronScheme, a Scheme implementation,[17] was planning to build upon the DLR. This idea was abandoned because the DLR branch used by the project became out of sync with the trunk, and also because (according to the project coordinator) the current version of the DLR at that time could not support the majority of Scheme's requirements.[18]

Architecture

The Dynamic Language Runtime is built on the idea that it is possible to implement language specificities on top of a generic language-agnostic abstract syntax tree, whose nodes correspond to a specific functionality that is common to many dynamic languages.[19] This architecture is backed by the idea that the number of elementary language constructs that would have to be implemented on the generic stack should be inherently limited.[20] The DLR dynamically generates code corresponding to the functionality expressed by these nodes. The compiler for any dynamic language implemented on top of the DLR has to generate DLR abstract trees, and hand it over to the DLR libraries.

The DLR provides dynamically updated DynamicSite objects that cache the task of binding methods to objects. Since the type of an object—as well as the members it contains—in dynamic languages can change during a program lifetime, a method invocation must check the method list to see if the invocation is a valid one. DynamicSite objects represent and cache the state of the object and its methods; any update to the object is reflected in the DynamicSite objects as well. DLR routes all method invocations via the DynamicSite objects, which then performs a fast lookup and binding of the method with the actual implementation.[21]

In contrast to other efforts like the Parrot virtual machine (with no dependencies) or Da Vinci Machine (built on Java's JVM by adding new bytecodes in the JVM instruction set), the DLR is built on top of the existing Common Language Runtime, the .NET Framework virtual machine.[22]

See also

References

  1. ^ "Releases". IronLanguages/dlr. GitHub. Retrieved 2022-01-27.
  2. ^ a b c Hugunin, Jim. "A Dynamic Language Runtime (DLR)". Retrieved 2007-06-21. For the short term, our focus is on using a small number of languages to drive the first wave of DLR development where we can work closely and face-to-face with the developers in order to iron out the worst kinks in the DLR design. After this initial phase, we want to reach out to the broader language community.
  3. ^ Viehland, Dino (2008-01-15). "Roadmap for IronPython 2.0". Archived from the original on 2008-09-06. Retrieved 2008-02-09. We don't really have a document like this but the general goal is to ship IronPython 2.0 by the end of the year. For the DLR itself the plan is to ship a v1.0 around the same time as IronPython 2.0.
  4. ^ "CodePlex Archive".
  5. ^ "CodePlex Archive". Archived from the original on 2011-08-14. Retrieved 2010-07-27.
  6. ^ "Dynamic Language Runtime Overview - .NET Framework". 30 March 2024.
  7. ^ "Microsoft Tires of IronRuby; Jimmy Schementi Jumps Ship". rubyinside.com. 2010-08-07. Retrieved 2012-02-26. A year ago the team shrunk by half and our agility was severely limited. [..] Overall, I see a serious lack of commitment to IronRuby, and dynamic language[s] on .NET in general.
  8. ^ "Microsoft's Dynamic languages are dying". i-programmer.info. 2010-08-10. Retrieved 2012-02-26. Without the final push to get the languages working under Visual Studio and integrated with the designer both Iron languages are probably dead - and Microsoft seems to have lost the will to make them a success.
  9. ^ "Managed JScript announced". Retrieved 2007-05-04.
  10. ^ "What the heck is "VBx"?". 2007-05-01. Archived from the original on 2009-05-25. Retrieved 2009-08-12. With the new DLR, we have support for IronPython, IronRuby, Javascript, and the new dynamic VBx compile
  11. ^ "Putting Mix, Silverlight, the CoreCLR and the DLR into context". 2007-05-01. Retrieved 2008-08-12.
  12. ^ "Introducing Visual Basic 10". infoq.com. 2007-05-04. Retrieved 2009-08-12. VB 10 takes advantage of a Silverlight feature called the Dynamic Language Runtime or DLR
  13. ^ Chiles, Bill (2009-06-01). "Future of Managed JScript (IronJScript)?". Archived from the original on 2009-08-31. Retrieved 2009-08-12. The DLR JScript was experimental for informing the design of the DLR (expression trees, interop, callsites, hosting, etc.). The JS we released with asp futures and the Silverlight dynamic sdk became very old and unserviceable as the DLR continued evolving for release in CLR 4.0. Unfortunately, there are no plans at this time to develop and release a DLR-hostable JScript.
  14. ^ "What's New in Visual Basic 2010". Microsoft. 2009. Retrieved 2009-08-12. Visual Basic binds to objects from dynamic languages such as IronPython and IronRuby
  15. ^ "Walkthrough: Creating and Using Dynamic Objects (C# and Visual Basic)". 25 February 2023.
  16. ^ "PowerShell 3 – Finally on the DLR!". Archived from the original on 2012-04-28. Retrieved 2012-03-30.
  17. ^ "CodePlex Archive".
  18. ^ "Is there any silverlight sample?". 2009-05-11. Archived from the original on January 19, 2013. Retrieved 2009-07-26. Unfortunately, my DLR branch is very out of sync with the Silverlight one. I just thought about it, perhaps I do not need the DLR perse, will investigate. The problem is that the DLR as-is, is not good enough to support the majority of the Scheme's requirements
  19. ^ Hugunin, Jim (2007-05-15). "DLR Trees (Part 1)". Retrieved 2008-02-23. The key implementation trick in the DLR is using these kinds of trees to pass code around as data and to keep code in an easily analyzable and mutable form as long as possible.
  20. ^ Nutter, Charles (2008-01-28). "Lang.NET 2008: Day 1 Thoughts". Retrieved 2008-02-23. The idea is that there's a quickly-flattening asymptotic curve to the number of expression tree nodes required to implement each new language. Whether that's the case is yet to be seen.
  21. ^ Bill Chiles (October 2007). "CLR Inside Out: IronPython and the Dynamic Language Runtime". MSDN Magazine. Retrieved 2007-08-10.
  22. ^ Rose, John (2008-02-02). "Bravo for the dynamic runtime!". Archived from the original on 2008-02-06. Retrieved 2008-02-23. The differences between the CLR and JVM extensions are interesting to note. They work completely above the level of the CLR without significantly enhancing it, while we are developing the JVM and libraries at the same time.

Read other articles:

1964 Italian filmThe Triumph of HerculesDirected byAlberto De MartinoWritten byAlberto De MartinoRoberto GianvitiStarringDan VadisMarilù ToloPierre CressoyMoira OrfeiCinematographyPier Ludovico PavoniMusic byFrancesco De MasiRelease dates 30 June 1964 (1964-06-30) (Italy) 15 February 1965 (1965-02-15) (International) Running time94 minutesCountryItalyLanguagesItalianEnglish translation The Triumph of Hercules, the 1964 film, was one of many Italian sword...

 

Marcia Yockeydriving a float in a parade in mid-1966 in Newburgh, Indiana.BornNovember 6, 1922Muncie, Indiana[1]DiedSeptember 28, 2000[2]EducationEvansville College, 3 years of pre-medical training;[1] meteorology training in Chicago by US Weather Bureau during World War IIOccupationMeteorologist Marcia Yockey (6 November 1922 - 28 September 2000[1]) was an American meteorologist who was best known for her 35-year on-air career in Evansville, Indiana. She made ...

 

Upper house of the bicameral North Carolina General Assembly North Carolina SenateNorth Carolina General AssemblySeal of the North Carolina SenateTypeTypeUpper house Term limitsNoneHistoryNew session startedJanuary 1, 2023LeadershipPresidentMark Robinson (R) since January 3, 2021 President pro temporePhil Berger (R) since January 26, 2011 Majority LeaderPaul Newton (R) since January 1, 2023 Minority LeaderDan Blue (D) since March 5, 2014 StructureSeats50Political groupsMajority   Republi...

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Retrofit – berita · surat kabar · buku · cendekiawan · JSTOR (Januari 2010) Pada contoh retrofit ini, seperangkat tombol pembuka pintu modern telah ditambahkan pada KRL British Rail Kelas 483, yang diturunkan...

 

This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Ivana Wong – news · newspapers · books · scholar · JSTOR (April 2010) (Learn how and when to remove this message) Ivana WongWong at the Ultimate ...

 

American judge (born 1964) Irma Carrillo RamirezSenate Judiciary Committee hearing - May 17, 2023Judge of the United States Court of Appeals for the Fifth CircuitIncumbentAssumed office December 8, 2023Appointed byJoe BidenPreceded byGregg CostaMagistrate Judge of the United States District Court for the Northern District of TexasIn officeSeptember 9, 2002 – December 8, 2023 Personal detailsBornIrma Jean Carrillo[1]1964 (age 59–60)Brownfield, Texas, U.S.Educa...

温贝托·德·阿连卡尔·卡斯特洛·布兰科Humberto de Alencar Castelo Branco第26任巴西總統任期1964年4月15日—1967年3月15日副总统若澤·馬利亞·奥克明前任拉涅里·馬齐利继任阿图尔·达科斯塔·伊·席尔瓦 个人资料出生(1897-09-20)1897年9月20日 巴西塞阿腊州福塔雷萨逝世1967年7月18日(1967歲—07—18)(69歲) 巴西塞阿腊州梅塞雅納墓地 巴西福塔雷薩卡斯特洛·布兰科陵寢[1]...

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: List of emperors of the Yuan dynasty – news · newspapers · books · scholar · JSTOR (March 2021) Emperor of the Great Yuan大元皇帝ImperialFirst to reignKublai Khan1264–1294 DetailsStyleHis Imperial Majesty (陛下)Great Khan (大汗)First m...

 

豪栄道 豪太郎 場所入りする豪栄道基礎情報四股名 澤井 豪太郎→豪栄道 豪太郎本名 澤井 豪太郎愛称 ゴウタロウ、豪ちゃん、GAD[1][2]生年月日 (1986-04-06) 1986年4月6日(38歳)出身 大阪府寝屋川市身長 183cm体重 160kgBMI 47.26所属部屋 境川部屋得意技 右四つ・出し投げ・切り返し・外掛け・首投げ・右下手投げ成績現在の番付 引退最高位 東大関生涯戦歴 696勝493敗...

Voce principale: Società Sportiva Juve Stabia. Società Sportiva Juventus StabiaStagione 1979-1980Sport calcio Squadra Juventus Stabia Serie C2, Gir. D7º posto 1978-1979 1980-1981 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti la Società Sportiva Juve Stabia nelle competizioni ufficiali della stagione 1979-1980. Indice 1 Stagione 2 Rosa 3 Risultati 3.1 Serie C2 3.1.1 Girone di andata 3.1.2 Girone di ritorno 4 Note Stagione Nella stagione 1979...

 

San Francesco de GeronimoUno dei ritratti più antichi del santo del 1771 conservato a Napoli, nella Quadreria dei Girolamini, e maschera in cera del santo realizzata il giorno della morte e conservata nel santuario di Grottaglie Religioso  NascitaGrottaglie, 17 dicembre 1642 MorteNapoli, 11 maggio 1716 (73 anni) Venerato daChiesa cattolica Beatificazione1806 da papa Pio VII Canonizzazione1839 da papa Gregorio XVI Ricorrenza11 maggio Patrono diRegno delle Due Sicilie, Grottagli...

 

La nomenclature des unités territoriales statistiques (NUTS) présente une liste des régions de l'Union européenne, de l'Association européenne de libre-échange et des pays candidats à l'adhésion à l'Union européenne. Chaque pays est divisé en unités statistiques structurées sur trois niveaux « NUTS » (NUTS 1, NUTS 2 et NUTS 3) plus deux niveaux UAL (unités administratives locales) à l'échelle locale (UAL 1 et UAL 2, respectivement anciennement NUTS 4 et NUTS 5). Un...

عادل عبد المهدي رئيس وزراء العراق في المنصب25 أكتوبر 2018 – 25 نوفمبر 2019 الرئيس برهم صالح حيدر العبادي مصطفى الكاظمي للمرحلة الانتقالية وزير النفط في المنصب8 سبتمبر 2014 – 2016 عبد الكريم لعيبي باهض جبار اللعيبي نائب رئيس جمهورية العراق في المنصب7 أبريل 2005 – 31 مايو 2011[1][2] ...

 

Ajaran memiliki konsep yang luas dan mendalam serta telah memengaruhi manusia sepanjang sejarah peradaban, dengan mencakup berbagai gagasan, prinsip, nilai-nilai, atau doktrin yang memegang peranan sentral dalam berbagai aspek kehidupan manusia. Konsep ini telah membentuk dasar peradaban manusia sepanjang sejarah dan terus menjadi panduan dalam pengambilan keputusan, perilaku, serta pandangan hidup individu dan masyarakat. Pentingnya ajaran dalam kehidupan manusia tidak dapat diabaikan. Dalam...

 

Різдвяний гусакПоходженняЄвропаКитайСередній СхідНеобхідні компонентиГусак  Медіафайли у Вікісховищі Різдвяний гусак — традиційна страва на Різдво, яку готують у різних країнах світу. Зміст 1 Опис 2 Історія 3 У літературі 4 Примітки 5 Посилання Опис Рецептів різдв...

Pour les articles homonymes, voir Boll. Timo Boll Timo Boll au Top 16 européen de tennis de table en 2017 à Antibes. Contexte général Sport Tennis de table Période active 1998-aujourd'hui Site officiel timo-boll.de Biographie Nom de naissance Timo Boll Nationalité sportive Allemande Nationalité Allemagne Naissance 8 mars 1981 (43 ans) Lieu de naissance Erbach (Allemagne) Taille 1,81 m (5′ 11″) Poids de forme 74 kg (163 lb) Club Borussia Düsseldorf Équipe...

 

American sculptor This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Jack Zajac – news · newspapers · books · scholar · JSTOR (September 2016) (Learn how and when to remove this message) Jack Zajac...

 

1881–1899 Sudanese revolt against Anglo-Egyptian rule Mahdist WarMajor events of the Mahdist War. From clockwise left: the Battle of Abu Klea, the Battle of El Teb, Death of Charles Gordon at Khartoum, Charge of the 21st Lancers at Omdurman, the Battle of Ferkeh, and the Battle of RejafDate1881 (1881)–1899 (1899)LocationSudan, South Sudan, Egypt, Eritrea, Ethiopia, UgandaResult Allied victory Sudanese invasions of neighbours repelledTerritorialchanges Britain and Egypt took over...

City in Slovakia City in SlovakiaPrešovCityFrom the top, View over Central Prešov, Co-Cathedral of Saint Nicholas, Rakóczi's Palace FlagCoat of armsPrešovLocation in SlovakiaShow map of Prešov RegionPrešovPrešov (Slovakia)Show map of SlovakiaCoordinates: 49°00′06″N 21°14′22″E / 49.00167°N 21.23944°E / 49.00167; 21.23944CountrySlovakiaRegionPrešovDistrictPrešovFirst mentioned1247Government • MayorIng. František Oľha[1]Area[...

 

此條目需要擴充。 (2016年3月29日)请協助改善这篇條目,更進一步的信息可能會在討論頁或扩充请求中找到。请在擴充條目後將此模板移除。 闽清北站Minqingbei Railway Station[1][2]闽清北站站台位置 中华人民共和国福建省福州市闽清县东桥镇大箬村地理坐标26°17′26.90″N 118°52′21.69″E / 26.2908056°N 118.8726917°E / 26.2908056; 118.8726917车站类别客运站运�...