¿De dónde viene la palabra “pragma”?

83

Entonces sé qué es el pragma y para qué se usa, pero ¿cuál es el significado de la palabra en sí? Lo he usado muchas veces en código, pero nunca supe realmente lo que la palabra realmente significa o significa.

MGSoto
fuente
13
Tiene raíces en el término griego πραγμα, que es la raíz de "pragmático". Eso es lo mejor que puedo decirte.
asveikau
6
+1 Siempre me he preguntado esto, pero por alguna razón nunca pensé en preguntar aquí.
Jay Riggs
23
@AaronMcSmooth ¿Cómo es esto fuera de tema? Está relacionado con la programación.
Firoso
7
Amigos, los pragmas están relacionados con la programación. Es justo preguntarse de dónde viene el término y preguntarle a sus pares en el desarrollo de software profesional, ¿no es así?
TJ Crowder
6
@AaronMcSmooth, lea las preguntas frecuentes, esto no califica como fuera de tema. ¿También saber quién era Ada Lovelace te convierte en un mejor programador? ¿No? entonces, ¿por qué se menciona en todos los planes de estudio de informática que conozco?
Firoso

Respuestas:

64

Según un documento de propiedad del gobierno de los EE. UU. (!) Que describe el diseño de Ada: Justificación del diseño del lenguaje de programación Ada® :

Un pragma (de la palabra griega que significa acción) se usa para dirigir las acciones del compilador de formas particulares, pero no tiene ningún efecto sobre la semántica de un programa (en general).

Me gusta la (última advertencia) allí ...

Esta referencia cruzada con los diccionarios griegos en línea (por ejemplo, según lo citado por Martin York ) que dicen pragma ( πράγμα , como se comentó en la pregunta original por asveikau) significa :

  1. lo que se ha hecho, un hecho, un hecho consumado
  2. lo que se hace o se logra
    1. Especificaciones. negocio, una transacción comercial
  3. un asunto, pregunta, asunto
    1. Especificaciones. en un sentido forense, un asunto de derecho, caso, demanda
  4. lo que es o existe, una cosa

Parece que la clave para la comprensión es la palabra acción en lugar de información .

martin clayton
fuente
Gran respuesta, muy buena referencia y resumen de su contenido. ¡Gracias!
MGSoto
18

En matemáticas y lógica, un pragma es un hecho, un prerrequisito para el argumento, problema o prueba que sigue.

Conejo Curioso
fuente
16

Extraído de Wikipedia (programación):

En Ada, las directivas del compilador se denominan pragmas (abreviatura de "información pragmática").

Si bien no es explícitamente para C, esto debería responder a su pregunta de todos modos. Sin embargo, como señaló TJ, no existe una fuente válida para esta información.

Phlibbo
fuente
8
Tenga en cuenta que ese artículo no cita ninguna fuente original ... y la búsqueda en A Famous Web Search Engine de "+ pragma + pragmatic + ada" da como resultado una lista muy, muy corta de sitios claramente no canónicos. No significa que no sea cierto.
TJ Crowder
1
Tienes toda la razón, una fuente sería muy apreciada. Aún así, creo que es mejor dejar la respuesta a menos que se demuestre que estoy equivocado.
Phlibbo
7

Del griego antiguo:

pragma: una cosa hecha, un hecho

Al igual que con todas las cosas geek, alguien estaba tratando de ser demasiado inteligente para su propio bien. Desafortunadamente, su significado original se pierde para el resto de nosotros (a menos que tenga a mano Google y un diccionario de latín / griego a inglés).

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

Original (eso es lo que dice la página anterior, pero no tengo una copia de ese libro):

Thayer y Smith. "Entrada del léxico griego para Pragma". "El léxico griego del Nuevo Testamento".

Martin York
fuente
3

El lenguaje de programación Ada fue posiblemente el primer compilador en usar pragma para especificar las directivas del preprocesador. La palabra se utilizó como una forma abreviada de "información pragmática".

Cuando se diseñó el lenguaje de programación C, inicialmente no tenía directivas pragma, pero se agregó rápidamente a la especificación para admitir características de compilación personalizadas. (es decir, #pragma optimization_level para el compilador intel C ++)

Desde entonces, muchos lenguajes han implementado pragma de una forma u otra, incluido C #, pero a menudo se limitan a crear advertencias de tiempo y sugerencias de optimización.

Uno de los pragmas más comunes y útiles, en C y C ++ no estándar, es #pragma que se usó una vez para especificar que un archivo solo debe incluirse una vez.

Firoso
fuente