gpt4 book ai didi

c# - 编程语言可以成为平台的一部分吗? (C# 和 Java 相关)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:48 26 4
gpt4 key购买 nike

他说的是:我正在为我的毕业类(class)做一些关于 .NET 和 Java 平台的理论研究,我遇到了一个模糊的领域:C# 可以被认为是 .NET Framework 的一部分吗?与此类似,Java(编程语言)是否被视为 Java 平台的一部分?

让我回顾一下事实:

  1. .NET是ECMA-335标准规定的开发平台;如果你愿意的话,它是这个标准的一个实现。然而,C# 是另一个标准 ECMA-334 的实现,它清楚地表明它的实现不需要 ECMA-335 标准的实现——微软案例中的 CLR(很多人错误地称之为 .NET,因为有很多不仅仅是 CLR)。

  2. 此外,我们还有 Mono,ECMA-335 的另一种实现,C# 也在其上运行(从我读到的所有内容来看,这暗示 Novell 没有自己的 ECMA-334 实现,这是完全合理的),但 C# 不是 Mono 的一部分。

  3. 事实上我在某处读到编程语言不是平台的一部分,但不幸的是我似乎找不到来源。

  4. 还有一个事实是,维基百科“计算平台”一文指出编程语言是一个平台;但是,如果您希望认真对待您的研究,Wiki 几乎毫无值(value)。

  5. Microsoft 似乎将 C# 作为 .NET 的一部分进行推广,但作为 .NET 的多语言平台,不是所有支持/被它支持的语言都如此吗?

到目前为止,我只谈到了 .NET,但我还需要有关 Java 的答案。实际上,笼统的回应是最好的。

所以,谁能帮我把这些碎片拼在一起?非常感谢引用资料。


在另一个问题上,我发现有很多书籍都在解释 CLR 的内部工作原理,对于 JVM 来说,这不都是一样的吗?我的意思是,当然有规范,但我的目标是更容易理解,毕竟我不打算构建 Java 编译器..

最佳答案

正如每个人似乎都注意到的那样,这取决于您的定义。

但是 Ecma 334(和/或其他一些 Ecma 文档)也指定了 MSIL(或 CIL),并且这绝对是 平台的一部分。

而且我认为 C# 不是 平台的一部分,MS 编译器只是通过输出 MSIL 以 CLR 为目标。不难想象另一个托管或非托管平台的实现。

Java 通过同时拥有一个平台和一种称为 Java 的语言来混淆这个问题,但不难看出两者之间的区别。

那么,语言可以成为平台的一部分吗? ,请参阅 MSIL。
但大多数语言(包括 C# 和 Java)都不是。

许多语言(C、C++)都在积极努力实现跨平台移植。

关于c# - 编程语言可以成为平台的一部分吗? (C# 和 Java 相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com