2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

IBM 推出创建语言运行时的工具包 Eclipse OMR

  • 2016-04-07
  • 本文字数:1282 字

    阅读完需:约 4 分钟

IBM 创建了 Eclipse OMR ,一个用于为任何语言创建运行时环境的开源虚拟机工具包。OMR 旨在让各种语言都能利用虚拟机技术的一般改进,像垃圾收集或硬件集成。为此,IBM 正在推广自己名为 J9 的 JVM。

虽然 JVM 日益成为许多语言的通用运行时,但它同 Java 语言的紧密关系意味着其设计和功能的很大一部分都是同 Java 本身紧密相关的。这就使得在尝试使用 JVM 作为其他语言的运行时时会遇到挑战,尤其是动态类型的语言: 在 Java 7 引入 InvokeDynamic 之前,动态语言都不得不使用低效的变通方案来克服 JVM 的静态类型特性,严重影响了性能。就像 Daryl Maier 其他OMR 项目成员所说的那样,这给语言创建者两种选择:要么从头开始为新语言创建一个运行时,这会带来难以承受的成本,或者,就像大多数团队所做的那样,调整语言,让它可以使用已有的运行时环境,接受它的限制。

OMR 提供了第三种选择。虽然 OMR 本身不是一个运行时,但它是一个让你可以轻松创建运行时的工具包。OMR 是通过重构 IBM Java 虚拟机 J9 的组件创建出来的,对于任何运行时中最常见的功能,它都提供了一种语言无关的实现,同时,它还提供了一套接口,用于创建接口作者所说的“语言胶水(language glue)”或者是特定于语言的代码,作为 OMR 提供的通用功能同需要处理的语言细节之间的桥梁。将 OMR 同语言胶水相结合,语言设计者就可以获得一个包含如下功能的运行时:

  • 内存分配器
  • 线程库
  • 用于将运行时移植到不同平台的硬件抽象层
  • 用于连接不同运行时和操作系统事件的事件钩子框架
  • 用于调式及其他目的的跟踪引擎
  • 垃圾收集
  • JIT 编译器

为了促进推广,语言胶水接口并不需要从头全部实现,语言设计者可以根据他们想要获得的运行时功能仅实现其中的一部分。例如,简单地实现这些 API 中的三个就可以获得一个单线程的标记 / 清除垃圾收集功能,而实现更多的接口就可以获得并发标记、并行或分代收集功能。

这次重构有一个有趣的副作用,就是单个组件更容易测试了。在这次修改之前,像垃圾收集这样的组件只能使用整个运行时来执行,这意味着测试需要大量复杂的设置和分析。不过,在对这个复杂的逻辑进行分隔和解耦之后,单个组件可以隔离测试了,这简化了测试设置和分析。

不过,OMR 最有前途的特性可能是它将成为一个由 Eclipse 基金会( IBM 是其战略成员)运作的开源项目。项目负责人希望Eclipse 基金会培养一个开发者社区,为OMR 提供创新性贡献,所有以OMR 工具包为基础创建运行时的语言都可以从中受益。这有助于OMR 攻占OpenJDK 的领地,后者虽然也是开源的,但它在吸收有价值的贡献时一直有些困难,比如谷歌对CMS 所做的性能改进

然而,这种方法也有缺点。虽然迫使语言设计者采用一种已有的运行时可能会带来一些挑战,但那也意味着不同的语言可以同时在同一个虚拟机中运行,这样就便于语言互操作。OMR 为每种语言创建一个不同的运行时的方法意味着,即使可能,实现互操作也要困难许多。最终的结果可能是,不同的语言设计者根据自己的战略重点,在易于互操作和易于语言开发之间作出权衡,选择这一个或其他方法。

查看英文原文: IBM Kick-Starts Eclipse OMR, a Toolkit for Creating Language Runtimes

2016-04-07 19:002828
用户头像

发布了 1008 篇内容, 共 442.7 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

Vue.js 应用实现监控可观测性最佳实践

观测云

Vue

深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践

小万哥

Java 程序人生 编程语言 软件工程 后端开发

鸿蒙生态全场景新增长,鲸鸿动能为伙伴带来新机遇

最新动态

Blu-ray Player Pro mac v3.3.22中文版 蓝光播放器 兼容m

Rose

可用于GPT4.0续费,海淘使用教程

蓉蓉

GPT-4 ChatGPT4 Claude

AI Transcription for Mac(AI语音转录软件) 支持M1/M2

Rose

助力高效工作!Finder增强工具 TotalFinder for Mac中文版 含注册码

Rose

PD19虚拟机破解版安装教程及pd19永久密钥

Rose

数据集成之环境变量 v0.7.2

LIEN

开源 数据集成 业务融合 API对接 mydata

印度股票交易软件GangGuHk

GangguHK

电源常用通讯电路

芯动大师

芯片 通讯 电源

WebStorm 2023.3.5 for Mac中文版 (WebStorm 2023永久激活秘钥最新)

Rose

简单上云第一步!华为云耀云服务器L实例亮相华为云开年采购季

轶天下事

GraphPad Prism 10激活授权秘钥:高效且易于使用的科学研究绘图分析软件

Rose

为什么说 $CHAPZ 是被严重低估的 AI 概念资产?

股市老人

Kafka 痛点专题|AutoMQ 如何解决 Kafka 冷读副作用

AutoMQ

云计算 大数据 kafka 云原生 AutoMQ

《保卫萝卜4》仅用一个月完成鸿蒙原生应用开发

最新动态

我对一些技术架构设计的经验记录

大东(AIP智能体运营专员)

Topaz Gigapixel AI 7.0.4完美激活版 及Topaz Gigapixel AI 7全新功能介绍

Rose

StarRocks 易用性全面提升:数据导入可以如此简单

StarRocks

腾讯天穹 StarRocks 一站式湖仓融合平台架构揭秘

StarRocks

数据库 大数据 湖仓一体 湖仓融合

关于招聘这件事,技术面试官需要了解的几个点

芃篙君

招聘

Topaz Photo AI 人工智能降噪 v2.4.1完美激活版 mac/win

Rose

macbook防睡眠工具:Caffeinated for mac一键激活版

Rose

Caffeinated下载 Caffeinated破解版 防睡眠工具

抓住大机遇,共筑新一代数智基础设施和解决方案竞争力

新消费日报

iNet Network Scanner:全面而深入的网络分析工具

Rose

揭秘 Bug 报告的终极技巧——如何写一个好的bug报告?

Chris Zhang

bug bug管理 bug定位 bug报告

Golang高效流控实践

俞凡

golang

IBM推出创建语言运行时的工具包Eclipse OMR_Java_Abraham Marín Pérez_InfoQ精选文章