簡體   English   中英

Gosu C#是否為JVM?

[英]Is Gosu C# for the JVM?

我收集的內容來看,Gosu只是JVM的C#(這是一件好事)。 這是真的嗎? Gosu和C#之間有什么區別(除了類庫以及它在JVM上運行的事實)?

我們沒有將Gosu構建為JVM的一種語言或另一種語言。 相反,我們將Gosu構建為JVM的有用語言。 此外,我們認識到Gosu需要熟悉那些對命令式,面向對象模型最熟悉的現有程序員。 為了實現這一點,我們大量借用了幾種語言,例如Java,C#,EcmaScript,Ruby和其他一些語言。 我們認為,結果是一種獨特定位於JVM的語言。

然而,Gosu的獨特之處在於它是開放式系統

Gosu的類型系統由可配置數量的類型裝載器組成。 類型加載器的主要職責是解析其域中的類型名稱並返回Gosu的IType接口的實現。 這是Gosu最獨特的 - 它的類型系統對其他領域開放,可以參與一流的代表。 我經常使用術語DST(域特定類型)來理解這個想法。 例如,Gosu不區分Gosu類,Java類或XML類型或者您擁有的內容; 他們都只是Gosu編譯器的類型。 查看下載中的DynamicType示例 ,以了解開放式系統提供的功能和廣度。 本質上,該示例演示了C#的“動態類型在必要時”可以簡單地成為Gosu中的新類型加載器域。 或者查看Ronin框架,了解Web和數據庫域可以輕松地無縫映射到Gosu。

重要的是要理解並非Gosu中的所有類型加載器域都需要生成字節碼。 那些確實實現了獲取相應Java類的接口的那些。 那些不分別為反射MethodInfo和PropertyInfo評估提供調用處理程序和屬性訪問器的程序。 注意所有類型都提供TypeInfo,請參閱IType.getTypeInfo()。 例如,解析器針對TypeInfo,MethodInfo等抽象作為不同類型之間的公平競爭場的手段。 但是,在運行時,除非類型提供Java字節碼類,否則MethodInfos和PropertyInfos也負責處理調用。

不,如果你看一下“顯着差異”頁面(Java和古藪之間的差異),你會看到很多東西像C#,也是東西是不是在C#如不區分大小寫,使半冒號可選。 還有一些事情當然沒有提到,但它們是C#的一部分:

  • 自定義值類型
  • 運算符重載
  • LINQ
  • 需要時動態打字

我認為將Gosu視為“JVM的C#”而不是“混合Java的一些JVM語言,C#的位和其他語言的一些位”是錯誤的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM