国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Scala登陸.NET平臺

原創
開發 后端 新聞
Scala被很多人認為是下下一代的Java,而且Scala被預想能在.NET平臺上運行。今天,這個預想已經開始變成了現實。

【51CTO外電頭條】Miguel Garcia是瑞士洛桑理工大學的Scala語言開發小組成員,多年來他一直在努力將Scala的生產力移植到.NET平臺,為開發者提供幫助。現在多年的工作已經達到了一個重要的里程碑。在Miguel的訪談中,他稱已經可以在.NET上使用Scala,并預計這個微軟資助的重要項目將來會有更了不起的成就。

51CTO編輯推薦:Scala語言編程入門指南

為什么需要讓Scala在.NET上運行?

Miguel:

總的來說有很多原因,這對開發者和企業兩方面都非常具有吸引力。Scala是一個精確的并且具有高度生產力的編程語言。在.NET上使用Scala,開發者不僅能夠更快速的開發出各種應用,而且能夠在JVM和.NET這兩個主流行業平臺之間進行跨平臺部署。

這對于開發者來說意味更多,因為只需要學習一種語言就可以在兩種環境里創建應用。從企業的觀點看,這也能夠更好的利用***資源,因為優秀的程序員可以輕松的跨越兩個平臺,減少了培訓成本,增加了靈活性,降低了風險。.NET平臺集成了多種語言,Scala的互操作性也很好,你可以使用現有的.NET庫或現有的應用,不需要使用Scala重寫。最終的效果是原先只能分別在.NET和JVM環境中使用的工具和應用都可以從一個環境移植到另一個環境,這是一個多贏的局面。從目前的情況看,Scala和.NET二者結合的非常好,對Scala開發者來說幾乎不會察覺到是在.NET上運行。

現在就能在.NET上運行Scala程序了嗎?

Miguel:答案很簡單,是的,只是目前還有一點局限,但到今年秋天就會完全解決。

如果你想把正在JVM上運行的Scala程序移植到.NET上,需要做的只是使用Scala.NET編譯器重新編譯一遍,就可以在.NET上運行了。

現在碰到的主要局限就是Scala程序還不能使用.NET中那些用到CLR泛型的類庫,比如.NET集合類。當然這只是一個小限制了,其他的功能全部可用,而且到今年秋天.NET泛型也能全部支持。

怎樣在.NET上開發Scala程序呢?

Miguel:你可以直接在MS Visual Studio里開發。到今年秋天Visual Studio的Scala插件就能支持人們期望的各種基本功能了,具體地說,IDE、代碼自動完成、代碼瀏覽、斷行、表達式和異常報告等等這些。

目前的Scala.NET編譯器也已經非常強大了,它能夠對自己進行編譯,大概由十萬行Scala代碼組成。現在的插件還不支持代碼自動完成和代碼瀏覽,所以我有時還是會選擇使用Eclipse或是Intellij在JVM上編寫代碼,然后在Visual Studio中做最終的調試。

你們是怎樣做到的?

Miguel:主要需要克服的困難是Scala程序大量使用了Java JDK,而Java JDK在.NET環境中是不被支持的,所以Scala編譯器必須要針對.NET而重新生成代碼。

Java社區早已經開發出IKVM虛擬機,可以把Java程序轉換成MSIL(Microsoft Intermediate Language,微軟中間語言),此外還有一個.NET類庫用來提供基本的JDK支持。IKVM是Jeroen Frijters很早以前就一直倡導的一個開源項目,也是為了遵循Java“一次編寫,到處運行”的原則,IKVM存在很長時間了,作為開源項目非常成功,也有可靠的商業支持。IKVM類庫是我們用來初始Scala.NET編譯器的關鍵內容,而且給我們提供了將Scala類庫搬上.NET的優良基礎。

說來Scala.NET編譯器的歷史也很長了,但剛開始主要是集中在編譯器的愛好者和黑客群體里,當時他們中有些人開發出了跨平臺的編譯器。在我進入的時候,跨平臺編譯器已經成型,但它還不能在.NET環境中啟動自己。這意味著必須有一個能夠自己編譯自己的Scala.NET編譯器,實際上這是一個先有雞還是先有蛋的經典問題。

當時的跨平臺編譯器運行良好,但只能在JDK上運行。依靠大量的JDK API,這和目前的Scala應用一樣。現在很多Scala開發者還是習慣使用JDK中的功能,即使這些功能在Scala SDK上也已經提供了。所以說我們雖然有了跨平臺編譯器,但缺乏方法,能夠用.NET類庫的功能自動替換那些JDK的功能。

IKVM編譯器能夠提取JVM字節碼轉換為.NET的Assembly類庫。推進到字節碼級別雖然是前進了一大步,但并沒有給我們帶來真正的開端,因為我們依舊沒有擺脫對JDK的依靠。所以我們的任務就變成了創建一個前端處理器,能夠修改Scala的源代碼,將JDK直接替換為IKVM類庫中的.NET相同功能,一種映射機制。

