NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

针对.NET 的 Scala 交叉编译

  • 2011-07-31
  • 本文字数:951 字

    阅读完需:约 3 分钟

Java 平台的流行语言 Scala 现在准备进军.NET 了,这要归功于école Polytechnique Fédérale de Lausanne 发起的项目,该项目还得到了微软的资助。这个项目主要使用了Jeroen Frijters 的 IKVM ,它是一个运行在 CLR(.NET 与 Mono)之上的 Java 虚拟机。

早在 2006 年 InfoQ 成立之际,我们就一直在报道 Scala 相关的新闻,那时的 Scala 每个月只有可怜的 1,000 个下载量。从那时起,Scala 就在 Java 世界中展开了狂风暴雨般的攻势,一些知名的站点如 Twitter 就使用 Scala 构建后端系统。甚至连欧洲研究委员会也开始资助 Scala。

最初,Scala 提供了对.NET 平台的支持,但后续就没人维护了,最后一个公开发布版使用的还是 Scala 1.4,现在已经无从寻觅了。来自 EPFL 的 Miguel Garcia说到

交叉编译器非常棒,但却只能运行在 JDK 上。其源代码严重依赖于 JDK API。这是典型的 Scala 应用的做法。Scala 程序员们依旧在大量使用 JDK 提供的特性,但很多时候 Scala SDK 也提供了相同的功能。我们拥有交叉编译器,但却没有办法通过调用.NET 环境中的库来自动替换掉对 JDK 的依赖。

Scala 真正需要的是能以自动化的方式通过 IKVM 库替换掉对 JDK 的依赖。Miguel Garcia 继续说到:

第一步是创建一个源代码级别的初始转换集合。接下来扩展 Scala 编译器以应用这些转换。但并不是所有编译器都足够灵活到可以提供这些服务。Scala 编译器的模块化做的非常好,并且还支持插件,因此使用起来就会容易得多。新的 Scala 插件 JDK2IKVM 就可以批处理的方式应用这些源代码级别的转换。接下来,生成的源代码再经过其他标准的编译器编译并使用 IKVM 库引用来生成 MSIL 字节码。这样,Scala.Net 就诞生了,它可以编译自身。

EPFL 的 Scala 小组还计划为 Scala 提供一个 Visual Studio 插件。

你可以直接在 MS Visual Studio 中开发 Scala 程序。今秋将要发布的 Visual Studio Scala 插件将会支持 IDE 的一些基本功能,如代码完成、代码浏览、换行符、表达式及异常报告等等。然而短期来看,目前的插件还不支持代码完成与代码浏览。出于这个原因,一些开发者可能更愿意使用 Eclipse 或 Intellij 在 JVM 上编写代码,然后在 Visual Studio 中进行最后的调试。感兴趣的读者可以查看“上手”指南以及关于 Scala.Net 项目的介绍。

查看英文原文: Cross-Compiling Scala for .NET

2011-07-31 06:491489
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

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

入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)

公众号_愿天堂没有BUG

AI应用说 | 百度专家&行业大咖畅谈AI技术与落地应用

百度大脑

人工智能 开发者 开发

Java开发从零开始!《SpringCloud超级入门(4)

策划Java工程师

Java 程序员 后端

Java开发入门教程!程序员:面试官

策划Java工程师

Java 程序员 后端

香港服务器弹性是企业数字化转型的一个关键方面

九河云安全

Java体系化进阶学习图谱:所有帖子的 分类 总结

Java 程序员 后端

Java入门你值得拥有!【Spring Boot 26

Java 程序员 后端

Java开发6年了,BAT面试文档:ActiveMQ(1)

策划Java工程师

Java 程序员 后端

【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具

华为云开发者联盟

API 华为云 modelarts 互联网+ API Explorer

现成FIL分币系统介绍|FIL分币平台搭建

Geek_23f0c3

Filecoin fil挖矿 FIL挖矿分币系统

ELK原来这么简单!《零基础(1)

Java 程序员 后端

FastApi-02-路径参数

Python研究所

FastApi 8月日更

Java开发基础不牢?什么是中间件?

策划Java工程师

Java 程序员 后端

亚信科技AntDB数据库与中科可控、海光公司完成产品兼容认证

亚信AntDB数据库

服务器 国产化 国产芯片 国产数据库 产品兼容性互认

GitHub标星过万!10592字,475行

Java 程序员 后端

GitHub标星过万!亦直问JVM(1)

Java 程序员 后端

IBM大面积辞退40岁+的员工,【Spring Boot 1

Java 程序员 后端

Java应用性能优化!Java-进阶:集合框架1

Java 程序员 后端

Java开发三年月薪才12K,你知道如何用面向对象思想写好并发编程吗?

策划Java工程师

Java 程序员 后端

Java开发全套学习!MySQL进阶,秒变大神(1)

策划Java工程师

Java 程序员 后端

太为难我了,阿里面试了7轮(5年经验,拿下P7岗offer)

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Java基础72问:不搞定HR这3个问题,建议不要轻易跳槽(1)

Java 程序员 后端

Java大厂技术面试题汇总!美团阿里Java程序员晒工资被围观,总结

Java 程序员 后端

毕业总结

Vincent

架构训练营

Java开发前景怎么样?【Spring Boot 21

策划Java工程师

Java 程序员 后端

【“互联网+”大赛华为云赛道】CloudIDE命题攻略:明确业务场景,快速开发插件

华为云开发者联盟

ide 开发 插件 华为云 CloudIDE

GitHub标星8k!Java虚拟机5大核心知识点

Java 程序员 后端

TimeUtils 实用封装

Changing Lin

8月日更

京东:Flink SQL 优化实战

Apache Flink

flink

TCL携大屏天团领跑UDE,斩获多项创新大奖

科技热闻

Java开发基础面试题,【springcloud

策划Java工程师

Java 程序员 后端

针对.NET的Scala交叉编译_Java_Jonathan Allen_InfoQ精选文章