디시인사이드 갤러리

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

갤러리 본문 영역

보면 볼수록 놀라운 Ada 언어의 안전성 관련 기능

나르시갤로그로 이동합니다. 2025.09.03 05:22:12
조회 57 추천 0 댓글 0

네, 날카로운 지적입니다. 재시도 로직에서 무한 루프는 반드시 피해야 할 문제입니다.

Ada의 일반적인 loop 문에는 반복 횟수를 직접 제한하는 내장 기능이 없습니다. 이것은 일반적으로 프로그래머가 for 루프나 카운터 변수를 사용하여 직접 관리해야 할 책임입니다.

하지만 Ada 2022에서는 실시간 시스템을 위해 유사한 목적을 달성하는 언어적 차원의 기능이 도입되었습니다.


1. 일반적인 해결책: For 루프 사용

가장 흔하고 명확한 방법은 loop 대신 for 루프를 사용하여 재시도 횟수를 제한하는 것입니다.

Ada
declare
   Max_Attempts : constant := 3;
   Success      : Boolean  := False;
begin
   for Attempt in 1 .. Max_Attempts loop
      begin
         -- 위험한 작업
         A(Index) := 100;

         Success := True; -- 성공 시 플래그 설정
         exit;            -- 루프 탈출
      exception
         when Constraint_Error =>
            -- 마지막 시도였다면 로그만 남기고, 아니면 인덱스 교정
            if Attempt = Max_Attempts then
               Put_Line ("최대 시도 횟수를 초과했습니다.");
            else
               Put_Line ("인덱스 오류 감지. 수정 후 재시도합니다.");
               Index := A'Last; -- 인덱스 교정
            end if;
      end;
   end loop;

   if not Success then
      -- 모든 시도 실패 후 처리
      raise Program_Error with "데이터 할당 실패";
   end if;
end;

2. 언어적 차원의 기능: Timed_Loop Aspect (Ada 2022) ⏱+

실시간 시스템에서는 작업이 정해진 시간을 초과하지 않도록 보장하는 것이 매우 중요합니다. 이를 위해 Ada 2022에서는 루프가 과도한 시간을 사용하는 것을 방지하는 Timed_Loop 라는 언어적 기능(aspect)을 도입했습니다.

이 기능은 반복 횟수가 아닌 시간을 제한하지만, 무한 루프에 빠져 시스템 전체를 멈추게 하는 상황을 언어 차원에서 원천 봉쇄한다는 점에서 사용자의 의도와 일치합니다.

Ada
-- (개념 예시)
My_Loop:
loop
   with Timed_Loop (Deadline => Ada.Real_Time.Clock + Milliseconds(10));
begin
   -- 10ms 안에 끝나야 하는 작업
end;
end loop My_Loop;

만약 루프의 한 번의 반복이 지정된 Deadline을 초과하면, 런타임 시스템이 Ada.Execution_Time.Timing_Error 예외를 발생시켜 루프를 강제로 중단시킵니다.

