"pragma"라는 단어는 어디에서 왔습니까?


83

그래서 나는 pragma가 무엇인지, 그것이 무엇을 위해 사용되는지 알고 있습니다. 그러나 단어 자체의 의미는 무엇입니까? 코드에서 여러 번 사용했지만 그 단어가 실제로 의미하는 바가 무엇인지 전혀 알지 못했습니다.


13
그리스 용어 인 πραγμα에 뿌리를두고 있는데, 이는 "실용적"의 뿌리입니다. 그게 제가 말할 수있는 최선의 방법입니다.
asveikau

6
+1 나는 항상 이것을 궁금해했지만 어떤 이유로 여기에서 물어볼 생각은 없었습니다.
Jay Riggs

23
@AaronMcSmooth이게 어떻게 주제를 벗어 났습니까? 프로그래밍과 관련이 있습니다.
Firoso

7
여러분, pragma는 프로그래밍과 관련이 있습니다. 그 용어가 어디에서 왔는지 궁금해하고 전문 소프트웨어 개발 분야에서 동료들에게 물어 보는 것은 공정하지 않습니까?
TJ Crowder

6
@AaronMcSmooth, FAQ를 읽으십시오. 이것은 주제에서 벗어난 것으로 간주되지 않습니다. 또한 Ada Lovelace가 누구인지 알면 더 나은 프로그래머가됩니까? 아니? 내가 아는 모든 CS 커리큘럼에서 왜 그녀가 언급되는지.
Firoso

답변:


64

Ada의 설계를 설명하는 미국 정부 소유 (!) 문서 에 따르면 Ada® 프로그래밍 언어의 설계를위한 이론적 근거 :

pragma (동작을 의미하는 그리스어에서 유래)는 컴파일러의 동작을 특정 방식으로 지시하는 데 사용되지만 일반적으로 프로그램의 의미에는 영향을주지 않습니다.

나는 거기 (마지막 경고)를 좋아한다 ...

이 상호 참조와 잘 온라인 그리스어 사전 (예에 의해 인용 마틴 뉴욕 ) 그 말 프라그 ( πράγμα , asveikau에 의해 원래의 질문에 댓글로) 수단 :

  1. 완료된 것, 행위, 성취 된 사실
  2. 무엇을하거나 성취하고 있는가
    1. 투기. 사업, 상거래
  3. 문제, 질문, 사건
    1. 투기. 법 의학적 의미에서 법, 사건, 소송의 문제
  4. 존재하거나 존재하는 것

이해의 열쇠 는 정보 라기보다는 행동 이라는 단어 인 것 같습니다 .


훌륭한 답변, 아주 좋은 참조 및 내용 요약. 감사!
MGSoto

18

수학과 논리에서 pragma는 주어진, 사실, 인수, 문제 또는 증명에 대한 전제 조건입니다.


16

Wikipedia (프로그래밍) 에서 바로 가져옴 :

Ada에서는 컴파일러 지시문을 pragma ( "pragmatic information"의 약자)라고합니다.

C에 대한 것은 아니지만 어쨌든 귀하의 질문에 답할 것입니다. 그러나 TJ가 지적했듯이이 정보에는 유효한 소스가 없습니다.


8
마음, 그 기사는 인용하지 않는 어떤 원본 소스를 ... 명확하게 비정규 사이트의 매우 짧은 목록까지 "+ 프라그 + 실용 + 맥도날드"턴 동안 유명한 웹 검색 엔진에서 검색. 사실이 아니라는 뜻은 아닙니다.
TJ Crowder

1
당신이 절대적으로 옳습니다. 출처가 가장 감사하겠습니다. 그래도 내가 틀렸다는 것이 증명되지 않는 한 대답을 남기는 것이 최선이라고 생각합니다.
Phlibbo

7

고대 그리스어에서 :

pragma : 한 일, 사실

모든 괴짜와 마찬가지로 누군가는 자신의 이익을 위해 너무 영리하려고 노력했습니다. 안타깝게도 그 원래 의미는 나머지 우리에게 사라집니다 (Google과 라틴 / 그리스어에서 영어로의 사전을 편리하게 사용하지 않는 한).

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

원본 (위 페이지에 나와있는 내용이지만 해당 책의 사본이 없습니다) :

Thayer와 Smith. "Pragma에 대한 그리스어 사전 항목". "신약 그리스어 사전".


3

프로그래밍 언어 Ada는 전 처리기 지시문을 지정하기 위해 pragma를 사용한 최초의 컴파일러 일 가능성이 높습니다. 이 단어는 "실용적 정보"의 축약 형으로 사용되었습니다.

C 프로그래밍 언어가 설계되었을 때 처음에는 pragma 지시문이 없었지만 사용자 지정 컴파일러 기능을 지원하기 위해 사양에 빠르게 추가되었습니다. (예 : 인텔 C ++ 컴파일러의 경우 #pragma Optimization_level)

그 이후로 많은 언어가 C #을 포함하여 어떤 형태로든 pragma를 구현했지만 빌드 시간 경고 및 최적화 힌트로 제한되는 경우가 많습니다.

비표준 C 및 C ++에서 가장 일반적이고 유용한 pragma 중 하나는 파일이 한 번만 포함되도록 지정하는 데 사용 된 #pragma 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.