抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

Java 语言运行时(JLR)项目已建立

2007 年 8 月 02 日

运行在JVM之上的语言已经存在了很长的时间,几乎与 JVM 拥有同样悠久的历史。比较早的例子就是 Beanshell 或 Jython 语言。Java 泛型的概念起源于 Java 的超集,如 Pizza 和 GJ。不同于 Sun 公司,微软拥有.NET 框架,将.NET 虚拟机作为其通用语言运行时(Common Language Runtime,CLR),把它打造成多种语言的支持平台。从开始的 C#、VB.NET、Cobol 和 EiffelSharp,到之后的 F#、 IronPython ,和其它更多的语言比如 Delphi ,都能在它之上运行。

许多运行在JVM 之上的语言获得了小范围的认可,主要专注于像Jython 或Beanshell 这样的项目,除了一小圈技术狂热者之外,很少有其他的人知道。

微软已经先行一步拥有了动态语言运行时(Dynamic Language Runtime, DLR), 并且为(动态)语言应用于 CLR 提供了更多通用的基础设施,这是一直以来在 JVM 所独缺的。JVM 语言的实现者不得不自食其力找到每一个技巧或者解决方案,这将是一个对于大多数语言实现都会重复出现的过程。相关的例子参见文章编写没有PermGen 内存泄漏的代码。

目前,这一切因为JRuby 的Charles Nutter 与其他JVM 语言团队(如Jython、Groovy 等等)的沟通而发生着变化。首先是创建 JVM 语言的 Google Group ,在这里 JVM 语言实现者可以拥有一个共同论坛,来讨论 JVM 语言实现方面的问题或解决方案。 仅其自身并没有什么特别的报道价值——但是,这个小组的第一次协作已经一枪打响了。Jython 的开发团队提供了Jython 的包缓存机制的代码并使其对于所有开发者都可使用。为了能让人们有一个公用的地方存放这样的代码, Java 语言运行时(JLR)项目就应运而生了,并且项目的源码仓库中已经纳入了上面说的缓存机制的代码。

未来的开发计划将会在 JVM 相关语言的邮件列表上进行讨论,不过我们已经可以从 DLR 目前提供的机制中借鉴到今后可能的发展方向。比方说,字节码生成工具就是目前所需的,工具将包含生成元数据的逻辑,就像在生成的字节码中包含源代码语言行数确切位置的调试信息。尽管这并不是一项高精尖科研活动,但是所有的语言实现都不得不从头开始解决这个问题。其它的通用代码则将会包含与 Java 语言的集成,例如查找重载的方法或是具有varargs 方法的逻辑实现。

这不仅是一项可以从实现者肩头卸下的基础设施工作,同时,还会有一个团队来指出哪个字节码对于多种语言特征来说表现最为出色,例如动态方法调用、闭包或者Continuations。因为这些语言拥有不同的语义,所以到底有多少特性可以被共用或改进并放进已有的代码库中,还有待观察。尽管如此,可运行的代码或者概况代码实例还是非常有用的,除此之外,已经证明的可以在当前JVM 后端(即由字节码生成本地机器码的即时编译器)进行良好地处理的字节码序列也很有帮助。

查看英文原文: Java Language Runtime (JLR) project created

2007 年 8 月 02 日 02:30439
用户头像

发布了 74 篇内容, 共 97342 次阅读, 收获喜欢 3 次。

关注

评论

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

维基百科技术架构演进分析

andy

如何做好一场技术分享,100%纯干货输出

架构精进之路

技术分享 七日更 28天写作

MapReduce练习案例2 - 自定义排序

小马哥

大数据 hadoop mapreduce 七日更

Springboot使用jasypt需要注意的一个小地方

Sky彬

springboot jasypt

产品经理训练营第二周作业

淼

产品经理训练营

滴普技术荟-云原生基座OpenKube开放容器实践(三):理解linux虚拟网络设备bridge

滴普科技2048实验室

第三期(2020-2021)传统行业云原生技术落地调研

York

灵雀云 云原生

「Android渲染」图像是怎样显示到屏幕上的?

李小四

Android渲染 AndroidUI RenderingPipeline

第四次工业革命与龙的故事

脑极体

玩遍博客网站,我整理了全套的建站技术栈

老魚

程序员 博客 网站搭建 建站

产品0期-第二周作业

曾烧麦

产品经理训练营

Nebula Graph 在微众银行数据治理业务的实践

Nebula Graph

数据治理 图数据库 图数据库实战

作业二、作业三

清醒梦境

全网首发!普通程序员快速成为架构师的不传之秘,阿里年薪20W——200W的学习计划路线终开源

程序员小毕

Java 人工智能 大数据 架构 分布式

【网络篇】- https

双木之林

第二次作业提交

涅米丶

【百度官方技术分享】百度智能小程序框架性能优化实践

百度Geek说

百度智能小程序 小程序云开发 百度 前端开发 技术宅

产品经理课程-第二周

novaln🍉

作业 - 第二周

eva

Flink 助力美团数仓增量生产

Apache Flink

flink 流计算

阿里技术官神作!大厂亿级流量性能调优学习手册,堪称保姆级教学

Crud的程序员

Java 架构 调优

“区块链+政务”深度融合 开启智慧城市政务新时代

CECBC区块链专委会

大数据

深入了解HashMap!

xcbeyond

Java hashmap HashMap底层原理 28天写作

【并发编程的艺术】Java内存模型的顺序一致性

程序员架构进阶

架构 JMM Java内存模型 28天写作

追根溯源的产品思维

淼

产品经理训练营

阿里工作6年,熬到P7就剩这份学习笔记了,已助朋友拿到7个Offer

云流

Java 编程 面试 计算机

已膜拜!GitHub大佬的微服务资源库太强了,每份学习手册都优质详细

Crud的程序员

Java spring 架构 微服务

产品经理训练营 Week02

柚子君~

极客大学产品经理训练营

滴普技术荟-云原生基座OpenKube开放容器实践(四):linux模拟pod并配置上外网

滴普科技2048实验室

《程序员修炼之道》- 务实的哲学(2)

石云升

读书笔记 28天写作 程序员修炼之道 程序员的务实 软件的熵

中国将启动国家区块链平台

CECBC区块链专委会

区块链

Study Go: From Zero to Hero

Study Go: From Zero to Hero

Java语言运行时(JLR)项目已建立-InfoQ