Dinamik Dil Çalışma Zamanı - Dynamic Language Runtime

Dinamik Dil Çalışma Zamanı (DLR)
Orijinal yazar (lar)Microsoft Dinamik Dil Çalışma Zamanı Ekibi
Geliştirici (ler).NET Vakfı
İlk sürüm16 Nisan 2010; 10 yıl önce (2010-04-16)
Kararlı sürüm
1.2.3 / 27 Nisan 2020; 6 ay önce (2020-04-27)[1]
Depogithub.com/ IronLanguages/ dlr
YazılmışC #
İşletim sistemipencereler, Mac os işletim sistemi, Linux (Debian, Ubuntu )
PlatformOrtak Dil Altyapısı
TürSistem platformu
LisansApache Lisans 2.0
İnternet sitesidokümanlar.microsoft.com/ tr-tr/ dotnet/ çerçeve/ yansıma-ve-kodlanmış/ dynamic-language-runtime-Overview

Dinamik Dil Çalışma Zamanı (DLR) itibaren Microsoft üstüne koşar Ortak dil çalışması (CLR) ve sağlar bilgisayar dili için hizmetler dinamik diller. Bu hizmetler şunları içerir:

DLR, üzerinde dinamik diller uygulamak için kullanılır. .NET Framework, I dahil ederek IronPython ve IronRuby projeler.

Dinamik dil uygulamaları ortak bir temel sistemi paylaştığından, birbirleriyle etkileşime girmeleri daha kolay olmalıdır. Örneğin, herhangi bir dinamik dilden herhangi bir başka dinamik dilde kitaplıkların kullanılması mümkün olmalıdır. Ek olarak, barındırma API'si statik olarak yazılanlarla birlikte çalışabilirliğe izin verir CLI dilleri sevmek C # ve Visual Basic .NET.

Tarih

Microsoft'un Dynamic Language Runtime projesi Microsoft tarafından şu adreste duyuruldu: MIX 2007.[2][3]

Microsoft, Kasım 2008'de .NET DLR 0.9 beta'yı piyasaya sürdü.[4] ve son 0.9, Aralık 2008'de. Sürüm 1.0, Nisan 2010'da gönderildi. Temmuz 2010'da Microsoft, DLR'nin lisansını Microsoft Kamu Lisansı için Apache Lisans 2.0.[5] Serbest bırakılmasıyla .NET 4, yine Nisan 2010'da DLR .NET Framework'e dahil edildi.[6]

Barındırılan açık kaynak DLR projesi GitHub dil uygulayıcıları için birkaç ek özelliğe sahiptir. Temmuz 2010 sürümünden sonra, projede birkaç yıldır çok az faaliyet oldu. Bu, üzerinde çalışan bir Microsoft geliştiricisi tarafından yorumlandı IronRuby Microsoft'tan .NET Framework'te dinamik dillere bağlılık eksikliği olarak.[7][8] Bununla birlikte, 2016 / 17'den beri düzenli faaliyetler gerçekleşti ve bu da bir dizi iyileştirme ve yükseltmeye yol açtı.

Desteklenen diller

DLR hizmetleri şu anda şu uygulamanın geliştirme sürümünde kullanılıyor IronRuby, bir .NET uygulaması Yakut dil ve için IronPython.[2]

2007'de Microsoft, DLR'yi önümüzdeki günlerde kullanmayı planladı. Visual Basic 2010 (VB 10.0) ve Yönetilen JScript (ECMAScript 3.0).[9][10][11][12] Bununla birlikte, Ağustos 2009 itibariyle, Microsoft'un DLR'de Yönetilen JScript'i uygulamaya yönelik başka planı yoktur.[13] Sevmek C # Visual Basic, nesnelere DLR üzerine kurulu dinamik dillerden erişebilir. IronPython ve IronRuby.[14][15]

Güç kalkanı 3.0, yayınlandı Windows 8, DLR kullanmak için güncellendi.[16]

