디시인사이드 갤러리

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

갤러리 본문 영역

Ada 프로그래밍: 부록: Clair 코딩 스타일 가이드

나르시갤로그로 이동합니다. 2025.08.11 00:28:05
조회 48 추천 0 댓글 0

부록: Clair 코딩 스타일 가이드


들여쓰기: 탭 대신 2개의 공백을 사용하여 들여쓰기를 합니다.

  • 예약어 및 애스펙트: snake_case (전체 소문자)를 사용합니다.
    • 근거: 언어 키워드 및 애스펙트를 사용자가 정의한 식별자와 구별하기 위함입니다.
    • 예시: package, is, begin, end, if, procedure, with, pre, post

프라그마: 프라그마 이름과 해당 컨벤션 식별자에 snake_case (전체 소문자)를 사용합니다.

  • 근거: 다른 언어 키워드 및 속성과의 일관성을 위함입니다. 이는 프라그마 자체(예: import)와 표준 컨벤션 식별자(예: c, intrinsic) 모두에 적용됩니다.
  • 예시: pragma import (c, my_c_func, "my_c_func"), pragma convention (c, My_Data_Type)

공백:

  • 서브프로그램 호출 및 선언: 서브프로그램 이름과 여는 괄호 ( 사이에 단일 공백을 사용합니다.
    • 근거: 서브프로그램 이름을 타입 변환이나 괄호를 사용하는 다른 언어 구조와 시각적으로 구별하여 전체적인 코드 명확성을 향상시키기 위함입니다.
    • 예시 (호출): Clair.Error.get_error_message (errno_code);
    • 예시 (선언): procedure exit_process (status : Integer := EXIT_SUCCESS);
  • 범위 연산자 (..): 범위 연산자의 양쪽에 단일 공백을 사용합니다.
    • 근거: 연산자를 범위 경계와 시각적으로 분리하여 혼동을 방지하고, 특히 부동 소수점 또는 고정 소수점 리터럴과 함께 사용할 때 가독성을 향상시키기 위함입니다.
    • 예시 (타입 선언): range 0.0 .. 100.0
    • 예시 (루프): for i in 1 .. 10 loop

변수, 서브프로그램 및 엔트리: snake_case (밑줄이 있는 전체 소문자)를 사용합니다.

  • 근거: 모든 사용자가 정의한 실행 가능하거나 데이터를 보유하는 식별자에 대해 일관되고 읽기 쉬운 스타일을 유지하기 위함입니다.
  • 예시 (변수 및 서브프로그램): my_variable, get_pid
  • 예시 (엔트리): get_item, put_message ada protected body Buffer is entry get_item (item : out Data) when not is_empty is -- ... end get_item; end Buffer;
  • 반환값 변수: 서브프로그램의 반환값, 특히 상태 코드(예: 0, -1)를 담는 변수에는 retval 사용을 선호합니다.
    • 근거: 이는 result 식별자와의 잠재적 충돌을 피하는 널리 알려진 관례입니다. 특정 데이터를 나타내는 반환값의 경우 bytes_written, new_fd와 같이 더 설명적인 이름을 사용합니다.
    • 예시: retval := dlfcn_h.dlclose (self.handle);

속성: snake_case (전체 소문자)를 사용합니다.

  • 근거: 언어에서 정의한 속성을 사용자가 정의한 타입 및 서브프로그램과 구별하기 위함입니다.
  • 예시: errmsg'length, c_path'address

타입, 서브타입, 예외 및 보호 객체:

  • 단일 단어 식별자에는 Pascal_Case를 사용합니다.
    • 근거: File과 같은 패키지 내에서 Descriptor와 같은 이름은 File.Descriptor로 사용될 때 자명합니다. File.File_Descriptor와 같이 불필요한 접두사를 추가하면 가독성을 해칠 수 있습니다.
    • 예시: Descriptor, Flags, Object
  • 여러 단어로 된 식별자에는 Pascal_Case_With_Underscores를 사용합니다.
    • 근거: 여러 단어로 된 타입 이름 내의 단어들을 명확하게 구별하여 가독성을 향상시키기 위함입니다.
    • 예시: Library_Load_Error, Symbol_Lookup_Error

상수:

  • 컴파일 타임 상수: UPPER_CASE_WITH_UNDERSCORES를 사용합니다. 이 규칙은 표준 라이브러리의 상수를 포함한 모든 정적 상수에 적용됩니다.
    • 근거: 정적인 고정 값을 다른 모든 식별자와 명확하게 구별하기 위함입니다.
    • 프로젝트 정의 예시: EXIT_SUCCESS, MAX_BUFFER_SIZE
    • 표준 라이브러리 예시: System.NULL_ADDRESS, Interfaces.C.NUL, Interfaces.C.Strings.NULL_PTR
  • 런타임 상수: snake_case (변수처럼)를 사용합니다.
    • 근거: 서브프로그램 내에서 동적 값(예: 매개변수)으로 초기화되는 상수에 사용됩니다. 이를 '읽기 전용 변수'로 취급합니다.
    • 예시: final_message : constant String := "Error: " & message;

패키지: Pascal_Case를 사용합니다.

  • 예시: Clair.Process
  • 예외: 두 글자로 구성된 Dl의 경우 DL로 표기합니다. (예: Clair.DL, Clair.Dl Clair.D1처럼 보일 수 있음).

표준 라이브러리 명명 규칙:

  • Interfaces.C: Interfaces.C 패키지 및 그 하위 패키지의 타입과 서브프로그램은 C 표준 라이브러리의 명명 규칙과 일치하도록 snake_case를 사용해야 합니다. 이 패키지의 상수는 컴파일 타임 상수에 대한 전역 UPPER_CASE 규칙을 따릅니다.
    • 근거: Ada와 C 간의 명확하고 일관된 정신적 매핑을 유지하면서 프로젝트의 모든 상수가 균일한 모양을 갖도록 보장하기 위함입니다.
    • 예시 (타입/서브프로그램): Interfaces.C.int, Interfaces.C.char_array, Interfaces.C.Strings.chars_ptr
    • 예시 (상수): Interfaces.C.NUL, Interfaces.C.Strings.NULL_PTR


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 시구, 시축 했다가 이미지가 더 나빠진 스타는? 운영자 25/08/11 - -
AD 가전디지털, 휴대폰 액세서리 SALE 운영자 25/08/08 - -
공지 프로그래밍 갤러리 이용 안내 [92] 운영자 20.09.28 46296 65
2881322 선미=BLUE!-ming | Spoiler #2 발명도둑잡기갤로그로 이동합니다. 22:51 0 0
2881321 ㅇㅣ거 뭐냐 ㅇㅇ(211.105) 22:50 3 0
2881320 재미를 추구하라⭐+ By 나님 ♥냥덩이♥갤로그로 이동합니다. 22:49 0 0
2881319 OWN(오 은) - Blueprint(청사진) 발명도둑잡기갤로그로 이동합니다. 22:49 0 0
2881318 나님 슬슬 졸린둣? ♥냥덩이♥갤로그로 이동합니다. 22:40 5 0
2881317 요즘 식당, 술집들 보면 술로 너무 폭리 취함 [3] 야옹아저씨갤로그로 이동합니다. 22:37 11 0
2881315 챗티씨에 코드 맡기고 나는 누워잇는중 [1] 헬마스터갤로그로 이동합니다. 22:28 9 0
2881314 나님 냥덩이 키우는 유튭 채널 개설 예정 [1/1] ♥냥덩이♥갤로그로 이동합니다. 22:19 23 0
2881312 도대체 영화관리를 어떻게 하길래 벌써 XX티비에 영화가 다떴지?? [6] ㅇㅇ(223.39) 22:17 28 0
2881310 가격 제시염⭐ ♥냥덩이♥갤로그로 이동합니다. 22:13 10 0
2881309 잡코리아에서 AI 공모전으로 채용까지 하네요 프갤러(114.203) 22:13 10 0
2881308 나님 주무시기전 소통⭐+ 질문 받음 ♥냥덩이♥갤로그로 이동합니다. 22:12 8 0
2881306 임시완 “홍석천이 여러 번 프러포즈”…결국 ‘구애’ 승낙 발명도둑잡기갤로그로 이동합니다. 22:10 10 0
2881305 공중협박죄 발명도둑잡기갤로그로 이동합니다. 22:05 10 0
2881303 아가냥 쑥쑥 크는걸 보니 잡고싶넹 ♥냥덩이♥갤로그로 이동합니다. 21:55 14 0
2881302 퍼플렉시티랑 지피티 듀오로 가야하나 프갤러(61.79) 21:52 13 0
2881300 빌게이츠 이새낀 좇센 왜오는거?? 미국에선 총기맞을까봐 오는거?? 타이밍뒷통수한방(1.213) 21:51 18 0
2881299 헉! 나님 엄마냥 아가냥 대화 도청즁 ! ♥냥덩이♥갤로그로 이동합니다. 21:49 13 0
2881298 나님 서식지 옮길곳 정햇당 ♥냥덩이♥갤로그로 이동합니다. 21:48 13 0
2881297 카페 와이파이를 쓰면 안 되는 이유 발명도둑잡기갤로그로 이동합니다. 21:47 17 0
2881294 리눅스 예전에는 좋았던거 같은데 점점 성능이 내려가는느낌임 타이밍뒷통수한방(1.213) 21:39 15 0
2881292 형님들 엑셀 도움좀 주실분요 ㅠㅠ [1] 프갤러(180.69) 21:33 17 0
2881291 다들 웹사이트 만들 때 폰트 뭐 씀? ㅇㅇ갤로그로 이동합니다. 21:33 13 0
2881287 CIA와 몰몬교 발명도둑잡기갤로그로 이동합니다. 21:20 13 0
2881286 러스트가 확실히 요증 대세는 맞네 ㅇㅇ(125.179) 21:20 30 0
2881285 혹시 예전에 멍유한테 괴롭힘 당하셨던분 아직 계신가요? [6/1] ♥냥덩이♥갤로그로 이동합니다. 21:18 52 0
2881284 asp.net core 문서 보면서 공부나 해야겠다 루도그담당(58.239) 21:17 16 0
2881283 나도 MCP 만들어서 쓰는데 굳이 한국 토종 MCP 써야할 무언가인가 [4] ㅆㅇㅆ(124.216) 21:14 29 0
2881282 천수를 초과하여 살고있어요. 숨통이 조여오네요. 프갤러(220.84) 21:13 24 0
2881280 카카오 MCP 나옴 [1] 프갤러(121.133) 21:10 32 0
2881279 피자스쿨에서 8900원짜리 치즈피자 먹고 왔다 [1] 발명도둑잡기갤로그로 이동합니다. 21:09 18 0
2881278 자바로 윈도우13 만드는중이누?? 윈도우 출시예정 또 미루누 ㅋㅋㅋㅋㅋㅋ 타이밍뒷통수한방(1.213) 21:04 16 0
2881277 윈도우12 출시예정 또 내년으로 미룸 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅅㅂ ㅋㅋㅋㅋㅋ 타이밍뒷통수한방(1.213) 21:02 16 0
2881276 벌써 9시넹 [1] ♥냥덩이♥갤로그로 이동합니다. 20:58 18 0
2881275 클라우드에서 개발하는 서비스 뭐가 좋나요 [3] 프갤러(58.29) 20:57 23 0
2881269 ☘+~✨⭐+ [3] ♥냥덩이♥갤로그로 이동합니다. 20:47 24 0
2881267 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ [1] ♥냥덩이♥갤로그로 이동합니다. 20:40 22 0
2881266 선생님들 m1맥북 엑셀사용 질문있습니다 ㅇㅇ갤로그로 이동합니다. 20:38 16 0
2881259 아 친구 새끼 씨발 [3] 루도그담당(58.239) 20:16 67 0
2881252 어 씨발 해물짬뽕수제비 왔네~ [4] 아스카영원히사랑해갤로그로 이동합니다. 19:57 51 0
2881250 VBA의 좋은점 하나 배웠다 이기 [2] 슈퍼막코더(126.204) 19:56 39 0
2881248 에이치PE, ‘디시인사이드’ 품는다 [시그널] 발명도둑잡기갤로그로 이동합니다. 19:55 21 0
2881247 코딩 잘하면 뭐하나. 프갤러(49.165) 19:52 26 0
2881246 정희햄은 재규어햄이 있어서 아름다운 평가 받는거지 [7] ㅆㅇㅆ(124.216) 19:46 37 0
2881245 비개발 중소는 또라이 많네.. [1] 프갤러(220.92) 19:45 46 1
2881244 길냥이는 갈곳이 없구낭.. [5] ♥냥덩이♥갤로그로 이동합니다. 19:44 46 0
2881243 아스카 선정 머한민국 머통령 티어 [8] 아스카영원히사랑해갤로그로 이동합니다. 19:40 64 0
2881242 애초에 이명박 자체가 기독교 장로까지 지냈어 [2] ㅆㅇㅆ(124.216) 19:39 30 0
2881241 나님 갤 옮기려는데 ㅊㅊ 받음 [11] ♥냥덩이♥갤로그로 이동합니다. 19:33 54 0
뉴스 [이웃집 백만장자] '2조 거인' 서장훈, '텐션 요정' 장예원과 손잡았다! 올 하반기 정규 컴백! 디시트렌드 18:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2