【问题标题】:What is the history of the import statement?导入语句的历史是什么?
【发布时间】:2011-06-29 17:24:25
【问题描述】:

我知道两种使用import 语句的语言:Java 和Python。我们都知道the import antigravity joke

哪种语言真正引入了这种说法?是两者之一,还是另外一个?什么时候?

【问题讨论】:

  • import antigravity - 对于那些 - 像我一样 - 不知道的人。
  • @Andreas:我已经编辑了问题以链接到该问题:)
  • 这个笑话指的是“包含电池”的理念,而不是真正意义上的进口。
  • 是的,但它成为某种“含电池”理念的标志性声明。 :)
  • 我可以建议介绍此声明的第一种语言是... english。当用词来描述正在发生的技术性事情时,import 远不是一个新颖的关键字——我可以相信任何一种使用它的编程语言都是独立地产生这种用法的。

标签: java python programming-languages import


【解决方案1】:

import 只是指定对其他类/模块的依赖关系的一种方法。某种指定方式已经出现在很多很多语言中。

事实上,Java 中的 import 和 Python 中的 import 做了两件完全不同的事情:

  • 在 Java 中,import 仅提供通过短名称而不是完全限定名称来引用类型(或字段/方法,如果使用 import static)的能力。基于import 不会发生任何类型的“模块加载”。
  • 在 Python 中,import 实际加载一个模块,并可选择为其部分(或全部)成员提供一个短名称。

其他一些类似的关键字是 C 中的 include 和 Perl 中的 use。很多很多语言都有某种方式来指定这种依赖关系,但技术细节差异很大。

IMPORT 语句早于 Java 和 Python 的一种语言是 Modula-2 (1978) 及其后继 Modula-3

【讨论】:

  • 感谢您的回答。我知道 C 语言及其include。但我对“导入”这个词特别感兴趣,因为它在谈论 Python 的优势时被广泛使用,而且通常很幽默。
  • 如您所见,import 早在 Python 之前就已经存在了。据我所知,这些对它的幽默引用始于 Python。
  • 我在您编辑答案之前写了我的评论。也感谢您编辑我的问题。现在更清楚了。
【解决方案2】:

FWIW,在 80 年代,您首先会遇到 Extended Pascal 和 Ada 中的 import 语句,其含义与今天普遍接受的用法有所不同。

在 ADA 中,您可以 [pragma] 从其他语言(通常是 C)导入函数。这类似于 java 中的 JNI 或在 VB6 中声明一个存在于 dll 中的函数。 扩展的 Pascal 中也引入了相同的概念(Pascal 和 ADA 中的命名空间导入概念实际上依赖于 withuses 关键字的组合)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2011-09-22
    • 2017-03-19
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多