PLDB
Languages Features Calendar CSV Lists Blog About Sponsor Add Language
GitHub icon

Directives

Directives

Directives are a feature.

In computer programming, a directive or pragma (from "pragmatic") is a language construct that specifies how a compiler (or other translator) should process its input. Directives are not part of the grammar of a programming language, and may vary from compiler to compiler.


Languages with Directives include JavaScript, C, Python, C++, Perl, C#, Ruby, Rust, Haskell, Ada, Erlang, Visual Basic, F#, Common Lisp, ALGOL 68, Jule, FML, ScriptEase

Example from JavaScript:
"use strict"; "use asm";
Example from C:
#include <stdio.h> #define height 10 #ifdef #endif #if #else #ifndef #undef #pragma
Example from Python:
from __future__ import feature # coding=<encoding name>
Example from C++:
// #pragma once is a non-standard but widely supported preprocessor directive designed to cause the current source file to be included only once in a single compilation. #pragma once struct foo { int member; };
Example from Perl:
# In Perl, the keyword "use", which imports modules, can also be used to specify directives, such as use strict; or use utf8; use utf8;
Example from C#:
#define MAX_CLIENTS 200 int array[MAX_CLIENTS]; #if PRODUCTION //code #elif DEVELOPMENT //code #else //code #endif
Example from Ruby:
coding: UTF-8
Example from Rust:
// A conditionally-compiled module #[cfg(target_os = "linux")] mod bar { /* ... */ } // General metadata applied to the enclosing module or crate. #![crate_type = "lib"] // A function marked as a unit test #[test] fn test_foo() { /* ... */ } // A lint attribute used to suppress a warning/error #[allow(non_camel_case_types)] type int8_t = i8; // Inner attribute applies to the entire function. fn some_unused_variables() { #![allow(unused_variables)] let x = (); let y = (); let z = (); }
Example from Haskell:
{-# INLINE foo #-}
Example from Erlang:
-define(TIMEOUT, 200). ... call(Request) -> server:call(refserver, Request, ?TIMEOUT). -undef(Macro).
Example from Visual Basic:
Option Explicit On|Off Option Compare Binary
Example from F#:
#if VERSION1 let function1 x y = printfn "x: %d y: %d" x y x + 2 * y #else let function1 x y = printfn "x: %d y: %d" x y x - 2*y #endif // Line directives as source maps can be used when compiling to F#: #line 25 "C:\\Projects\\MyProject\\MyProject\\Script1"
Example from ALGOL 68:
.PR POINT .PR .PR UPPER .PR .PR RES .PR 'pr' quote 'pr'
Example from FML:
# Directives are special lines that have syntax and semantics of their own. Directives all start with a name of the form .foo; new directives may be added by future versions of the language. .import math.constants area = x * math.constants.Pi, ^ 2 .from math.constants import Pi, E area = x sq, * Pi polar = a * [E ^ [b * 0+j1]]
comment-feature.html 路 directives-feature.html 路 exceptions-feature.html

View source

PLDB - Build the next great programming language 路 v2022 Day 33 Docs Build Acknowledgements Traffic Today Traffic Trends Mirrors GitHub feedback@pldb.com