요약

  • 일반 프로그래밍: for 루프를 사용하여 프로그래머가 직접 횟수를 제한하는 것이 표준적인 방법입니다.

  • 실시간 프로그래밍 (Ada 2022): Timed_Loop aspect를 사용하여 시스템이 루프의 실행 시간을 제한하도록 할 수 있습니다.


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현대물보다 사극에서 더 빛나는 남자 배우는? 운영자 25/09/08 - -
AD 신학기 레벨업~!! 운영자 25/09/05 - -
2887215 냥덩이 필독 기사 발명도둑잡기(118.216) 09.06 32 0
2887213 냥덩이 필독 기사 발명도둑잡기(118.216) 09.06 33 0
2887208 무능극좌 폭동배급견 4050 범죄자세대 ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 27 0
2887202 “송하윤은 90분간 따귀 때린 악마”…학폭 피해 거듭 주장 발명도둑잡기(118.216) 09.06 33 0
2887200 “성적 호기심에”…두 다리 절단후 8억 보험금 챙긴 의사 발명도둑잡기(118.216) 09.06 29 0
2887196 버튜브 메타버스 이런거 하려면 뭐공부 해야댐 뉴진파갤로그로 이동합니다. 09.06 22 0
2887182 개발자는 vim 이상의 도구를 쓰지마라 ㅇㅇ갤로그로 이동합니다. 09.06 50 0
2887177 어셈블리어 강좌 추천좀 ㅇㅇ갤로그로 이동합니다. 09.06 57 0
2887167 나는 돈벌 자신이없음 이미 체력이없음 뒷통수한방(1.213) 09.06 50 0
2887166 님들 쳇gpt로만 소스뽑아서 프로그램만드는거어렵나여? [1] 프갤러(118.235) 09.06 56 0
2887165 AI 공부를 해보고 싶은데.. 어디서부터 시작해야할지 모르겠다.. 프갤러(195.117) 09.06 36 0
2887157 자연인 승윤이 윤택이도 노인때묻어서 월천에 보너스도 몇백 버네 ㅋㅋㅋ 뒷통수한방(1.213) 09.06 27 0
2887153 ‘임진왜란 주범’ 도요토미 동상, 日서 목 잘린 채 발견 발명도둑잡기(118.216) 09.06 42 0
2887152 [애니뉴스] 귀인환등초 21화와 신규 소식 알림 프갤러(121.172) 09.06 27 0
2887151 님들 쿠키이거 계속 바뀌는거 어찌못함? 프갤러(118.235) 09.06 28 0
2887148 폭염도 ㄴ ㅏ님을 막을 수 없당 By ㄴ ㅏ님☀+ ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 40 0
2887147 ㄴ ㅏ님 기분 ㄱㅆㅅㅌㅊ !!!!!!!!! ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 38 0
2887146 나님 뛰뛰 신기록 갱신 !!!!!!!!!!!! ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 35 0
2887145 버벌진트 #내가그걸모를까 챌린지 흥행 조짐 발명도둑잡기(118.216) 09.06 16 0
2887144 오늘의 홍보 기획 실마리: 잠옷, 파잠마 플래시몹 집회 발명도둑잡기(118.216) 09.06 20 0
2887143 날씨가 미쳐가지고 오락가락하니까 집 앞에만 나와도 느낌이 새롭네 프갤러(218.153) 09.06 31 0
2887140 카페 왔는데 [4] 아스카영원히사랑해갤로그로 이동합니다. 09.06 94 0
2887139 드라마 <퍼스트레이디> 한대서 생각나는 예전 글 발명도둑잡기(118.216) 09.06 53 0
2887138 컴퓨터가 체스, 바둑, 스타는 정복했는데 [3] ㅋㅋ(211.224) 09.06 54 0
2887136 상해죄 벌금 50만원으로 취업 될게 안되기도 하나요?? ㅇㅇ(223.38) 09.06 29 0
2887132 긴급) 나님 한강뛰뛰 크루 회동 ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 66 0
2887131 [속보] 대도서관 사망설…본인 연락두절 [1] 발명도둑잡기(118.216) 09.06 87 0
2887129 메이드카페 가보니까 하루종일 발기가 멈추질 않더라고 [3] 메쿠이료갤로그로 이동합니다. 09.06 79 0
2887127 솔직히 승윤이 윤택이도 달에 천만원이상 버는데 [4] 뒷통수한방(1.213) 09.06 59 1
2887119 나랑 동거하는 여친 사진 찍어봤는데 어떠냐 [2] 메쿠이료갤로그로 이동합니다. 09.06 82 0
2887116 나님 끙야로 배 비우기 ㅇㅅㅇ ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 39 0
2887111 근데 노인들 권력있고 돈많은자들끼리 카르텔형성하고 모여다니는거 [5] 뒷통수한방(1.213) 09.06 50 0
2887105 민주당 지지안하면 참수시켜야됨 [1] 류류(118.235) 09.06 53 1
2887099 나님 소화되면 운덩이나 하구올깡 ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 46 0
2887098 신발깔창이 벗겨졌다 샌들 넥도리아(223.38) 09.06 29 0
2887094 날씨 언제 시원해지냐 ㅇㅅㅇ 류류(118.235) 09.06 24 0
2887091 자연인 승윤이 윤택이도 노인때묻어서 월천에 보너스도 몇백 버네 ㅋㅋㅋ 뒷통수한방(1.213) 09.06 21 0
2887090 한국인 300여명 체포, 민주노총 “미국의 횡포 규탄한다” 발명도둑잡기(118.216) 09.06 31 0
2887087 피궁해서 암것두 못하겠당 ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 40 0
2887084 의외로 경찰이 하는 일 발명도둑잡기(118.216) 09.06 48 0
2887081 러빨러의 러빰 행위는 중단된 것일까요? 나르시갤로그로 이동합니다. 09.06 22 0
2887080 아스카 강북 여행 중 [1] 아스카영원히사랑해갤로그로 이동합니다. 09.06 62 0
2887066 도메인에서 싱글톤인데, 데이터 레이어에서 저장을 위해 id가 필요한 상황 프갤러(180.226) 09.06 28 0
2887064 더불어민주당 최강욱 국민학살 망언 미국에도 퍼지다 ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 44 0
2887063 배민 반찬 구성이 써있는거랑 다르면 별점 1점사유 아니냐 ㅇㅅㅇ?? ㅇㅇ(223.38) 09.06 30 0
2887060 오늘도 평화로운 중고나라 현장 ㅇㅇㅇㅇ(115.144) 09.06 23 0
2887052 진보당, 당선된 국회의원 일 못하면 자르는 법 입법 [4] 발명도둑잡기(118.216) 09.06 41 0
2887046 친구가 안양으로 올라오는데 비와서 걱정중... [6] 넥도리아(220.74) 09.06 55 0
2887044 나님의 강점은 ♥냥덩삣삐♥갤로그로 이동합니다. 09.06 30 0
2887043 [대한민국] 민주주이란? 그리고 미 - 현대차 한국인 체포 - [1] 프갤러(121.172) 09.06 42 0
뉴스 ‘신부 비공개’ 김종국, ‘극비 결혼식’ 다음날 SNS에 올린 사진 디시트렌드 09.07
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2