{"title":"Bringing dynamic languages to .NET with the DLR","authors":"Jim Hugunin","doi":"10.1145/1297081.1297083","DOIUrl":null,"url":null,"abstract":"From the beginning, Microsoft's .NET framework was designed to support a broad range of different programming languages on a Common Language Runtime (CLR). The CLR provides shared services to these languages ranging from a world-class GC and JIT to a sandboxed security model to tools integration for debugging and profiling. Sharing these features has two huge benefits for languages on the CLR. First, it's easier to implement a language because lots of difficult engineering work is already done for you. Second, and more importantly, these languages can seamlessly work together and share libraries and frameworks so that each language can build on the work of the others. The CLR has good support for dynamic languages today. IronPython-1.0 demonstrates this. The new Dynamic Language Runtime (DLR) adds a small set of key features to the CLR to make it dramatically better. It adds to the platform a set of services designed explicitly for the needs of dynamic languages. These include a shared dynamic type system, standard hosting model and support to make it easy to generate fast dynamic code. With these additional features it becomes dramatically easier to build high-quality dynamic language implementations on .NET. More importantly, these features enable all of the dynamic languages which use the DLR to freely share code with other dynamic languages as well as with the existing powerful static languages on the platform such as VB.NET and C#.","PeriodicalId":344101,"journal":{"name":"Dynamic Languages Symposium","volume":"13 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Dynamic Languages Symposium","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1297081.1297083","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
From the beginning, Microsoft's .NET framework was designed to support a broad range of different programming languages on a Common Language Runtime (CLR). The CLR provides shared services to these languages ranging from a world-class GC and JIT to a sandboxed security model to tools integration for debugging and profiling. Sharing these features has two huge benefits for languages on the CLR. First, it's easier to implement a language because lots of difficult engineering work is already done for you. Second, and more importantly, these languages can seamlessly work together and share libraries and frameworks so that each language can build on the work of the others. The CLR has good support for dynamic languages today. IronPython-1.0 demonstrates this. The new Dynamic Language Runtime (DLR) adds a small set of key features to the CLR to make it dramatically better. It adds to the platform a set of services designed explicitly for the needs of dynamic languages. These include a shared dynamic type system, standard hosting model and support to make it easy to generate fast dynamic code. With these additional features it becomes dramatically easier to build high-quality dynamic language implementations on .NET. More importantly, these features enable all of the dynamic languages which use the DLR to freely share code with other dynamic languages as well as with the existing powerful static languages on the platform such as VB.NET and C#.
从一开始,微软的。net框架就被设计成在公共语言运行时(CLR)上支持各种不同的编程语言。CLR为这些语言提供共享服务,从世界级的GC和JIT到沙盒安全模型,再到用于调试和分析的工具集成。共享这些特性对CLR上的语言有两个巨大的好处。首先,实现一门语言更容易,因为许多困难的工程工作已经为您完成了。其次,更重要的是,这些语言可以无缝地协同工作,共享库和框架,这样每种语言都可以建立在其他语言的基础上。目前,CLR对动态语言有很好的支持。IronPython-1.0演示了这一点。新的动态语言运行时(Dynamic Language Runtime, DLR)向CLR添加了一组关键特性,使其性能显著提高。它向平台添加了一组明确设计用于满足动态语言需求的服务。这些特性包括共享的动态类型系统、标准的托管模型以及对生成快速动态代码的支持。有了这些额外的特性,在。net上构建高质量的动态语言实现变得非常容易。更重要的是,这些特性使所有使用DLR的动态语言能够自由地与其他动态语言以及平台上现有的强大静态语言(如VB)共享代码。。NET和c#。