Compiler-Anweisung

Eine Compiler-Anweisung (englisch compiler directive oder pragma) ist eine in den Quelltext eingefügte Steueranweisung für den Compiler. Der Umfang und die Syntax von Compiler-Anweisungen sind von der Programmiersprache und teilweise auch vom gewählten Compiler abhängig.

Beispiele

In der Programmiersprache Algol 68 werden Compiler-Direktiven zwischen pr und pr oder zwischen pragmat und pragmat eingeschlossen.[1] Dies ist der Ursprung des Begriffs Pragmat.

C-Compiler verwenden einen C-Präprozessor, der Compiler-Direktiven interpretiert.[2] Beispielsweise weist #include <foo.h> den Präprozessor an, den Inhalt der Datei foo.h an dieser Stelle im Quelltext einzufügen.[3] Mit der Anweisung #pragma eigenschaft wird eine Eigenschaft dem Compiler angezeigt. Ein Beispiel für eine Eigenschaft ist die Annotation eines parallelisierbaren Code-Blocks, falls der C-Compiler den OpenMP-Standard unterstützt:

#pragma omp parallel for reduction(+:c)
 for (int i = 0; i < length; ++i)
     c += a[i]*b[i];

In der Programmiersprache Pascal werden Compiler-Direktiven als spezielle Kommentare definiert. Kommentare, deren erstes Zeichen ein $ ist, werden als Direktive interpretiert. Beispielsweise schaltet {$Q+} die Codegenerierung von Indexüberprüfungen von Arrayzugriffen ein.

In der Programmiersprache Ada werden Compiler-Direktiven durch das Schlüsselwort pragma eingeleitet. So wird z. B. mit pragma OPTIMIZE(TIME); die Programmoptimierung gesteuert.

Der Haskell-Compiler GHC unterstützt das Setzen von Kommandozeilen-Optionen auch in der Quelltextdatei über Compiler-Direktiven. Ein Beispiel ist die Aktivierung von ghc-Haskell-Spracherweiterungen, die mit der Direktive {-# OPTIONS_GHC -fglasgow-exts #-} angefordert wird.

In der SAP-Programmiersprache ABAP werden Pragmas verwendet, um Warnungen verschiedener Prüfwerkzeuge auszublenden.[4] Der Programmierer erklärt damit, dass er die betreffende Syntax bewusst verwendet und den konkreten Einsatz auf Unbedenklichkeit geprüft hat. So können etwa performance-kritische Anweisungen hingenommen werden, wenn im konkreten Einsatzzweck keine langen Laufzeiten zu erwarten sind oder aber bewusst toleriert werden können.

Einzelnachweise

  1. Revised Report on the Algorithmic Language ALGOL 68. (Memento vom 17. Oktober 2007 im Internet Archive)
  2. Pragmas (The C Preprocessor). Abgerufen am 26. Februar 2025.
  3. Jörg Wiegelmann: Softwareentwicklung in C für Mikroprozessoren und Mikrocontroller: C-Programmierung für Embedded-Systeme. 7., neu bearbeitete und erweiterte Auflage. VDE Verlag GmbH, Berlin Offenbach 2017, ISBN 978-3-8007-4328-5, S. 19 Abs. 3.2.7 Präprozessor.
  4. Pragmas - ABAP-Schlüsselwortdokumentation. Abgerufen am 8. Mai 2025.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.