IronScheme, bir Şema uygulama[17] DLR üzerine inşa etmeyi planlıyordu. Bu fikir, DLR'nin şube proje tarafından kullanılan, ile senkronize olmadı gövde ve ayrıca (proje koordinatörüne göre) o zamanki DLR'nin mevcut sürümü, Scheme gereksinimlerinin çoğunu destekleyemediği için.[18]

Mimari

Dinamik Dil Çalışma Zamanı, genel bir dilin üzerine dil özelliklerinin uygulanmasının mümkün olduğu fikri üzerine kurulmuştur. dilden bağımsız soyut sözdizimi ağacı, düğümleri birçok dinamik dilde ortak olan belirli bir işlevselliğe karşılık gelir.[19] Bu mimari, genel yığın üzerinde uygulanması gereken temel dil yapılarının sayısının doğası gereği sınırlı olması gerektiği fikri ile desteklenmektedir.[20] DLR dinamik olarak üretir bu düğümler tarafından ifade edilen işlevselliğe karşılık gelen kod. DLR üzerine uygulanan herhangi bir dinamik dil için derleyici, DLR soyut ağaçları oluşturmalı ve bunu DLR kitaplıklarına teslim etmelidir.

DLR, dinamik olarak güncellenen sağlar DynamicSite yöntemleri nesnelere bağlama görevini önbelleğe alan nesneler. Dinamik dillerdeki bir nesnenin türü (ve içerdiği üyeler) bir program ömrü boyunca değişebileceğinden, bir yöntem çağrısı, çağrının geçerli olup olmadığını görmek için yöntem listesini kontrol etmelidir. DynamicSite nesneler, nesnenin ve yöntemlerinin durumunu temsil eder ve önbelleğe alır; nesneye yapılan herhangi bir güncelleme, DynamicSite nesneler de. DLR, tüm yöntem çağrılarını DynamicSite nesneler, daha sonra hızlı bir arama gerçekleştirir ve bağlayıcı gerçek uygulama ile yöntemin.[21]

