我在 NOOBish ,但由于 The Heartbleed Bug ,我对托管代码非常感兴趣。
我最近在HN读到这句话:
C和其他没有内存检查的语言不适合写入 安全代码。显然不合适。他们需要限制写作 一个小核心系统,最好小到可以检查 使用正式(基于证据的)方法,以及所有其他方法,包括所有方法 应用程序逻辑应该使用托管代码(例如C#, Java,或其他 - 我没有偏好。)
Python是一种托管代码语言还是托管代码只是一个Microsoft术语?
答案 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)