【问题标题】:In what language did the /**/ comment style originate?/**/ 注释风格起源于什么语言?
【发布时间】:2015-01-21 14:27:54
【问题描述】:

我记得读过一次,但现在找不到了。我认为文中提到的 /**/ 评论风格,可以在 css 和 js 中找到,起源于一个共同的祖先。

有谁知道那个共同的祖先是什么?

【问题讨论】:

  • 我想这最初来自 C。
  • /* */ cmets 早于 C 和 Unix。
  • 这个问题似乎是题外话,因为它是关于符号的历史,而不是一个实际的编程问题。

标签: javascript css comments


【解决方案1】:

根据http://en.wikipedia.org/wiki/Comment_%28computer_programming%29#Styles,它是由 Holub 为 C 和 C++ 命名的。根据您的详细程度,这种评论风格的原始“创意”可以授予他、Bell Labs(C 的创建者)或 Dennis Ritchie(C 的特定作者)

进一步阅读丹尼斯·里奇:http://en.wikipedia.org/wiki/Dennis_Ritchie

进一步阅读 Allen Holub:http://en.wikipedia.org/wiki/Allen_Holub

【讨论】:

  • 不客气。也欢迎来到 StackOverflow!如果有人很好地回答了您的问题,您可以通过单击旁边的勾号将其标记为正确。
  • /* */ 注释语法也可以在 B 语言中使用,这也是 Thompson 在 1969 年左右设计的。至少当时他显然是一个反对打字的人。
  • 而 BCPL 大约从 1966 年开始拥有// cmets。
  • 根据我的观察,C 语言绝对不是/* */ 第一次出现。
【解决方案2】:

PL/I 编程语言由 IBM 在 60 年代初指定并在 1964 年左右首次实现,具有 /* */ 注释块。

几年后(大约 1966 年),PL/I 语言被(某种程度上)子集化为 Multics 操作系统创建 EPL 语言。 EPL 也有/* */ cmets,并且(显着)是后来贝尔实验室在 Unix 上工作的灵感。 (“Unix”这个名字显然是一个派生词。)Ken Thompson 在离开这项工作并于 1969 年开始研究 Unix 之前的那些年里,曾是一名使用 Multics 的研究员。

【讨论】:

    【解决方案3】:

    我跟着 http://rigaux.org/language-study/diagram.png 从 C 回来了。语言 B 和 PL/I(C 的前身)有 /* */ 风格的 cmets (http://cm.bell-labs.com/cm/cs/who/dmr/kbman.html),但看起来他们的祖先 ALGOL 只使用单行 cmets,该行以单词comment 开头。

    所以看起来 B 或 PL/I 可能引入了 /* */ 样式注释。似乎 Dennie Van Tassel——拥有一个专门用于评论编程语言的整个网页——早在 2004 年就得出了同样的结论,“很明显 C 风格的 cmets 赢了,但他们来自 B (ALGOL??一个还是我编造的)。” - http://www.gavilan.edu/csis/languages/comments.html

    【讨论】:

    • 不是 Algol(至少不是 Algol 60)- Algol 60 中的块 cmets 以 !+ 打开并以 !- 关闭,我认为那些必须是在行首,但我不确定。
    • 无需等待;那不是阿尔戈。我不记得有!+ !- 约定是什么。有趣的是,我最近在阅读一些论文时才看到它。
    • @Pointy - 根据伟大而强大的维基百科(即买家要小心),ALGOL 60 cmets 是单行的,总是以关键字 comment 开头。 ALGOL 68 引入了一些新的关键字(commentco#£),但 cmets 仍然是单行的。为了清楚起见,我回答中的引述来自 Dennie Van Tassel。我引用了他的引用,因为他也倾向于将 B 作为 /* */ 风格引用的原始语言。
    • 对。我希望我能记住!+ 的事情是什么语言。无论如何,PL/I 和 EPL 确实做到了/* */,并且比 B 和 C 早了五年;在与 Multics 合作期间,Ken Thompson 显然是最有可能对大会感兴趣的人。
    • 对 PL/I 的原始版本不太确定,但我很确定 EPL(Multics)在 1966 年左右使用 /* */
    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多