Python是托管代码语言吗?

时间:2014-04-09 04:55:53

标签: c# python

我在 NOOBish ,但由于 The Heartbleed Bug ,我对托管代码非常感兴趣。

我最近在HN读到这句话:

  

C和其他没有内存检查的语言不适合写入   安全代码。显然不合适。他们需要限制写作   一个小核心系统,最好小到可以检查   使用正式(基于证据的)方法,以及所有其他方法,包括所有方法   应用程序逻辑应该使用托管代码(例如C#,   Java,或其他 - 我没有偏好。)

Python是一种托管代码语言还是托管代码只是一个Microsoft术语?

3 个答案:

答案 0 :(得分:5)

我会认为Python是托管的,因为它运行在一个虚拟环境中,为您执行所有内存管理,不允许指针,执行数组边界检查等等。

它的管理不是因为它在CLR中运行(除非您正在使用IronPython),但它仍然受到管理。

答案 1 :(得分:5)

由于我无法发表评论,因此发布此内容,但Palak.Maheria评论说Python是非托管代码应该是不正确的。 Python确实是托管的。如果没有中介,您将无法运行托管代码。现在,很难具体定义什么是中介,但假设你是否称为汤姆。您开发了一种名为Tom的编程语言和编译器。现在,为了让Windows了解Tom的编程语言,你需要这个中介。

例如,在Windows上,您可以直接运行批处理文件和本机C / C ++应用程序。在python的情况下,Windows无法识别它。因此,您需要安装和使用python解释器,并且您的python应用程序将在" python虚拟环境中运行"。这个概念与Java和.NET完全相似,您需要分别使用JVM和CLR。在这种情况下,python环境不称为CLR,但它被认为是托管

正如该术语所暗示的,托管意味着某人/某事正在为您管理某些事情。管理什么并不重要,重要的是这个概念。

如果我错了,请纠正我。

答案 2 :(得分:0)

Python是非托管代码。

请参阅以下链接:

What exactly is "managed" code?