Câu hỏi Chữ “pragma” xuất phát từ đâu?


Cho nên tôi biết pragma là gì, và nó được dùng để làm gì, nhưng ý nghĩa của từ đó là gì? Tôi đã sử dụng nó nhiều lần trong mã, nhưng tôi không bao giờ thực sự biết những gì từ thực sự có nghĩa là hoặc là viết tắt của.


76
2017-09-24 21:48


gốc


Nó có nguồn gốc trong thuật ngữ Hy Lạp πραγμα, là gốc rễ của "thực dụng". Đó là điều tốt nhất tôi có thể nói với bạn. - asveikau
1 Tôi đã luôn luôn tự hỏi điều này nhưng vì một lý do nào đó không bao giờ nghĩ đến việc hỏi ở đây. - Jay Riggs
@AaronMcSmooth Chủ đề này tắt như thế nào? Nó liên quan đến lập trình. - Firoso
Hey, folks, pragmas có liên quan đến lập trình. Công bằng 'nuff để tự hỏi mà thuật ngữ đến từ đâu và hỏi bạn bè của bạn trong phát triển phần mềm chuyên nghiệp, phải không? - T.J. Crowder
@AaronMcSmooth, đọc Câu hỏi thường gặp, điều này không đủ điều kiện làm chủ đề. Cũng không biết Ada Lovelace đã làm cho bạn trở thành một lập trình viên giỏi hơn là ai? Không? thì tại sao cô ấy lại đề cập đến mọi giáo trình CS mà tôi biết. - Firoso


Các câu trả lời:


Theo một tài liệu của Chính phủ Hoa Kỳ (!) Mô tả thiết kế của Ada: Lý do thiết kế của Ngôn ngữ lập trình Ada :

Một pragma (từ tiếng Hy Lạp có nghĩa là   hành động) được sử dụng để chỉ đạo các hành động   của trình biên dịch theo những cách cụ thể,   nhưng không ảnh hưởng đến ngữ nghĩa của   một chương trình (nói chung).

Tôi thích (báo trước) ở đó ...

Chữ thập này tham chiếu tốt với từ điển Hy Lạp trực tuyến (ví dụ như được trích dẫn bởi Martin York) nói pragma (πράγμα, như nhận xét về câu hỏi ban đầu của asveikau) có nghĩa:

  1. điều đã được thực hiện, một hành động, một thực tế đã đạt được
  2. những gì được thực hiện hoặc đang được thực hiện
    1. spec. kinh doanh, giao dịch thương mại
  3. một vấn đề, câu hỏi, chuyện
    1. spec. theo nghĩa pháp y, một vấn đề về luật pháp, vụ án, phù hợp
  4. đó là hoặc tồn tại, một điều

Dường như chìa khóa để hiểu là từ hoạt động thay vì thông tin.


60
2017-09-24 23:05



Câu trả lời tuyệt vời, một tài liệu tham khảo rất tốt và tóm tắt nội dung của nó. Cảm ơn! - MGSoto
Vì vậy, pragma là viết tắt của thực dụng... - Pacerier


Trong toán học và logic, một pragma là một, một thực tế, một điều kiện tiên quyết cho các đối số, vấn đề, hoặc bằng chứng sau đó.


17
2017-09-24 22:31



ITYM lịch sử của họ. - Marius Gedminas


Đã kéo ngay từ Wikipedia(lập trình):

Trong Ada, các chỉ thị của trình biên dịch được gọi là pragmas (viết tắt của "thông tin thực dụng").

Mặc dù không rõ ràng cho C, điều này sẽ trả lời câu hỏi của bạn. Tuy nhiên, như T.J. đã chỉ ra, không có nguồn hợp lệ nào được cung cấp cho phần thông tin này.


15
2017-09-24 21:51



Tâm trí, bài viết đó không trích dẫn bất kì nguồn gốc ... và tìm kiếm trên Công cụ Tìm kiếm Web Nổi tiếng cho "+ pragma + pragmatic + ada" sẽ mở ra danh sách rất ngắn, rất rõ ràng về các trang web không kinh điển. Không có nghĩa là nó không đúng. - T.J. Crowder
Bạn hoàn toàn đúng, một nguồn sẽ được đánh giá cao nhất. Tuy nhiên, tôi đoán tốt nhất là để lại câu trả lời trừ khi tôi đã được chứng minh là sai. - Phlibbo


Từ tiếng Hy Lạp cổ đại:

pragma: một điều được thực hiện, một thực tế

Như với tất cả mọi thứ geeky, ai đó đã cố gắng để được quá thông minh cho tốt của riêng mình. Thật không may ý nghĩa ban đầu của nó sẽ bị mất cho phần còn lại của chúng ta (trừ khi bạn có Google và từ điển Latin / Hy Lạp sang tiếng Anh có ích).

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

Bản gốc (đó là những gì trang trên nói, nhưng tôi không có một bản sao của cuốn sách đó):

Thayer và Smith. "Mục nhập Lexicon của Hy Lạp cho Pragma". "Lexicon Hy Lạp Tân Ước".


7
2017-09-24 22:19





Ngôn ngữ lập trình Ada khá có thể là trình biên dịch đầu tiên sử dụng pragma để chỉ định các chỉ thị tiền xử lý. Từ này được sử dụng như một dạng rút gọn của "thông tin thực dụng"

Khi ngôn ngữ lập trình C được thiết kế ban đầu nó không có chỉ thị pragma, nhưng nhanh chóng được thêm vào đặc tả để hỗ trợ các tính năng biên dịch tùy chỉnh. (ví dụ: #pragma optimization_level cho trình biên dịch C ++ intel)

Kể từ đó nhiều ngôn ngữ đã thực hiện pragma trong một số hình thức này hay cách khác, bao gồm C #, nhưng chúng thường được giới hạn để xây dựng cảnh báo thời gian và gợi ý tối ưu hóa.

Một trong những pragmas phổ biến và hữu ích nhất, trong C và C ++ không chuẩn, là #pragma một lần được sử dụng để chỉ định rằng một tệp chỉ nên được bao gồm một lần.


3
2017-09-24 22:23