디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.10.28 02:07:02
조회 85 추천 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 - -
2898986 u+ 채널이 999개인데 ㄹㅇ 볼만한채널이없음 ㅋㅋㅋㅋㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 10.27 53 0
2898985 맥 최초 운영 체제 이름이 좀 특이하네 프갤러(140.213) 10.27 81 0
2898981 와 근데 학생코드 짜다보면 느끼는데 항상 너무 어렵게짜서 ㅆㅇㅆ(124.216) 10.27 85 0
2898978 졸리댱.. ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 83 0
2898975 나도 프밍에 재능 있었으면 좋았겠지 프갤러(220.121) 10.27 77 0
2898974 김연경씨라는 배구선수 비호감아니냐? [5] 헬마스터갤로그로 이동합니다. 10.27 119 0
2898972 ʕ⁎⁎ʔ༄ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 74 0
2898971 개발자 취업난 맞노? [7] 프갤러(180.231) 10.27 234 0
2898970 ʕ••ʕ••ʔ••ʔ••ʕ••ʔ••ʕ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 73 0
2898969 나는 살면서 지나간 날이 그립진 않던데 그리운 애들 많구만 ㅆㅇㅆ(124.216) 10.27 63 0
2898968 ☆*:.。. o(≧▽≦)o .。.:*☆ [1] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 57 0
2898967 개발은 진짜 타고난 지능 좋아야 하는 직업이네 [3] 프갤러(116.45) 10.27 175 0
2898964 웹디자인은 AI 떄문에 진짜 이미 멸망한 것 같은데 프갤러(220.70) 10.27 75 0
2898960 인터럽트가 함수 실행이랑 똑같음 [3] 재현갤로그로 이동합니다. 10.27 60 0
2898957 냥냥⭐+ ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 52 0
2898950 세상. 그리고 나. 프갤러(110.8) 10.27 51 0
2898947 저장용 [2] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 73 0
2898946 나님 월 마일리지 100 근접 ㅇㅅㅇ [1] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 86 0
2898945 기술면접 과제가 내가 전혀 써본 적 없는 언어로 나오네 ㅋㅋ [1] ㅇㅇ갤로그로 이동합니다. 10.27 93 0
2898944 이제 사람 좀 빠지네. 호흡에 집중할 수 있겠어 [1] 프갤러(27.171) 10.27 81 0
2898942 부천역 bj들 내쫒는 분위기네 프갤러(211.210) 10.27 76 0
2898941 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ [2] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 61 0
2898939 호흡속에서 질소와 산소와 이산화탄소를 느낀다. [2] 프갤러(27.175) 10.27 71 1
2898938 스쿼트다. 근육의 힘을 키워 지하철 가속도를 버텨낸다. 프갤러(27.175) 10.27 45 0
2898936 내가 항상 자신감이 있는 이유 [2] ㅆㅇㅆ(124.216) 10.27 114 0
2898935 지하철 앉아도 자리가 좁으면 피곤하네 [5] 프갤러(42.25) 10.27 90 0
2898934 지하철에서도 최대한 명상으로 뇌 에너지 보충해야한다. [1] 프갤러(42.25) 10.27 76 0
2898933 회사에서 틈틈히 휴식을 취해야한다. [2] 프갤러(42.25) 10.27 86 0
2898932 현업자라고 다 잘할거라고 생각하면 오산입니다 [3] 루도그담당(58.239) 10.27 103 0
2898931 나 학생 포폴 MVC랑 자바 백엔드 만들어줄 수 있음 ㅆㅇㅆ(124.216) 10.27 74 0
2898930 내가 코딩하면서 밥 벌어먹을 걱정이 없다고 딱 느낀게 얼마전에 [2] ㅆㅇㅆ(124.216) 10.27 115 0
2898928 ㅆㅇㅆ또 까불길래 다 신고 넣고옴 ㅇㅇ(118.235) 10.27 81 5
2898927 요즘도 학점 중요하냐? [2] 루도그담당(58.239) 10.27 100 0
2898926 객관적으로보면 망한인생인데 왜 난 자신감이 있을까 [7] ㅆㅇㅆ(124.216) 10.27 123 0
2898925 Gpt랑 섹스하면 [3] 따당갤로그로 이동합니다. 10.27 117 2
2898924 나님 탈갤합니당.. [5] ♥벼락부자냥덩♥갤로그로 이동합니다. 10.27 91 0
2898921 4년차 개발자 이직하는거 잘하는걸까? [4] 프갤러(106.102) 10.27 125 0
2898919 유람선에 세금 낭비한 오세훈 잡아다 배 째서 장기 팔아야된다. [4] 프갤러(218.154) 10.27 101 1
2898917 책을 잃어버렸는데 아무리 찾아도 안 보입니다. 넥도리아(119.195) 10.27 57 0
2898915 현재 고등학생입니다 도와주세요 [7] 프갤러(211.200) 10.27 109 0
2898911 코테 이런건 결과가 늦게 나올 이유가 있음? [4] ㅇㅇ(106.101) 10.27 96 0
2898910 우리나라 국사교과서는 이영훈 교수님이 감수해야함 [9] chironpractor갤로그로 이동합니다. 10.27 102 1
2898908 아래 초보가 바이브 코딩하기 어렵다는 애야 답변해줌 [4] ㅆㅇㅆ(124.216) 10.27 149 0
2898906 형들 ㅡㅡ.. ai 종류에 대해 질문...있습니다 개초보입니당.. [7] 프갤러(106.241) 10.27 100 0
2898903 채터BBS 웹터미널 드뎌등장 파란빤스갤로그로 이동합니다. 10.27 73 0
2898902 그림 그려봤는데 어떰? [1] ㅁㅁ갤로그로 이동합니다. 10.27 91 0
2898901 고졸일수록 개발자 목숨걸어야되는 이유 ㅇㅇ갤로그로 이동합니다. 10.27 99 0
2898899 국장 오르는 이유는 간단한데 [1] ㅇㅇ갤로그로 이동합니다. 10.27 116 0
2898893 Ai가 개발 해주면 좋지 ㅆㅇㅆ(124.216) 10.27 73 0
2898892 AI로 개발은 점점쉬워지고 뜌따이들도 조만간 중급만큼 개발하게될걸? [4] 프갤러(14.51) 10.27 105 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2