“ pragma”一词从何而来?


83

所以我知道什么是杂用语,它的用途是什么,但是单词本身的含义是什么?我已经在代码中使用了很多次,但我从未真正知道这个词的实际含义或代表什么。


13
它起源于希腊语πραγμα,这是“务实”的根源。那是我能告诉你的最好的。
asveikau

6
+1我一直想知道这一点,但出于某种原因从未想到要在这里提问。
杰伊·里格斯

23
@AaronMcSmooth这是怎么回事?它与编程有关。
Firoso

7
嘿,伙计们,编译指示与编程有关。公平的纳闷,想知道这个词的来历,并问专业软件开发的同行,不是吗?
TJ人群

6
@AaronMcSmooth,请阅读常见问题解答,它不属于主题。知道谁是Ada Lovelace会让您成为更好的程序员吗?没有?那为什么她在我所知道的所有CS课程中都提到她。
Firoso

Answers:


64

根据描述Ada设计的美国政府拥有的文档(!):Ada®编程语言设计的原理

杂注(来自希腊语意为“动作”)用于以特定方式指导编译器的动作,但对程序的语义没有影响(通常)。

我喜欢那里的(最后警告)...

这个十字架很好地参考了在线希腊词典(例如,Martin York引用的),其中说pragma(πράγμα,如asveikau对原始问题的评论)表示

  1. 所做的事情,行为,成就的事实
  2. 已经完成或正在完成的事情
    1. 规格 商业,商业交易
  3. 一个问题,问题,外遇
    1. 规格 从法医的角度来说,法律上的问题,案件,诉讼
  4. 存在或存在的东西

理解的关键似乎是行动而非信息


很好的答案,很好的参考和内容摘要。谢谢!
MGSoto

18

在数学和逻辑中,语用是给定的事实,是随后的论点,问题或证明的前提。


16

维基百科(编程)中拉出:

在Ada中,编译器指令称为pragmas(“实用信息”的缩写)。

虽然它不是明确针对C的,但这仍然可以回答您的问题。但是,正如TJ指出的那样,没有提供有关此信息的有效来源。


8
请注意,该文章没有引用任何原始资料...并且在著名的Web搜索引擎中搜索“ + pragma + pragmatic + ada”,发现了非常非常简短的明显不规范的站点列表。并不意味着那不是真的。
TJ Crowder

1
您是完全正确的,我们将不胜感激。不过,除非我被证明是错误的,否则我认为最好留下答案。
Phlibbo 2010年

7

来自古希腊语:

语用:做某事,一个事实

与所有令人讨厌的事物一样,有人试图为自己的利益变得太聪明了。不幸的是,它的原始含义已经对我们其他人失去了(除非您拥有Google以及方便的拉丁语/希腊语到英语词典)。

http://www.studylight.org/lex/grk/view.cgi?number=4229
http://www.bibletools.org/index.cfm/fuseaction/Lexicon.show/ID/G4229/pragma.htm

原始文件(以上页面说的是原文,但我没有该书的副本):

Thayer和Smith。“希腊语词典为实用注解”。“新约希腊语词典”。


3

编程语言Ada很有可能是第一个使用编译指示来指定预处理程序指令的编译器。这个词被用作“实用信息”的缩写形式

在设计C编程语言时,最初没有pragma指令,但很快将其添加到规范中以支持自定义编译器功能。(即,针对Intel C ++编译器的#pragma Optimization_level)

从那以后,许多语言都以某种形式实现了编译指示,包括C#,但它们通常仅限于构建时间警告和优化提示。

在非标准C和C ++中,最常见和最有用的编译指示之一是#pragma,它曾经用于指定一个文件仅应包含一次。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.