디시인사이드 갤러리

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

갤러리 본문 영역

Ada: 외계인이 설계한 Storage_Pool 소개모바일에서 작성

나르시갤로그로 이동합니다. 2025.11.28 13:22:11
조회 43 추천 1 댓글 0

Ada: 외계인이 설계한 Storage_Pool 소개

? 들어가며

Ada를 쓰다 보면 “이 언어는 외계인이 설계한 게 아닐까?”라는 생각이 들 때가 있습니다. 특히 Storage_Pool 기능은 다른 언어에서는 보기 힘든 독특한 설계 철학을 보여줍니다. 단순한 메모리 풀을 넘어, 언어 문법 차원에서 메모리 관리 전략을 선택할 수 있게 해주죠.


? Storage_Pool이란?

Ada에서 Access 타입(new로 객체를 할당하는 포인터 타입)은 기본적으로 디폴트 힙 풀(Default Pool)을 사용합니다.


하지만 for Access_Type'Storage_Pool use Some_Pool; 구문을 통해, 특정 Access 타입이 사용할 메모리 풀을 정적으로 지정할 수 있습니다.


이때 Some_Pool은 사용자가 직접 구현한 커스텀 풀일 수도 있고, Ada가 제공하는 디폴트 풀일 수도 있습니다.


? 간단한 예제 코드

ada

with Ada.Text_IO;

with System.Storage_Pools;


procedure Demo is

   type Int_Access is access all Integer;


   -- 디폴트 풀 사용 (속성 지정 생략)

   X : Int_Access := new Integer'(10);


   -- 커스텀 풀 정의

   type My_Pool is new System.Storage_Pools.Root_Storage_Pool with null record;

   overriding procedure Allocate

     (Pool : in out My_Pool;

      Addr : out System.Address;

      Size : System.Storage_Elements.Storage_Count;

      Align: System.Storage_Elements.Storage_Count) is

   begin

      -- 여기서는 단순히 Ada 기본 할당을 흉내냄

      Addr := System.Storage_Elements.To_Address

                (System.Storage_Elements.Storage_Array'(others => 0)'Address);

   end Allocate;


   overriding procedure Deallocate

     (Pool : in out My_Pool;

      Addr : System.Address;

      Size : System.Storage_Elements.Storage_Count;

      Align: System.Storage_Elements.Storage_Count) is

   begin

      -- 커스텀 해제 정책 구현 가능

      null;

   end Deallocate;


   overriding function Storage_Size (Pool : My_Pool)

     return System.Storage_Elements.Storage_Count is

   begin

      return 1024; -- 풀 크기 예시

   end Storage_Size;


   Custom_Pool : My_Pool;


   type Custom_Access is access all Integer;

   for Custom_Access'Storage_Pool use Custom_Pool;


   Y : Custom_Access := new Integer'(99);

