gpt4 book ai didi

c# - C# 如何从 .NET Framework 中分离出来?

转载 作者:太空狗 更新时间:2023-10-29 18:34:44 25 4
gpt4 key购买 nike

在谈到 .NET 框架时,我不是新手,多年来我一直在编写使用它的 C# 软件。然而,前几天我想到了一个想法……C# 如何通过 lockobject 等关键字从 .NET 框架中分离出来?像 object derp = new object(); 这样的语句解析为 System.Object derp = new System.Object();,但是 System.Object 被定义为 的一部分。 NET 不是吗?即使它是在 mscorlib 中定义的,这也意味着语言功能 依赖于库。 lock 语句也是如此,这些语句解析为对 Monitor.Enter()Montior.Exit() 的调用。显然,不使用 .NET 功能编写任何非玩具程序是愚蠢的/不可能的,但是一种语言怎么能依赖于主要用该语言编写的库呢?

最佳答案

实现一种语言的最低要求是有一个编译器将语言转换成可执行代码,并有一个运行时系统来执行它。它们都不是用 C# 编写的,它们使用的是 C++。使用另一种语言来完成此操作是传统且必要的引导步骤。 C 语言是一种非常常见的自举语言选择,它体积小而且很容易移植,Mono 采取的方法。 C本身有一种引导语言,它是B。它是从BCPL引导的。这是从 CPL 启动的。这是从 Atlas2 启动的。在此之前变得模糊,想象一下有人在一台非常原始的计算机的前面板上使用拨动开关。

一旦准备就绪,您就可以开始迭代和改进。就像添加对 lock 关键字的支持一样,您不需要让编译器和运行时系统运行的语言功能。它依赖于 Monitor 类,该类在今天仍然非常薄,其绝大多数代码都使用 C++。

接下来通常是将编译器重写为目标语言,对于 C# 花费了相当长的时间,但现在使用 Roslyn 完成了。可能会考虑重写运行时系统,尽管这不是很常见。作为微软内部的一个孵化项目完成, secret 的 Midori 项目。不仅仅是运行时,而是整个操作系统。启动了 Singularity 项目。

关于c# - C# 如何从 .NET Framework 中分离出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888265/

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