Woher kommt das Wort „Pragma“?

83

Ich weiß also, was Pragma ist und wofür es verwendet wird, aber was bedeutet das Wort selbst? Ich habe es oft im Code verwendet, aber ich wusste nie wirklich, was das Wort tatsächlich bedeutet oder für was es steht.

MGSoto
quelle
13
Es hat Wurzeln im griechischen Begriff πραγμα, der die Wurzel von "pragmatisch" ist. Das ist das Beste, was ich dir sagen kann.
Asveikau
6
+1 Ich habe mich immer gefragt, aber aus irgendeinem Grund hätte ich nie gedacht, hier zu fragen.
Jay Riggs
23
@AaronMcSmooth Wie ist das nicht zum Thema? Es hängt mit der Programmierung zusammen.
Firoso
7
Hey Leute, Pragmas hängen mit der Programmierung zusammen. Es ist fair, sich zu fragen, woher der Begriff kommt, und Ihre Kollegen in der professionellen Softwareentwicklung zu fragen, nicht wahr?
TJ Crowder
6
@AaronMcSmooth, lesen Sie die FAQ, dies gilt nicht als Off-Topic. Macht es Sie auch zu einem besseren Programmierer, zu wissen, wer Ada Lovelace war? Nein? Warum wird sie dann in jedem mir bekannten CS-Lehrplan erwähnt?
Firoso

Antworten:

64

Laut einem (!) Dokument der US-Regierung, das das Design von Ada beschreibt: Begründung für das Design der Ada®-Programmiersprache :

Ein Pragma (vom griechischen Wort für Aktion) wird verwendet, um die Aktionen des Compilers auf bestimmte Weise zu steuern, hat jedoch (im Allgemeinen) keinen Einfluss auf die Semantik eines Programms.

Ich mag die (letzte Einschränkung) dort ...

Diese Querverweise gut mit on-line griechischen Wörterbücher (zB wie durch zitierte Martin Yorker ) , dass etwa Pragma ( πράγμα , als auf die ursprüngliche Frage nach asveikau kommentiert) Mittel :

  1. das, was getan wurde, eine Tat, eine vollendete Tatsache
  2. was getan oder erreicht wird
    1. spec. Geschäft, eine kommerzielle Transaktion
  3. eine Angelegenheit, eine Frage, eine Angelegenheit
    1. spec. im forensischen Sinne eine Rechtssache, ein Fall, eine Klage
  4. das, was ist oder existiert, eine Sache

Der Schlüssel zum Verständnis scheint eher das Wort Aktion als Information zu sein .

Martin Clayton
quelle
Tolle Antwort, eine sehr gute Referenz und Zusammenfassung des Inhalts. Vielen Dank!
MGSoto
18

In Mathematik und Logik ist ein Pragma eine Selbstverständlichkeit, eine Tatsache, eine Voraussetzung für das folgende Argument, Problem oder den folgenden Beweis.

CuriousRabbit
quelle
16

Rechts aus Wikipedia gezogen (Programmierung):

In Ada werden Compiler-Direktiven Pragmas genannt (kurz für "pragmatische Informationen").

Obwohl dies nicht explizit für C gilt, sollte dies Ihre Frage trotzdem beantworten. Wie TJ betonte, gibt es jedoch keine gültige Quelle für diese Information.

Phlibbo
quelle
8
Beachten Sie, dass in diesem Artikel keine Originalquellen zitiert werden. Wenn Sie in einer berühmten Websuchmaschine nach "+ pragma + pragmatisch + ada" suchen, wird eine sehr, sehr kurze Liste eindeutig nicht kanonischer Websites angezeigt. Das heißt nicht, dass es nicht wahr ist.
TJ Crowder
1
Sie haben absolut Recht, eine Quelle wäre sehr dankbar. Trotzdem denke ich, dass es am besten ist, die Antwort zu hinterlassen, es sei denn, ich habe mich als falsch erwiesen.
Phlibbo
7

Aus dem Altgriechischen:

Pragma: eine Sache getan, eine Tatsache

Wie bei allen geekigen Dingen versuchte jemand, viel zu klug für sein eigenes Wohl zu sein. Leider geht seine ursprüngliche Bedeutung für den Rest von uns verloren (es sei denn, Sie haben Google und ein Wörterbuch von Latein / Griechisch zu Englisch zur Hand).

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

Original (das steht auf der obigen Seite, aber ich habe keine Kopie dieses Buches):

Thayer und Smith. "Griechischer Lexikoneintrag für Pragma". "Das griechische Lexikon des Neuen Testaments".

Martin York
quelle
3

Die Programmiersprache Ada war möglicherweise der erste Compiler, der Pragma zur Angabe von Präprozessoranweisungen verwendete. Das Wort wurde als Kurzform der "pragmatischen Information" verwendet.

Als die Programmiersprache C entwickelt wurde, hatte sie anfangs keine Pragma-Anweisungen, wurde jedoch schnell zur Spezifikation hinzugefügt, um benutzerdefinierte Compilerfunktionen zu unterstützen. (dh #pragma Optimierungsniveau für den Intel C ++ - Compiler)

Seitdem haben viele Sprachen Pragma in der einen oder anderen Form implementiert, einschließlich C #, aber sie beschränken sich häufig darauf, Zeitwarnungen und Optimierungshinweise zu erstellen.

Eines der häufigsten und nützlichsten Pragmas in nicht standardisiertem C und C ++ ist #pragma, das einmal verwendet wird, um anzugeben, dass eine Datei nur einmal enthalten sein soll.

Firoso
quelle