begin

   Ada.Text_IO.Put_Line("X = " & Integer'Image(X.all));

   Ada.Text_IO.Put_Line("Y = " & Integer'Image(Y.all));

end Demo;

? 결론

Ada의 Storage_Pool은 단순한 메모리 풀이 아니라, 언어 문법에 직접 연결된 확장 포인트입니다. 덕분에 GC, 아레나, 커스텀 정책을 자유롭게 붙일 수 있고, Access 타입별로 전략을 선택할 수 있습니다. 이런 점에서 Ada는 정말 “외계인이 설계한 언어”처럼 느껴질 만큼 앞서간 철학을 보여줍니다.

추천 비추천

1

고정닉 1

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이제는 의미 없어진 것 같은 시상식은? 운영자 25/12/01 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48799 65
2905884 최대한 나머지 팀원에게 내 업무 안알려주는게 목표임 ㅇㅇ(211.235) 11:33 12 0
2905883 나님… 멧챠 카와이.. ❤+ [1] 따당갤로그로 이동합니다. 10:19 31 0
2905881 나의 인버스 동지들 맘고생이 많소 chironpractor갤로그로 이동합니다. 10:16 30 0
2905879 컴컴.. ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 09:59 24 0
2905877 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:55 12 0
2905876 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 09:52 16 0
2905871 인지과학조져라 손발이시립디다갤로그로 이동합니다. 07:58 38 0
2905869 결국 jemalloc 래핑하는 걸로 타협봤어요 [1] 나르시갤로그로 이동합니다. 07:09 22 0
2905862 요즘에 AI가 나오니까 시니어 1명 주니어 다수 형태로 가는거같음 프갤러(58.76) 05:25 42 0
2905853 코로나때 국비고졸로 취업했었다면 어땟을까 ㅇㅇ(211.235) 04:49 40 0
2905845 어떤 주장을 할 때 느끼는거지만 [2] 루도그담당(58.233) 03:59 70 1
2905810 방귀 냄새를 맡는다고? 떵을 먹겟다는 소리냐? [7] 헬마스터(211.35) 02:08 96 7
2905795 개발자 연봉 왤케 내려갔냐 ㅇㅇ(117.111) 01:32 57 0
2905781 취업이 낳냐 창업이 낳냐 [3] ㅇㅇ갤로그로 이동합니다. 00:44 60 0
2905774 ai 대체드립 이거 굉장히 좋은듯 [7] 프갤러(110.8) 00:33 82 0
2905771 IT굽삐 광고가 이제 [1] 개멍청한유라갤로그로 이동합니다. 00:29 45 0
2905745 지금 신입 ㅈ된거 아니냐 [5] ㅇㅇ갤로그로 이동합니다. 11.30 120 0
2905740 파이썬 어케 실행하냐고 묻는 개발자 어케 생각함? [6] 프갤러(218.153) 11.30 107 1
2905739 IT 인력을 좀 줄일 필요는 있는 듯 [1] ㅇㅇ(114.30) 11.30 87 0
2905738 IT 배우려면 인도 기업 가라는 이유 [4] 프갤러(124.54) 11.30 99 0
2905736 12.3 계엄 그날의 시계는 돌아온다. [그날의 의미] [누군가의 길에서 넥도리아(220.74) 11.30 22 0
2905735 혹시 이제 코딩 c언어 몰라도 할수있는 정도임? [1] 흑인갤로그로 이동합니다. 11.30 82 0
2905734 큰 결심을 하려 한다. 넥도리아(220.74) 11.30 33 0
2905724 디시 클리너 돌리기 어려움?? [11] ㅇㅇ(175.214) 11.30 64 0
2905719 님들 혹시 다이어그램 같은 거 직접그림? [2] ㅇㅇ(115.140) 11.30 63 0
2905710 한달에 100km 정도 뛰는듯? [2] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 82 0
2905709 2000년대 머리스탈이 지금보다 낳지않냐? [4] 헬마스터갤로그로 이동합니다. 11.30 70 0
2905708 나님 슬슬 졸린.. [2] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 79 0
2905698 프갤 뛰뛰크루 냥덩런 명단과 일정 짜봄(초보자용) [4] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 62 0
2905696 [애니뉴스] 소설 공모전 ㅇㅇ(121.172) 11.30 24 0
2905694 나님 프갤 뛰뛰크루 만들깡? [3] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 88 0
2905692 확실히 뛰뛰하면 맘마 소화가 잘됨 [4] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 53 0
2905687 나님 이제 슬슬 소화되는듯? [4] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 66 0
2905685 렌고쿠 똥구멍봤다 [7] 개멍청한유라갤로그로 이동합니다. 11.30 77 0
2905684 러스트 sql 인젝션 실제 사례, 겁나 많네 [2] 나르시갤로그로 이동합니다. 11.30 52 0
2905683 러스트 sql 인젝션 실제 사례 나르시갤로그로 이동합니다. 11.30 32 2
2905679 취업이 목표면 대학교보다 폴리텍, 직업훈련소.. [10] 나르시갤로그로 이동합니다. 11.30 69 0
2905678 학력높아야하는 이유 ㅇㅇ [5] 프갤러(211.234) 11.30 77 0
2905676 수학과가 범용성 최고 [4] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 84 0
2905674 현대판 중일 전쟁 정말 나나요? 넥도리나(220.74) 11.30 22 0
2905673 코딩하는거니 유튜버 아는 사람 [1] 프갤러(14.39) 11.30 47 0
2905672 친구놈이 자기 코딩할줄안다고 자랑하는데 [8] 프갤러(121.150) 11.30 78 0
2905671 자바개발자랑 c#개발자 구분하는법 [2] 프갤러(211.234) 11.30 64 0
2905670 대장동 설계자 이재명 [2] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 60 1
2905667 학력높으면 좋은점 있음 ㅇㅇ(121.139) 11.30 33 0
2905665 재미나이 프로 대학생무료1년 이거 언제다시해주냐 ㅇㅇ갤로그로 이동합니다. 11.30 22 0
2905662 간첩들이 나라 망치는 중 [2] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 40 0
2905659 한동훈 책 샀음. [2] 넥도리아(220.74) 11.30 70 0
2905657 이번에 컴공 가는 고3인데 미리 공부해야할거 있음? [7] ㅇㅇ갤로그로 이동합니다. 11.30 74 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2