具體是怎樣映射的呢?

Miguel:***步是創建源代碼級所需要的初始化轉換。下一階段是擴展Scala編譯器來應用這些轉換。Scala編譯器是模塊化的,支持各種插件,因此應用起來很方便,但并不是所有的編譯器都能夠那么靈活的做到。我們創建了一個新的Scala插件JDK2IKVM用來在批模式下完成源代碼轉換。得到的源代碼引用IKVM類庫,經過標準的編譯器流程生成MSIL字節碼。這就是我們現在的Scala.NET,能夠自己編譯自己的Scala編譯器。實際操作中我們會反復進行多次編譯/轉換環節來完成全部的功能轉換。

在后臺我們使用了重構技術,這種技術也可以用于其它的平臺移植,例如將Java.IO自動轉換為Scala.IO。當然Scala.NET編譯器本身也就是一個Scala應用,因此對于任何JVM上的Scala應用都會有效,這很好理解。

原始類型(Primitive Type)的兼容性怎樣?

Miguel:.NET的CLR提供的原始類型是JVM類型的超集,從編譯器的角度看來它們轉換起來很容易。字符串和數值等等都能夠完成轉換,從我們開始測試起就沒有發現什么困難情況。IKVM在IKVM社區已經使用了很多年了。

接下來準備做什么?

Miguel:剛才提到了,接下來我們要擴展Visual Studio插件,加入對.NET泛型的支持,提供完整的IDE功能。此外SDK還有一些部分比如并行集合等需要針對.NET環境進行修改。轉型映射還會擴展到支持一些開發者常用的基本庫比如IO等等。

原文標題:Scala comes to .NET

【編輯推薦】

  1. Scala語言編程入門指南
  2. Scala編程指南 更少的字更多的事
  3. Scala編程指南 揭示Scala的本質
  4. Scala編程指南 了解Traits功能
  5. 51CTO專訪Scala創始人:Scala拒絕學術化
責任編輯:彭凡 來源: 51CTO
相關推薦

2010-08-18 08:21:49

Adobe AIRAndroid

2009-01-12 17:34:11

服務器虛擬化VMware

2014-07-01 10:01:36

Go安卓開發

2011-12-25 20:25:22

iPhone

2015-01-14 11:29:50

谷歌Chrome RemoiOS

2009-07-24 15:46:00

ASP.NET登陸控件

2009-08-27 17:20:30

ASP.NET登陸控件membership配

2012-02-15 17:17:02

開放平臺

2014-08-18 10:46:10

IE瀏覽器

2013-09-10 14:37:34

微軟XboxiOSAndroid

2013-03-04 15:28:57

HTML5移動游戲微信

2012-04-25 14:27:03

JavaScala

2012-03-31 16:35:53

Metro UIAndroid

2013-09-10 09:20:17

Opera海信智能電視電視應用商店

2010-10-09 14:04:56

AAdobe AIRdobeAndroid

2012-04-25 14:12:12

JavaScala

2013-07-01 15:46:17

Windows AzuSUSE

2015-02-12 16:53:06

手機克隆EMUIiOS

2011-03-08 13:52:25

Proftpd

2010-04-21 17:20:03

Unix遠程
點贊
收藏

51CTO技術棧公眾號

