디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Ada 프로그래밍: 3.6 프라그마 (pragma)

나르시갤로그로 이동합니다. 2025.10.28 02:07:02
조회 78 추천 0 댓글 0

3.6 프라그마 (pragma)

프라그마(pragma)는 Ada 언어의 표준 구문의 일부로서, 컴파일러에게 특정 지시 사항이나 정보를 전달하는 컴파일러 지시문(compiler directive)입니다.

프라그마는 프로그램의 실행 로직을 직접 구성하지는 않지만, 컴파일러의 최적화 방식, 런타임 검사 수행 여부, 외부 언어와의 연동 방식, 또는 경고 메시지 표시 여부 등 컴파일 및 실행 환경의 다양한 측면을 제어합니다.

기본 문법

프라그마는 pragma 예약어로 시작하며, 프라그마 식별자와 선택적인 인수(argument) 목록으로 구성됩니다.

pragma 식별자 [(인수, ...)];

프라그마는 선언부(declarative part) 내, 라이브러리 유닛(library unit)의 시작 부분, 또는 특정 선언(declaration) 바로 뒤 등 문법적으로 허용된 위치에 배치되어 해당 위치부터 유효합니다.

컴파일러는 자신이 인식하는 프라그마만 처리하며, 인식하지 못하는 프라그마는 무시합니다. 프라그마는 두 종류로 나뉩니다.

  1. 언어 정의 프라그마: assert, suppress 등 Ada 언어 표준 자체에 정의된 프라그마입니다.
  2. 구현 정의 프라그마: GNAT 컴파일러의 warningsstyle_checks 와 같이 특정 컴파일러(구현)에서만 제공하는 프라그마입니다. GNAT 컴파일러가 제공하는 구현 정의 프라그마의 전체 목록 및 설명은 GNAT 참조 매뉴얼1에서 확인할 수 있습니다.

이 책에서는 assert (12.7.1절), suppress (12.8.1절) 등 특정 기능과 연관된 프라그마는 해당 기능이 설명되는 장에서 설명합니다.

본 절에서는 코드의 컴파일 환경을 제어하는 GNAT 컴파일러의 구현 정의 프라그마 몇 가지를 소개합니다.

3.6.1 언어 버전 명시 (pragma ada_2012)

pragma ada_2012 계열의 프라그마는 컴파일러에게 해당 소스 코드가 어떤 Ada 표준 버전을 준수하는지 명시합니다.

-- 이 파일이 ada 2012 표준을 준수함을 명시합니다.
pragma ada_2012;

3.6.2 경고 메시지 제어 (pragma warnings)

pragma warnings는 GNAT 컴파일러가 생성하는 특정 경고 메시지를 비활성화(off)하거나 활성화(on)하는 데 사용됩니다. 이 프라그마는 경고를 발생시키는 코드 영역에서 적용할 수 있습니다.

pragma warnings는 모든 경고를 일괄 제어하거나, 특정 경고 플래그 또는 경고 메시지 텍스트 패턴을 지정하여 제어할 수 있습니다.

경고 제어의 특징

  1. 플래그 제어: 경고 플래그 문자열(예: "-gnatwu")을 사용하여 특정 카테고리의 경고를 켜거나 끌 수 있습니다.

```ada -- 이 지점부터 사용되지 않는 엔티티에 대한 -- GNAT 경고(-gnatwu)를 비활성화합니다. pragma warnings (off, "-gnatwu");

my_unused_variable : Integer; -- 이 선언은 -gnatwu 플래그에 의해 경고가 억제됩니다. ```

메시지 패턴 제어: 경고 메시지 텍스트와 일치하는 패턴(와일드카드 * 사용 가능)을 사용하여 개별 경고를 억제할 수 있습니다.유효 범위: pragma warnings (off, ...)의 효력은 해당 프라그마가 위치한 지점부터 시작됩니다. 경고를 다시 활성화하는 pragma warnings (on, ...)이 뒤따르지 않으면, 해당 경고 억제는 현재 컴파일 단위의 끝까지 지속됩니다. 이 프라그마는 선언적 범위를 벗어나도 자동으로 효력이 종료되지 않습니다.

ada -- 해당 경고를 다시 활성화합니다. pragma warnings (on, "-gnatwu");

3.6.3 스타일 검사 제어 (pragma style_checks)

pragma style_checks는 GNAT 컴파일러의 코딩 스타일 검사 기능을 비활성화(off)하거나 활성화(on)하는 데 사용됩니다. 자동 생성된 코드 영역이나 특정 스타일 가이드를 적용하는 코드 영역에서 스타일 경고를 억제할 때 활용할 수 있습니다. 또한 프로젝트별 코딩 규칙을 코드에 적용하거나 자동 생성된 코드 영역에서 스타일 경고를 억제하는 목적으로 사용할 수 있습니다.

-- 이 지점부터 스타일 검사를 비활성화합니다.
pragma style_checks (off);


  1. https://gcc.gnu.org/onlinedocs/gnat_rm/Implementation-Defined-Pragmas.html 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 해외에서 겪는 불합리한 대우에 대응 잘 할 것 같은 스타는? 운영자 25/11/03 - -
AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
2900121 프갤에 새싹이 있긴 한가? [6] ㅇㅇ갤로그로 이동합니다. 11.02 71 0
2900120 애널은 푹 셔야징.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.02 36 0
2900119 신형만 VS 스쿠나 ♥KiTTY냥덩♥갤로그로 이동합니다. 11.02 25 0
2900117 병원 ㅈㄱㄱㄴㅈ [2] 넥도리아(118.235) 11.02 31 0
2900116 디비 사용법도 익혔고 이제 회원가입 만들어야겠다. [1] 프갤러(223.56) 11.02 41 0
2900115 충격적임.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.02 45 0
2900114 나님 건강관리 꿀팁 [5] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.02 71 0
2900113 소나무도 가을이면 잎을 떨구는군..ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 11.02 42 0
2900112 태연 ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 11.02 31 0
2900111 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 11.02 31 0
2900110 쓸데없는거 가지고 싸울 시간에 러스트나 배워라 프갤러(110.8) 11.02 30 0
2900107 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ [2] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.02 56 0
2900106 좋은 직장 문화랑 성장 가능성 vs 더 많은 월급 (그 외에는 모름) [3] 프갤러(2.56) 11.02 81 0
2900080 ocr 왜씀? [10] ㅇㅇ(49.165) 11.02 97 0
2900055 더이상의 싸움은 무의미하다 [1] 헬마스터갤로그로 이동합니다. 11.02 67 1
2900053 아 그런데 갈땐 가더라도 이 말만은 꼭 하고싶다 [49] ㅇㅇ(124.48) 11.02 151 1
2900047 애들아 싸우지말고 자자 [6] 루도그담당(58.239) 11.02 75 0
2900045 오늘부터 나도 ai엔지니어 할란다 [89] ㅇㅇ(124.48) 11.02 179 0
2900043 yolo << 솔직히 개편하긴 함 [2] 루도그담당(58.239) 11.02 65 0
2900038 근데 가끔 학생들 가르치다 보면 [4] 루도그담당(58.239) 11.02 67 0
2900036 아니 근데 이럴땐 줘패고 싶음 [3] 루도그담당(58.239) 11.02 59 0
2900035 내가 모기년에게 제일 실망했던 건 이거임 [133] 에이도비갤로그로 이동합니다. 11.02 190 0
2900033 저새낀 걍 이제부터 내가 무시해야겠다 [2] ㅇㅇ(124.48) 11.02 69 0
2900030 백남준 이새끼 좇나 씹거품인 개좇쓰레기새끼임 타이밍뒷.통수한방(1.213) 11.02 49 0
2900025 이런게 존나 개빡친다는거야 [4] ㅇㅇ(124.48) 11.02 151 5
2900014 이치현과 벗님들 - 집시여인 (응답하라 1988 삽입곡) 발명도둑잡기(118.216) 11.02 27 0
2900013 재능이 없어서 문제다 [2] ㅇㅇ(122.199) 11.01 72 0
2900011 러스트 좀 빡세네 [2] 프갤러(110.8) 11.01 80 0
2900010 김송 "민주당 ♥강원래 장애인 복지? 동성애 합법·낙태허용 교묘히 숨겨놔 발명도둑잡기(118.216) 11.01 32 0
2900009 취업실패하고 공장갑니다.. [3] ㅇㅇ(1.241) 11.01 96 0
2900008 승자가 결국 역사를 쓴다는 점 때문에 [2] chironpractor갤로그로 이동합니다. 11.01 66 0
2900007 감기느낌.. [3] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.01 81 0
2900005 피에로공 아직도 여기있음메? [3] 카드캡터체리갤로그로 이동합니다. 11.01 58 0
2900003 나님 좀 놀랐음.. [4] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.01 67 0
2900002 아이큐 높은 사람보면 부럽긴 함 [2] 루도그담당(58.239) 11.01 90 0
2900001 미국은 내정간섭은 피하려 한다는 느낌은 듦 chironpractor갤로그로 이동합니다. 11.01 56 1
2900000 충암고 축제 "윤 어게인" 고함사태... 충암고 "외부인 정치선동" 발명도둑잡기(118.216) 11.01 55 0
2899996 지듣노 [4] 루도그담당(58.239) 11.01 64 0
2899995 냥덩혼자레벨업⭐+ [6] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.01 102 0
2899992 내가 봤을땐 걍 저 친구가 [15] 루도그담당(58.239) 11.01 124 0
2899991 중국에 대한 인식은 홍콩에서도 드러나는데 [5] chironpractor갤로그로 이동합니다. 11.01 61 0
2899989 멍유야 미안하당.. 애널은 피궁해서 같이 못놀아줄거 같애 [2] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.01 49 0
2899988 Mac 스크린 타임 앱 만들어봄 [13] 프갤러(115.138) 11.01 237 16
2899985 걍 싸우지들 마라 [1] 루도그담당(58.239) 11.01 61 0
2899981 [대한민국] 캄보디아 사건에 대한 짧은 글 프갤러(121.172) 11.01 28 0
2899978 스텔라장(Stella Jang) - 워크맨(WALKMAN) 발명도둑잡기(118.216) 11.01 19 0
2899975 124.48 얘 다중이 맞잖아 [1] 루도그담당(58.239) 11.01 68 0
2899974 [대한민국] 노상원 재판 중계 간략 프갤러(121.172) 11.01 28 0
2899972 .. [1] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.01 70 0
2899971 크몽 ㄹㅇ 좆병신 플랫폼임 [4] 프갤러(175.116) 11.01 88 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2