디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.10.28 02:07:02
조회 47 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
AD 할로윈 슈퍼위크~!! 운영자 25/10/23 - -
2899288 너가 나한테 외주 맡기고 명세주면 네 말대로 구현하겠지 ㅆㅇㅆ(124.216) 01:32 41 0
2899287 테스트 가져옴. 애초에 diff로 값 추가하는 방식으로 갈거라 ㅆㅇㅆ(124.216) 01:29 30 0
2899286 에이도비야. 경력 15년 인정이야한다만 개념적으로 틀렸다. 설명해줌 ㅆㅇㅆ(124.216) 01:28 212 0
2899283 ㅆㅇㅆ야 자신 있으면 테스트를 하라니까 [13] 에이도비갤로그로 이동합니다. 00:50 100 1
2899281 호미들(Homies) - 완공 발명도둑잡기(118.235) 00:03 22 0
2899280 프갤 안하는게 정신 건강에 좋은듯. [1] 프갤러(106.101) 00:03 63 0
2899279 주제파악 안되는 사람들의 모임. ㅇㅇ(106.101) 10.28 45 0
2899278  경제 저격수의 양심선언 "미국이 개도국 지원하는 건.." [1] 발명도둑잡기(39.7) 10.28 38 0
2899277 너희들은 부모님께 효도해라... [2] 넥도리아(220.74) 10.28 61 0
2899273 윤석열과 이영지 발명도둑잡기(39.7) 10.28 69 0
2899271 "'서울 아파트 보유' 미국인 63%, '한강벨트'에" 발명도둑잡기(39.7) 10.28 22 0
2899270 한강벨트 아파트 수천채 산 미국인…중국인은 이 동네 몰렸다 발명도둑잡기(39.7) 10.28 26 0
2899269 "무상제공 평택기지, 연 임대료 4조원이라고 美 설득" 발명도둑잡기(39.7) 10.28 20 0
2899268 “트럼프의 약탈에 맞서 미 대사관·미군기지 임대료 받자” 발명도둑잡기(39.7) 10.28 28 0
2899267 [단독] 주한미국대사관 45년간 ‘공짜’ 사용 발명도둑잡기(39.7) 10.28 32 0
2899266 supabase 아무리 생각해도 너무 편한거 같음. [1] ㅆㅇㅆ(124.216) 10.28 51 0
2899265 서울 청년창업 지원 [5] 발명도둑잡기(39.7) 10.28 48 0
2899264 [긴급여론조사] 냥덩이 잔류 ㅊㅊ vs 탈갤 ㅂㅊ [5] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 93 3
2899263 종교는 마약인가 [2] 발명도둑잡기(39.7) 10.28 40 0
2899262 냥덩이를 노리는 찢승사자의 검은손 너무 무서워양 ㅠ ㅅ ㅠ [3] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 53 0
2899261 그래서 김현지가 누굽니까? ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 22 0
2899260 민주당 최민희 노무현 팔이에 노무현 사위조차 분노 [2] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 36 0
2899258 유럽 각국 야간 노동시 임금 가산 [2] 발명도둑잡기(39.7) 10.28 35 1
2899257 나님 다시 시작해두 될깡..? [6] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 49 0
2899256 아.. 밥만 먹으면 잠오는거 미치겠네 [7] chironpractor갤로그로 이동합니다. 10.28 65 0
2899255 새벽배송이 좋으면 [4] 발명도둑잡기(39.7) 10.28 49 0
2899253 ‘쿠팡’도 합류한 3차 택배 대화기구, ‘새벽·휴일 배송’ 논의 발명도둑잡기(39.7) 10.28 29 0
2899251 이번에 구두 계약했던 사무실 방세를 지좆대로 6만원 올려서 포기함 [15] ㅆㅇㅆ(124.216) 10.28 84 0
2899247 나님 탈갤합니당.. [3] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 50 0
2899246 왜 냥덩이만 오면 갤이 조용해지는걸깡..? ㅠ ㅅ ㅠ [1] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 37 0
2899244 이재명의 남자 이찬진 강남 47평 아파트도 좁다 논란 ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 41 0
2899243 민주당 최민희 중대재해처벌법 위반 논란 ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 51 0
2899242 냥덩섬의 전설❤+ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 17 0
2899241 극좌 민주노총 때문에 쿠팡 새벽배송 서비스 못쓰나 국민 불만 ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 42 1
2899240 디씨앱 트루먼쇼 봤다 발명도둑잡기(39.7) 10.28 27 0
2899239 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 19 0
2899238 이재명의 남자 부동산 근황.. ㄹㅇ;; ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 41 0
2899236 트럼프 다카이치 희토류 공급망 동맹 ㄷㅅㄷ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 48 0
2899235 다시 마스크 쓰고 다녀야겠넹;; ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 26 0
2899234 저녁 발명도둑잡기(39.7) 10.28 25 0
2899232 오타니 mlb 씹어먹는즁인 ㄷㅅㄷ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 53 0
2899230 좌좀 스프레이는 없나여? [2] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 30 0
2899229 아 근데 타로 사이트 애드센스 진짜 안붙네 [4] ㅆㅇㅆ(124.216) 10.28 63 0
2899228 계산해보니 일정 꽤 촉박하구낭 ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 15 0
2899226 간식 [1] 발명도둑잡기(39.7) 10.28 54 0
2899225 李 “한국은 일본이 아니다”… 기업이 美투자 주도 EU모델 거론 발명도둑잡기(39.7) 10.28 21 0
2899224 라이브러리 업뎃햇더니 에러 폭격 [9] 헬마스터갤로그로 이동합니다. 10.28 67 0
2899223 “트럼프도 놀랐다!” 이재명의 한마디 "한국은 일본이 아니다" 발명도둑잡기(39.7) 10.28 26 0
2899222 야 근데 아이피좀 고만 바꿔라. 차단해서 신경 안쓰는데 [2] ㅆㅇㅆ(124.216) 10.28 50 0
2899221 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 프갤에도 유머통이 있었노 ㅋㅋㅋ [2] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.28 51 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2