最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

针对.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:491487
用户头像

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

关注

评论

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

基于java+jsp的汽车租赁系统

Java 程序员 后端

基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器

Java 程序员 后端

基于JSP实现OA办公系统

Java 程序员 后端

增删改查的基本操作:实现MyArrayList,你学会了吗?

Java 程序员 后端

从 Kafka 到 Pulsar,BIGO 打造实时消息系统之路

Apache Pulsar

分布式 BIGO 消息中间件 云存储 Apache Pulsar 消息系统

推荐你一个正则表达式网站

卢卡多多

正则表达式 11月日更

基于 ElasticSearch 实现站内全文搜索

Java 程序员 后端

基于vue+SpringBoot+MyBatis的开源多商户商城系统,可二次开发

Java 程序员 后端

Win11上openvino_notebooks环境搭建

IT蜗壳-Tango

IT蜗壳 OpenVINO 11月日更

多层次存储器

Java 程序员 后端

基于java SSM springboot学生信息管理系统设计和实现2

Java 程序员 后端

基于java SSM图书管理系统简单版设计和实现

Java 程序员 后端

日均订单量超1500,百度萝卜快跑甩掉Waymo

脑极体

基于SSM的药店管理系统

Java 程序员 后端

多线程详解第4讲:线程同步(重点)

Java 程序员 后端

基于二叉树实现Map,就是这么优秀!

Java 程序员 后端

复习一周,字节跳动三场技术面+HR面,不小心拿了offer

Java 程序员 后端

基于java SSM springboot学生信息管理系统设计和实现2(1)

Java 程序员 后端

【死磕 Java 基础】 — 谈谈那个写时拷贝技术(copy-on-write)

chenssy

11月日更 死磕 Java 死磕 Java 基础

如何基于 React Native 快速实现一个视频通话应用

声网

flutter 人工智能「

堪称全网最全的JAVA面试复盘笔记(23个技术栈)5000字解析!冲击大厂必备

Java 程序员 后端

备战明年金三银四,阿里P8大佬总结的这份Java面试文档,你可一定要好好看看

Java 程序员 后端

多线程详解第3讲:线程状态

Java 程序员 后端

基于java的连连看游戏设计

Java 程序员 后端

基于NFS存储建立WEB群(PCS工具)

Java 程序员 后端

基于JSP实现学校社团管理系统

Java 程序员 后端

模块三作业

心怀架构

堪称完美!字节强推数据结构与算法进修指南:理论源码面试三飞

Java 程序员 后端

基于 ElasticSearch 实现站内全文搜索(1)

Java 程序员 后端

基于iscsi存储的kvm动态迁移(V2V)

Java 程序员 后端

基于SSM开发实现中药制剂网站系统

Java 程序员 后端

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