这是什么意思 - "IronPython is an implementation of the Python programming language"

What it means - "IronPython is an implementation of the Python programming language"

我知道问题看起来很宽泛和主观,但我到处都坚持 IronPython 的这个定义 - “IronPython 是 Python 编程语言" 如果有任何 SO post 准确回答了这个问题,请随时将其标记为重复。

到目前为止,我对此的理解是:

1) Iron python 只不过是用 C# 编写并使用 CLR

的托管库 (IronPython.dll)

2) Iron python 托管代码在内部使用标准 Python 库(作为 Iron Python 的一部分安装)以使用 DLR 弥合差距。

What is actual execution run time for any python code here ? Is it Python interpreter ? Does this interpreter runs in different process ?

3) IronPython.dll 公开 api 以与 python 代码与任何其他 .net 语言集成。

我确信在某些地方我的理解是不正确的——“IronPython 是 Python 编程语言 的一个实现”因为从这个看起来 Python 语言是一种约定,它指定了您如何编写检查条件 if condition,像 iron python 这样的实现者负责将其转换为 IL 代码。是这样吗?

感谢对此的任何帮助或指示。

不要将编程语言视为实际的软件,而是 "specifications"。这种意思就是我可以只指定一种编程语言,但不一定实现它。实现一种语言意味着编写一个采用该语言代码的程序,并且"run"它完全按照规范所述。

csc 编译器不是 C# 编程语言本身,而是 C# 编程语言的实现。 C# 编程语言由 C# 语言规范定义。语言规范定义了语言是什么。该语言的实现应该 compile/interpret 代码与语言规范完全一致。从某种意义上说,语言规范 编程语言。

IronPython 是一个实现,因为它是一个将一串 python 代码作为输入然后完全按照 python specification 所说的行为的程序。这就是 "an implementation".

的意思

Iron Python 的作用是这样的:

An alternate Python for .NET. Unlike Python.NET, this is a complete Python implementation that generates IL, and compiles Python code directly to .NET assemblies.

所以 Iron Python 接受了一些 python 代码,对它做了一些事情,并吐出了行为与语言规范完全一致的 IL。这使得 Iron Python 成为 python 语言的 "implementation"。

CPython 被认为是 python 的另一种实现,因为它本质上做同样的事情:获取一些代码,将其转换为可执行文件,其行为与语言规范完全一致。