gpt4 book ai didi

.net - 为什么在 Visual Studio 2010 中安装了 F# 运行时?

转载 作者:行者123 更新时间:2023-12-04 22:08:27 25 4
gpt4 key购买 nike

我正在一台新机器上安装 Visual Studio 2010,并列出了安装的默认组件。

其中有'Visual Studio F# 2.0 Runtime',看起来很奇怪,因为据我所知,所有.NET语言都会被编译成MSIL然后被平等对待(这显然不对,因为有一个F# Runtime )。

所以这里出现了我的问题:不是所有的语言都编译为 MSIL 吗?如果是这样,那将意味着运行时分析器对于任何语言都应该是相同的,不是吗?为什么 F# 与其他语言的处理方式不同,如果确实如此?

任何想法将不胜感激!

最佳答案

C# 和 VB 也有运行时。它们只是 DLL - .NET MSIL 程序集。碰巧 F# 运行时不是 .NET 框架的一部分(它是一个单独的组件),而 C# 和 VB 运行时是框架的一部分(因此已经作为 .NET 的一部分安装)。
(我不知道 VB 运行时到底是什么,我认为是一堆 VB 特定的函数。我认为 C# 运行时 Microsoft.CSharp.dll 仅用于 dynamic 。F# 运行时 FSharp.Core。 dll,有各种各样的东西,比如函数、列表、异步、所有不属于 .NET 的 F# 东西。
将这些东西称为“运行时”可能会引起混淆,它们只是“库”,但是如果没有这些库,您将被限制只能使用该语言的一个子集。在 C# 中,如果没有运行时,就不能使用动态。在 F# 中,如果没有运行时,您可以做的很少,也许可以定义一些类和简单的方法,但不能使用列表或高阶函数或某些语言结构。我不知道VB。我想一般来说,如果语言的编译器将生成假定该库存在的代码,那么该库应该被标记为“语言运行时”的一部分。因此,像 mscorlib.dll 这样的 .NET 东西可能可以被正确地称为所有语言的共享运行时的一部分(例如,支持 C# 中的 int 关键字之类的东西),而其他库只是为了支持特定语言的特定功能(像 Microsoft.CSharp.dll 来支持 dynamic )。
顺便说一句,Visual Studio 安装了 F# 运行时,因为 Visual Studio 中的 F# IDE 集成部分是用 F# 编写的,因此 VS 需要 F# 才能运行。 (F#项目系统部分用C#编写,部分用F#编写,部分用VB编写。)同样,VS安装.NET 4.0,因为VS的很多组件都是用C#和VB编写的——有很多托管代码在运行内VS。

关于.net - 为什么在 Visual Studio 2010 中安装了 F# 运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516588/

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