Gibi diğer çabaların aksine Parrot sanal makine (bağımlılık yok) veya Da Vinci Makinesi (Java'nın JVM yeni bayt kodlarını ekleyerek JVM komut seti ), DLR, mevcut Ortak dil çalışması, .NET Framework sanal makine.[22]

Ayrıca bakınız

Referanslar

  1. ^ "Salıverme". IronLanguages ​​/ dlr. GitHub. Alındı 2020-05-03.
  2. ^ a b Hugunin, Jim. "Dinamik Dil Çalışma Zamanı (DLR)". Alındı 2007-06-21. Kısa vadede, odak noktamız, DLR tasarımındaki en kötü karışıklıkları gidermek için geliştiricilerle yakın ve yüz yüze çalışabileceğimiz ilk DLR geliştirme dalgasını yürütmek için az sayıda dil kullanmaktır. Bu ilk aşamadan sonra, daha geniş bir dil topluluğuna ulaşmak istiyoruz.
  3. ^ Viehland, Dino (2008-01-15). "IronPython 2.0 için Yol Haritası". Arşivlenen orijinal 2008-09-06 tarihinde. Alındı 2008-02-09. Gerçekten böyle bir belgemiz yok, ancak genel hedef yıl sonuna kadar IronPython 2.0'ı sunmak. DLR'nin kendisi için plan, bir v1.0'ı IronPython 2.0 ile yaklaşık aynı zamanda göndermektir.
  4. ^ http://www.codeplex.com/dlr
  5. ^ http://dlr.codeplex.com/license
  6. ^ https://msdn.microsoft.com/en-us/library/dd233052.aspx
  7. ^ "Microsoft Tires of IronRuby; Jimmy Schementi Gemiden Atlıyor". rubyinside.com. 2010-08-07. Alındı 2012-02-26. Bir yıl önce ekip yarı yarıya küçüldü ve çevikliğimiz ciddi şekilde sınırlıydı. [..] Genel olarak, IronRuby'ye ciddi bir bağlılık eksikliği ve genel olarak .NET üzerinde dinamik diller görüyorum.
  8. ^ "Microsoft'un Dinamik dilleri ölüyor". i-programmer.info. 2010-08-10. Alındı 2012-02-26. Dilleri Visual Studio altında çalışmak ve tasarımcı ile entegre etmek için son baskı olmadan, her iki Iron dili de muhtemelen öldü - ve Microsoft, bunları başarılı kılma isteğini kaybetmiş görünüyor.
  9. ^ "Yönetilen JScript duyuruldu". Alındı 2007-05-04.
  10. ^ "" VBx "de ne?". 2007-05-01. Alındı 2009-08-12. Yeni DLR ile IronPython, IronRuby, Javascript ve yeni dinamik VBx derlemesi için desteğe sahibiz
  11. ^ "Mix, Silverlight, CoreCLR ve DLR'yi bağlama oturtmak". 2007-05-01. Alındı 2008-08-12.
  12. ^ "Visual Basic 10'a Giriş". infoq.com. 2007-05-04. Alındı 2009-08-12. VB 10, Dinamik Dil Çalışma Zamanı veya DLR adı verilen Silverlight özelliğinden yararlanır
  13. ^ Chiles, Bill (2009-06-01). "Yönetilen JScript'in (IronJScript) Geleceği?". Alındı 2009-08-12. DLR JScript, DLR tasarımını (ifade ağaçları, birlikte çalışma, çağrı alanları, barındırma vb.) Bilgilendirmek için deneyseldi. Asp futures ve Silverlight dinamik sdk ile yayınladığımız JS, DLR CLR 4.0'da piyasaya sürülmek üzere gelişmeye devam ederken çok eski ve kullanılamaz hale geldi. Ne yazık ki, şu anda DLR'de barındırılabilir bir JScript geliştirip yayınlamaya yönelik bir plan yoktur.
  14. ^ "Visual Basic 2010'daki Yenilikler". Microsoft. 2009. Alındı 2009-08-12. Visual Basic, IronPython ve IronRuby gibi dinamik dillerdeki nesnelere bağlanır
  15. ^ https://msdn.microsoft.com/en-us/library/ee461504.aspx#Y480
  16. ^ "Arşivlenmiş kopya". Arşivlenen orijinal 2012-04-28 tarihinde. Alındı 2012-03-30.CS1 Maint: başlık olarak arşivlenmiş kopya (bağlantı)
  17. ^ http://www.codeplex.com/IronScheme
  18. ^ "Silverlight örneği var mı?". 2009-05-11. Alındı 2009-07-26. Ne yazık ki, DLR şubem Silverlight şubemle çok uyumlu değil. Sadece düşündüm, belki de DLR perse ihtiyacım yok, araştıracağım. Sorun şu ki, DLR olduğu gibi, Programın gereksinimlerinin çoğunu destekleyecek kadar iyi değil
  19. ^ Hugunin Jim (2007-05-15). "DLR Ağaçları (Bölüm 1)". Alındı 2008-02-23. DLR'deki temel uygulama hilesi, kodu veri olarak geçirmek ve kodu olabildiğince uzun süre kolay analiz edilebilir ve değiştirilebilir bir biçimde tutmak için bu tür ağaçları kullanmaktır.
  20. ^ Nutter, Charles (2008/01/28). "Lang.NET 2008: 1. Gün Düşünceleri". Alındı 2008-02-23. Buradaki fikir, her yeni dili uygulamak için gereken ifade ağacı düğümlerinin sayısında hızla düzleşen bir asimptotik eğri olmasıdır. Durumun bu olup olmadığı henüz görülmedi.
  21. ^ Bill Chiles (Ekim 2007). "CLR Ters Yüz: IronPython ve Dinamik Dil Çalışma Zamanı". MSDN Dergi. Alındı 2007-08-10.
  22. ^ Gül, John (2008-02-02). "Dinamik çalışma zamanı için Bravo!". Arşivlenen orijinal 2008-02-06 tarihinde. Alındı 2008-02-23. CLR ve JVM uzantıları arasındaki farklar ilginçtir. Biz aynı anda JVM ve kitaplıkları geliştirirken, CLR seviyesinin tamamen üzerinde, onu önemli ölçüde geliştirmeden çalışırlar.

Dış bağlantılar

dlr açık GitHub