国产一区 二区| 制服丝袜在线播放| 国产精品老牛| 欧美国产一区二区三区| 国产传媒av在线| 欧美精品精品一区| 国产高清一区在线观看| 午夜精品久久久久久久99水蜜桃 | 亚洲精品在线a| 日韩中文在线中文网三级| 国产盗摄——sm在线视频| 精品日韩av一区二区| 午夜不卡视频| 欧美日韩国产精品自在自线| 国产二区在线播放| 欧美日韩一区二区三区四区五区| 亚洲精品套图| 午夜一区二区三区视频| 一级在线视频| 欧美日产国产精品| av色综合久久天堂av色综合在| 777午夜精品免费视频| 黄色免费网站在线| 精品国产一区二区在线观看| h片在线观看视频免费免费| 日韩福利视频在线观看| 精品日本视频| 欧美另类高清videos| 欧美日韩麻豆| 亚洲va国产va天堂va久久| 亚洲黄色大片| 亚洲欧美综合网| 免费男女羞羞的视频网站中文字幕| 日韩毛片视频在线看| 午夜视频99| 狠狠躁夜夜躁人人躁婷婷91| www.av在线| 日韩久久午夜影院| 久久国产精品美女| 国产精品久久久久999| 7777久久香蕉成人影院| 久久99国产精品| 国产精品77777竹菊影视小说| 成年人在线看片| 亚洲成人av在线电影| 在线观看黄色av| 亚洲欧美日韩精品久久| 97久久综合精品久久久综合| 国产精品美女主播| 日日夜夜精品免费视频| 91猫先生在线| 亚洲日本青草视频在线怡红院 | 99国产视频| 国内精品伊人久久久久av影院| 97成人在线观看视频| 国产精品情趣视频| 免费福利在线观看| 亚洲裸体xxxx| 欧美丝袜足交| 久久影视中文粉嫩av| 懂色av一区二区三区免费看| 特级全黄一级毛片| 日韩国产欧美区| 国产在视频线精品视频www666| 欧美日本亚洲| 亚洲国产成人一区二区三区| a黄色片在线观看| 国自产精品手机在线观看视频| 激情综合中文娱乐网| 丰满爆乳一区二区三区| 欧美三级中文字幕| 日韩区一区二| 久久精品magnetxturnbtih| 91片在线免费观看| 久久这里精品| 久久国产精品久久久久| 女人色偷偷aa久久天堂| 91精品91久久久中77777老牛| 欧美亚洲日本一区| 红杏一区二区三区| 亚洲黄色网址在线观看| 动漫精品一区二区| 电影一区二区三区久久免费观看| 国产主播一区二区三区四区| 国产欧美日韩视频在线观看| 国产伦久视频在线观看| 成人亚洲欧美一区二区三区| 国产三级精品三级在线专区| 久久影院午夜精品| 国产高清一区二区三区| 国产欧美日韩视频在线观看| 麻豆视频在线观看免费网站黄| 成人乱色短篇合集| 中文字幕+乱码+中文字幕一区| 国内精彩免费自拍视频在线观看网址 | 成人黄色小视频| 97在线国产视频| 欧美日韩精品一区二区三区蜜桃 | 国产精品18久久久久久vr| 日韩在线免费电影| 国产97色在线| 国产区在线观看成人精品| 99热99re6国产在线播放| 成人国产一区二区| 亚洲免费观看高清完整版在线观看 | 亚洲同性gay激情无套| 色吧亚洲日本| 欧美激情导航| 大桥未久av一区二区三区| 国产精品色在线网站| 最新av网址在线观看| 精品乱码亚洲一区二区不卡| 亚洲视频免费| 偷拍25位美女撒尿视频在线观看| 国产成人精品优优av| 中文字幕在线不卡视频| yy6080久久伦理一区二区| 亚洲一区三区电影在线观看| 91精品久久久久久久99蜜桃| 亚洲精品欧洲| 久久黄色美女电影| 精品国产综合区久久久久久| 欧美综合一区二区三区| 午夜精品亚洲| avav免费在线观看| 黄色99视频| 欧美一区二区精品久久911| 一本久久综合| 国产乱色在线观看| 日韩aⅴ视频一区二区三区| 欧美精品aⅴ在线视频| 美臀av在线| 久久久久久久9| 777av视频| 国产免费黄视频在线观看| 欧美激情视频免费看| 亚洲综合精品伊人久久| 国产99在线播放| 日韩电影第一页| 伊人伊人伊人久久| 欧美丝袜一区二区| 国产偷国产偷亚洲高清人白洁| 国产原创一区二区三区| 亚洲人成7777| 精品中文字幕久久久久久| 一区二区三区无码高清视频| 亚洲桃花岛网站| 91chinesevideo永久地址| 日本高清不卡在线观看| 欧美国产精品一区二区| 亚洲国产综合91精品麻豆| 日韩av网站电影| 欧美大片在线影院| 青青草原一区二区| 国产在线拍偷自揄拍精品| 中文字幕日韩一区二区三区 | 日本成人激情视频| 久久精品人人爽| 久久综合电影一区| 色综合视频网站| xxxx欧美18另类的高清| 日韩成人av网| 91国产高清在线| 国产伦精品一区二区三区视频孕妇 | 久久综合久久鬼色| 国产凹凸在线观看一区二区| 一区二区三区午夜探花| 亚洲综合无码一区二区| 亚洲男人av电影| 91亚洲人电影| 亚洲欧洲国产日韩精品| 久久婷五月综合| 福利视频在线播放| 97caopor国产在线视频| 丁香花在线电影| 久久精品超碰| 亚洲精品综合| 中文字幕av免费专区久久| 亚洲美女又黄又爽在线观看| 欧美性xxxxx| 91麻豆精品国产| 久久国产精品久久久| 少妇高潮喷水久久久久久久久久| 一二三四区在线观看| 日韩欧国产精品一区综合无码| 精品国产一区二区三区久久久樱花 | 亚洲理论电影在线观看| 久久久久久成人| 欧美日韩不卡在线| 久久一二三国产| 亚洲小说欧美另类婷婷| 天堂综合在线播放| 成人在线免费看| 日本中文字幕网址| 国产精品国产精品| 欧美劲爆第一页| 91精品国产美女浴室洗澡无遮挡| 中文字幕日韩欧美一区二区三区| 麻豆视频一区二区| 久久精品国产99久久|