Ich weiß also, was Pragma ist und wofür es verwendet wird, aber was ist die Bedeutung des Wortes selbst? Ich habe es oft im Code verwendet, aber ich wusste nie wirklich, was das Wort eigentlich bedeutet oder wofür es steht.
Woher kommt das Wort „Pragma“?
MGSoto
Martin Clayton
Laut einem Dokument der US-Regierung (!), das das Design von Ada beschreibt: Begründung für das Design der Programmiersprache Ada® :
Ein Pragma (vom griechischen Wort für Aktion) wird verwendet, um die Aktionen des Compilers auf bestimmte Weise zu lenken, hat aber keinen Einfluss auf die Semantik eines Programms (im Allgemeinen).
Ich mag die (letzte Einschränkung) dort …
Dies ist ein guter Querverweis auf griechische Online-Wörterbücher (z. B. wie von Martin York zitiert), in denen pragma (πράγμαwie die ursprüngliche Frage von asveikau kommentiert wurde) meint:
- das, was getan wurde, eine Tat, eine vollendete Tatsache
- was getan wird oder erreicht wird
- spez. Geschäft, Handelsgeschäft
- eine Angelegenheit, Frage, Affäre
- spez. im forensischen Sinne eine Rechtssache, ein Fall, eine Klage
- das, was ist oder existiert, ein Ding
Der Schlüssel zum Verständnis scheint das Wort zu sein Aktion statt Information.
In Mathematik und Logik ist ein Pragma eine Gegebenheit, eine Tatsache, eine Voraussetzung für das folgende Argument, Problem oder den Beweis.
Philipp Schlösser
Gleich abgezogen Wikipedia(Programmierung):
In Ada heißen Compiler-Direktiven Pragmas (kurz für „pragmatic information“).
Obwohl es nicht explizit für C ist, sollte dies Ihre Frage trotzdem beantworten. Wie TJ jedoch betonte, gibt es für diese Information keine gültige Quelle.
-
Beachten Sie, dass dieser Artikel nicht zitiert irgendein Originalquellen … und die Suche in A Famous Web Search Engine nach “+pragma +pragmatic +ada” ergibt eine sehr, sehr kurze Liste von eindeutig nicht kanonischen Websites. Bedeutet nicht, dass es nicht wahr ist.
– TJ Crowder
24. September 2010 um 21:54 Uhr
-
Du hast völlig 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.
– Philipp Schlösser
24. September 2010 um 22:06 Uhr
Martin York
Aus dem Altgriechischen:
Pragma: eine Sache, eine Tatsache
Wie bei allen geekigen Dingen versuchte jemand, zu seinem eigenen Besten viel zu schlau zu sein. Leider geht seine ursprüngliche Bedeutung für den Rest von uns verloren (es sei denn, Sie haben Google und ein Latein/Griechisch-Englisch-Wörterbuch 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 (so steht es 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”.
Firoso
Die Programmiersprache Ada war möglicherweise der erste Compiler, der Pragma verwendete, um Präprozessordirektiven anzugeben. Das Wort wurde als Kurzform für „pragmatische Information“ verwendet.
Als die Programmiersprache C entwickelt wurde, hatte sie zunächst keine Pragma-Direktiven, wurde aber schnell zur Spezifikation hinzugefügt, um benutzerdefinierte Compilerfunktionen zu unterstützen. (d. h. #pragma optimize_level für den Intel C++-Compiler)
Seitdem haben viele Sprachen Pragma in irgendeiner Form implementiert, einschließlich C#, aber sie beschränken sich oft auf Build-Zeit-Warnungen und Optimierungshinweise.
Eines der gebräuchlichsten und nützlichsten Pragmas in Nicht-Standard-C und C++ ist Einmal #Pragma Wird verwendet, um anzugeben, dass eine Datei nur einmal enthalten sein soll.
Es hat seine Wurzeln im griechischen Begriff πραγμα, der die Wurzel von „pragmatisch“ ist. Das ist das Beste, was ich Ihnen sagen kann.
– asveikau
24. September 2010 um 21:51 Uhr
+1 Ich habe mich das immer gefragt, aber aus irgendeinem Grund nie daran gedacht, hier zu fragen.
– Jay Riggs
24. September 2010 um 21:52 Uhr
@AaronMcSmooth Wie ist das nicht zum Thema? Es ist programmierbezogen.
– Firoso
24. September 2010 um 21:55 Uhr
Hey, Leute, Pragmas sind programmierbezogen. Man muss sich fragen, woher der Begriff kommt, und seine Kollegen in der professionellen Softwareentwicklung fragen, nicht wahr?
– TJ Crowder
24. September 2010 um 21:57 Uhr
@AaronMcSmooth, lies die FAQ, dies gilt nicht als Off-Topic. Macht dich das Wissen, wer Ada Lovelace war, auch zu einem besseren Programmierer? nein? Warum wird sie dann in jedem mir bekannten CS-Lehrplan erwähnt?
– Firoso
24. September 2010 um 22:09 Uhr