Where does the word "pragma" come from?

C++CTerminologyPragma

C++ Problem Overview


So I know what pragma is, and what it's used for, but what is the meaning of the word itself? I've used it many times in code, but I never really knew what the word actually means or stands for.

C++ Solutions


Solution 1 - C++

According to a US Government-owned(!) document describing the design of Ada: Rationale for the Design of the Ada® Programming Language :

> A pragma (from the Greek word meaning > action) is used to direct the actions > of the compiler in particular ways, > but has no effect on the semantics of > a program (in general).

I like the (last caveat) there...

This cross references well with on-line greek dictionaries (e.g. as quoted by Martin York) that say pragma (πράγμα, as commented on the original question by asveikau) means:

  1. that which has been done, a deed, an accomplished fact
  2. what is done or being accomplished
    1. spec. business, a commercial transaction
  3. a matter, question, affair
    1. spec. in a forensic sense, a matter at law, case, suit
  4. that which is or exists, a thing

Seems the key to understanding is the word action rather than information.

Solution 2 - C++

In mathematics and logic, a pragma is a given, a fact, a prerequisite to the argument, problem, or proof which follows.

Solution 3 - C++

Pulled right from Wikipedia(programming):

> In Ada, compiler directives are called pragmas (short for "pragmatic information").

While it's not explicitly for C, this should answer your question anyway. However, as T.J. pointed out, there is no valid source given for this piece of information.

Solution 4 - C++

From the ancient Greek:

> pragma: a thing done, a fact

As with all things geeky, somebody was trying to be way too clever for their own good. Unfortunately its original meaning becomes lost to the rest of us (unless you have Google and a Latin/Greek to English dictionary handy).

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

Original (that is what the above page says, but I don't have a copy of that book): > Thayer and Smith. "Greek Lexicon entry for Pragma". "The New Testament Greek Lexicon".

Solution 5 - C++

The programming language Ada was quite possibly the first compiler to use pragma to specify preprocessor directives. The word was used as a shortened form of "pragmatic information"

When the C programming language was designed it didn't initially have pragma directives, but was quickly added to the specification to support custom compiler features. (ie. #pragma optimization_level for the intel C++ compiler)

Since then many languages have implemented pragma in some form or another, including C#, but they are often limited to build time warnings and optimization hints.

One of the most common and useful pragmas, in non-standard C and C++, is #pragma once used to specify that a file should only be included once.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMGSotoView Question on Stackoverflow
Solution 1 - C++martin claytonView Answer on Stackoverflow
Solution 2 - C++CuriousRabbitView Answer on Stackoverflow
Solution 3 - C++Philipp SchlösserView Answer on Stackoverflow
Solution 4 - C++Martin YorkView Answer on Stackoverflow
Solution 5 - C++FirosoView Answer on Stackoverflow