High-performance language interoperability in multi-language runtimes

Matthias Grimmer
{"title":"High-performance language interoperability in multi-language runtimes","authors":"Matthias Grimmer","doi":"10.1145/2660252.2660256","DOIUrl":null,"url":null,"abstract":"Programs often consist of parts that are written in different languages because sub-problems lend themselves to being implemented in a particular language. However, multi-language programs often suffer from poor performance, complex cross-language interfaces, or insufficient flexibility.\n We propose a novel approach for composing multiple language implementations in a seamless way. Foreign objects of one language can be used like regular objects in another language. Our interoperability mechanism targets language implementations that run on the same VM and have the same style of intermediate representation (IR), e.g., an abstract syntax tree (AST). For accessing foreign objects we generate foreign-language-specific IR patterns that we insert into the IR of the host application.\n Thus we avoid converting or marshalling foreign objects at the language border. Our mechanism also allows the just-in-time compiler of the host VM to inline and optimize across language borders.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"52 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2660252.2660256","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

Programs often consist of parts that are written in different languages because sub-problems lend themselves to being implemented in a particular language. However, multi-language programs often suffer from poor performance, complex cross-language interfaces, or insufficient flexibility. We propose a novel approach for composing multiple language implementations in a seamless way. Foreign objects of one language can be used like regular objects in another language. Our interoperability mechanism targets language implementations that run on the same VM and have the same style of intermediate representation (IR), e.g., an abstract syntax tree (AST). For accessing foreign objects we generate foreign-language-specific IR patterns that we insert into the IR of the host application. Thus we avoid converting or marshalling foreign objects at the language border. Our mechanism also allows the just-in-time compiler of the host VM to inline and optimize across language borders.
多语言运行时中的高性能语言互操作性
程序通常由用不同语言编写的部分组成,因为子问题适合用特定语言实现。然而,多语言程序往往存在性能差、跨语言接口复杂或灵活性不足的问题。我们提出了一种以无缝方式组合多种语言实现的新方法。一种语言中的外来对象可以像另一种语言中的规则对象一样使用。我们的互操作性机制的目标是在同一VM上运行的语言实现,并具有相同风格的中间表示(IR),例如抽象语法树(AST)。为了访问外部对象,我们生成特定于外部语言的IR模式,并将其插入到宿主应用程序的IR中。因此,我们避免了在语言边界转换或编组外来对象。我们的机制还允许主机VM的实时编译器跨语言边界进行内联和优化。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信