Pragma

Was ist Pragma?

Bei der Computerprogrammierung ist ein Pragma (von “pragmatisch”) ein Sprachkonstrukt (Richtlinie), das angibt, wie ein Compiler (oder ein anderer Übersetzer) seine Eingaben verarbeiten soll. Ein Pragma ist nicht Teil der Grammatik seiner Programmiersprache und kann von Compiler zu Compiler variieren. Sie können von einem Prozessor verarbeitet werden, um das Verhalten des Compilers festzulegen oder als eine Art In-Band-Parametrisierung fungieren.

In einigen Fällen gibt das Pragma ein globales Verhalten an, während es sich in anderen Fällen nur auf lokale Abschnitte auswirkt, z. B. Programmcode. In anderen Fällen, wie z. B. einige C-Programme, ist das Pragma ein optionaler Compilerhinweis, der möglicherweise ignoriert wird. Normalerweise ist es jedoch vorgeschrieben und es muss befolgt werden. Aktionen in der Sprache selbst werden jedoch nicht ausgeführt, sondern lediglich eine Änderung des Verhaltens des Compilers.

Der Begriff könnte auch verwendet werden, um auf proprietäre Tags und Befehle (oder Markup) von Drittanbietern zu verweisen, die in Code eingebettet sind und zu einer zusätzlichen ausführbaren Verarbeitung führen, die die in der Entwicklungsumgebung vorhandenen Compiler-, Assembler- und Sprachkonstrukte erweitert.

C-Präprozessor

In C und C++ unterstützt die Sprache einen einfachen Makro-Präprozessor. Quellzeilen, die vom Präprozessor behandelt werden sollen, wie #define und #include, werden als Präprozessor-Anweisungen bezeichnet.

Ein anderes C-Konstrukt, die #pragma-Direktive, wird verwendet, um den Compiler anzuweisen, pragmatische oder implementierungsabhängige Features zu verwenden. Zwei bemerkenswerte Benutzer dieser Richtlinie sind OpenMP und OpenACC.

Syntaktische Konstrukte, die dem Präprozessor-Pragma von C ähneln, wie C #s #if, werden normalerweise auch als “Pragma” bezeichnet, obwohl in diesen Fällen möglicherweise keine echte Vorverarbeitungsphase involviert ist.

Alle Präprozessor-Befehle beginnen mit einem Hash-Symbol (#).

Geschichte

Die Richtlinien stammen von ALGOL 68, wo sie als “pragmat” oder “pr” bezeichnet werden. In neueren Sprachen, insbesondere C, wurde dies als “Pragma” abgekürzt.

Pragmats werden in ALGOL 68 häufig verwendet, um ein Stropping-Regime festzulegen, das heißt “wie Schlüsselwörter angegeben werden”. Es folgen verschiedene solche Anweisungen, die das POINT-, UPPER-, RES- (reserviert) oder Zitatregime angeben.

Heutzutage sind diese Direktiven am besten in der C-Sprache aus den frühen 70er Jahren bekannt und werden durch den aktuellen C99-Standard fortgesetzt, wo sie entweder Anweisungen an den C-Präprozessor oder in Form von #pragma-Anweisungen an den Compiler selbst enthalten. Sie werden auch bis zu einem gewissen Grad in moderneren Sprachen verwendet.

Assembler Sprache

In Assembler Sprache geben Anweisungen, die auch als Pseudooperationen bezeichnet werden, im allgemeinen Informationen wie Zielcomputer an, markieren Trennungen zwischen Codeabschnitten, rufen Makros auf, definieren reservierte Speicherbereiche und so weiter. Assembler verwenden eine bestimmte Syntax, um Pseudooperationen von Anweisungs-Mnemonikern zu unterscheiden.

Beispiele für andere Sprachen:

  • Ada
  • Common Lisp
  • Turbo Pascal
  • Perl
  • Haskell
  • Python
  • ECMAScript
  • Visual Basic
  • Ruby

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte