AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

关于 ZEGO 支撑 100 亿场高质量直播的秘笈

ZEGO即构

后台开发 CDN 音视频技术 音视频引擎

构建测试的体系化思维(进阶篇)

BY林子

测试体系 质量内建

【C语言】结构体

謓泽

C语言 结构体 3月月更

车辆GPS定位整套管理系统,轨迹播放,车辆管理,电子围栏,报警记录,数据库/人员定位/宠物定位/物流跟踪/资产定位

Geek_7jiynf

Java Java web GPS

JAVA只要掌握内部类,多继承和单继承都不是问题

华为云开发者联盟

Java jdk 多继承 内部类 单继承

网络安全:小记一次代码审计

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 代码审计

2022年炙手可热的边缘计算与端智能

战场小包

边缘计算 端智能 3月月更

MongoDB常见问题解答:时间与时区

MongoDB中文社区

mongodb

直播系统聊天技术(七):直播间海量聊天消息的架构设计难点实践

BeeWorks

Shopee Games 游戏引擎演进之路

Shopee技术团队

前端 游戏开发 egret 游戏引擎

2023总结

明明

基础

数字化背景下,为何J2PaaS低代码平台,能成为企业技术升级的优选?

J2PaaS低代码平台

低代码 数字化 企业数字化转型 低代码平台 企业级低代码平台

什么是SDK,它是怎样威胁我们的隐私?

郑州埃文科技

一次代码审计实战案例【思路流程】

H

网络安全

科创人·弘玑Cyclone CEO高煜光:从RPA到超自动化,以客户需求构建战略纵深

科创人

基于Java+SpringMVC+MySql+Layui+H5实现企业门户网站

Geek_7jiynf

网站建设

如何为招聘机构选择CRM系统

低代码小观

低代码 企业管理 企业管理系统 CRM系统

理想很丰满,现实很骨感,坎坷前行的区块链产业化路在何方?

Akumas

区块链 数字化转型 新基建 十四五规划

2021年信创产业融资分析报告

统小信uos

基于大数据的医疗健康疾病筛查及风险评估系统

Geek_7jiynf

医疗方案 医疗AI 医疗信息化

通过蜜罐技术获取攻击者手机号、微信号【网络安全】

H

黑客 网络安全

技术实践 | 如何给NVMe做RAID

沃趣科技

raid 硬盘

高级IO模型之kqueue和epoll

程序那些事

Java io nio 程序那些事 3月月更

云开发在教育应用开发、运维全流程实践

阿里云云效

云计算 阿里云 DevOps 云原生 开发

阿里 BladeDISC 深度学习编译器正式开源

阿里云大数据AI技术

深度学习 开源 编译器

网络安全kali渗透学习 web渗透入门 Metasploit---基于SMB协议收集信息

学神来啦

网络安全 kali kali Linux

fastposter v2.5.1 发布 轻松在线作图

物有本末

进入2022年,移动互联网的小程序和短视频直播赛道还有机会吗?

BeeWorks

【云计算】云计算六大优点简单说明

行云管家

云计算 IT 企业上云 IT运维

记某核心MongoDB集群索引优化实践

MongoDB中文社区

mongodb

未来的直播技术将会有哪些新的进化形式?

字节跳动视频云技术团队

互联网 科技革命 直播技术 低延时 音视频技术

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