디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.11.28 13:22:11
조회 45 추천 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 48801 65
2905938 우왓, 연회중에 피분수가..ㅡㅡ;; [1] 박정희대통령갤로그로 이동합니다. 19:12 14 1
2905937 "'트럼프시대 美활동' 중국계 연구자, 문화대혁명 같은 혼란 중" 발명도둑잡기(39.7) 19:08 8 0
2905936 박민호 d-_-b_mh@daum.net 더 많은 계정정보 보기 99+ 프갤러(222.116) 19:01 7 0
2905935 [단독] 정부, 쿠팡에 최대 1조3300억 과징금 … 국민 정보 통째 유 발명도둑잡기(39.7) 19:01 11 0
2905934 난 정치에 관심은 없지만 [2] 사람낚는어부갤로그로 이동합니다. 18:51 34 1
2905933 열혈 백업 중..ㅇㅅㅇ [5] 헤르 미온느갤로그로 이동합니다. 18:50 21 0
2905932 WPF 쓰면 쓸수록 역하네 이거 [4] 거북이속이거북갤로그로 이동합니다. 18:44 35 0
2905929 친중도 나쁘지 않은 듯 ㅇㅇ(114.30) 18:38 30 0
2905928 내일 그만둔다고 해야지 [2] ㅇㅇ(118.235) 18:24 35 0
2905927 책읽기 귀찮다 [1] 사람낚는어부갤로그로 이동합니다. 18:15 27 0
2905926 [대한민국] 윤석열 대통령 - 연성 메시지 계엄 강조 ㅇㅇ(121.172) 18:09 12 1
2905925 네카라쿠베 쿠팡 가려면 중국인 되야 한다네 발명도둑잡기(39.7) 18:08 24 0
2905924 진보정당 역사의 6가지 교훈과 재구성의 길 발명도둑잡기(39.7) 18:05 12 0
2905922 안녕하세요. 프갤러(125.177) 17:51 15 0
2905921 바람은 찬데 저녁노을은 따스하구낭❤+ [1] ♥발라당냥덩♥갤로그로 이동합니다. 17:50 21 0
2905920 팀프로젝트 말고 1인 프로젝트만 교육시켜주는 프로그램은 없음? [1] 프갤러(221.166) 17:46 15 0
2905918 국정원 존재이유가 감시통제아님??하는일이 타이밍뒷.통수한방(1.213) 17:32 15 0
2905917 "쿠팡 IT 인력 절반 이상 중국인"…내부 폭로에 '발칵' 발명도둑잡기(211.246) 17:31 25 0
2905916 오픈AI 연구원 "고교 중퇴 후 챗GPT로 머신 러닝 배워...박사급들과 ㅇㅇ(106.102) 17:30 17 0
2905915 '일반 사무 업무' 라더니... 비밀 유지 계약서까지..? /KNN 발명도둑잡기(211.246) 17:28 11 0
2905913 호떡의 계절..❤+ [2] 따당갤로그로 이동합니다. 16:36 41 0
2905912 나 더이상 못버티겠어 퇴사해야할듯해.. [3] ㅇㅇ(211.235) 16:31 64 0
2905911 형들 이거 뭐임? [4] 프갤러(118.235) 16:18 79 0
2905910 군대는 언제감? [6] ㅇㅇ갤로그로 이동합니다. 15:47 59 0
2905909 요새 여기 저기 개인정보 털리네 [2] 류류(121.140) 15:38 41 0
2905908 안녕하세요. ㅇㅇ(118.221) 15:34 18 0
2905907 한국 프로그래머 커뮤니티 추천좀 [3] Fhiwjsjsjeje갤로그로 이동합니다. 15:17 64 0
2905905 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [2] ♥발라당냥덩♥갤로그로 이동합니다. 14:43 44 0
2905904 리눅스 유료로 변환되누 ㅋㅋㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 14:39 43 0
2905902 미국회사 쿠팡은 한국고객 개인정보보호나 한국 노동자 인권에 관심이 없다 발명도둑잡기(39.7) 14:29 15 0
2905901 주한미군의 ‘뒤집힌 지도’와 전략적 유연성 발명도둑잡기(39.7) 14:24 20 0
2905900 남자는 애인이나 아내가 없으면 포악해진다 발명도둑잡기(118.235) 14:18 26 0
2905899 쿠팡 개인정보 유출은 중국인 개발자 소행 [4] chironpractor갤로그로 이동합니다. 14:12 66 2
2905898 개발일하면서 주식투자 공부해왔는데 [2] ㅇㅇ(116.43) 13:46 49 0
2905896 [단독] “북한 오물풍선전, 사실상 국군이 먼저 도발…아군에도 비밀이었다 발명도둑잡기(118.235) 13:29 17 0
2905895 빅테크 기업은 C++ 로 개발하냐? [2] 프갤러(59.16) 13:28 53 0
2905889 방구가 진짜 미칠듯이 나옴 [8] 개멍청한유라갤로그로 이동합니다. 12:20 68 0
2905888 혹시 DLL 인젝션 고수있음? [11] 프갤러(1.213) 12:18 122 0
2905887 아~~~~~~~~~~~ [9] 개멍청한유라갤로그로 이동합니다. 12:12 68 0
2905886 Lua script하는 친구들 많아? [10] 프갤러(1.213) 11:45 92 1
2905883 나님… 멧챠 카와이.. ❤+ [2] 따당갤로그로 이동합니다. 10:19 90 0
2905881 나의 인버스 동지들 맘고생이 많소 [4] chironpractor갤로그로 이동합니다. 10:16 55 0
2905879 컴컴.. ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 09:59 38 0
2905877 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:55 20 0
2905876 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 09:52 38 0
2905871 인지과학조져라 손발이시립디다갤로그로 이동합니다. 07:58 60 0
2905869 결국 jemalloc 래핑하는 걸로 타협봤어요 [1] 나르시갤로그로 이동합니다. 07:09 41 0
2905862 요즘에 AI가 나오니까 시니어 1명 주니어 다수 형태로 가는거같음 프갤러(58.76) 05:25 59 0
2905853 코로나때 국비고졸로 취업했었다면 어땟을까 ㅇㅇ(211.235) 04:49 52 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2