디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.11.28 13:22:11
조회 60 추천 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 - -
2905670 대장동 설계자 이재명 [2] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 89 1
2905667 학력높으면 좋은점 있음 ㅇㅇ(121.139) 11.30 56 0
2905665 재미나이 프로 대학생무료1년 이거 언제다시해주냐 ㅇㅇ갤로그로 이동합니다. 11.30 45 0
2905662 간첩들이 나라 망치는 중 [2] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 61 0
2905659 한동훈 책 샀음. [2] 넥도리아(220.74) 11.30 95 0
2905657 이번에 컴공 가는 고3인데 미리 공부해야할거 있음? [7] ㅇㅇ갤로그로 이동합니다. 11.30 105 0
2905651 밥먹는중인데 chironpractor갤로그로 이동합니다. 11.30 42 0
2905650 정치관련글의 문제점 [4] 프갤러(114.205) 11.30 57 0
2905647 나님 단어 창조조화력 ㄱㅆㅅㅌㅊ☀+ ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 39 0
2905645 내가 딱 멍청하다고 느끼는 애들 중 하나 [9] 루도그담당(58.233) 11.30 116 3
2905644 이제 카쿠 빠지고 네라배 되는거임? 프갤러(49.165) 11.30 36 1
2905643 학교 엄청 중요함 [1] 프갤러(110.8) 11.30 79 1
2905641 쥐포기업 좆팡수준 ㅋㅋㅋ 프갤러(221.142) 11.30 34 0
2905640 확실히 AI나오고나니 할줄모른다는말은 안하겠다처럼 들림 [1] 프갤러(58.76) 11.30 62 1
2905636 요즘 들어 별로 살고 싶지가 않네.. [4] ㅇㅇ(1.244) 11.30 71 0
2905629 쿠팡 중국인 나만 의문이냐 [3] ㅇㅇ(211.106) 11.30 87 0
2905626 [대한민국] 여기저기 돌아다니며 사진만 찍는 배현진을 보면 ㅇㅇ(121.172) 11.30 33 0
2905624 커뮤니티 홈페이지 만드는대 대략 얼마나듬? [4] ㅇㅇ(121.140) 11.30 80 0
2905622 나도 러스트 못쓰는 한국 플머 업계에 현타가 온다. [11] 프갤러(211.234) 11.30 137 0
2905621 si에서 솔루션 가면 일어나는일 [12] 슈퍼막코더(126.253) 11.30 127 0
2905620 그냥 현타가 존나게 온다 ㅋㅋㅋ ㅇㅇ(172.56) 11.30 72 1
2905619 아 서비스회사 오니까 주말에도 자꾸 찾네 ㅅㅂ ㅇㅇ(1.244) 11.30 71 0
2905617 냥덩 발명 없는 새로운 프갤 뉴프로로 와라 헬마스터갤로그로 이동합니다. 11.30 67 1
2905613 물론 러스트로 작성해도 sql인젝션 못막는거 맞아 [7] 프갤러(42.18) 11.30 127 0
2905612 ㅉㅉ 러스트로 개발했으면 짱개가 못털어갔을것을 [1] 프갤러(223.63) 11.30 71 1
2905600 인지과학조져라 손발이시립디다갤로그로 이동합니다. 11.30 47 0
2905599 중국인이 아니라 오픈소스 때문에 털린거겠지 [1] ㅇㅇ(114.30) 11.30 106 1
2905598 요즘드는 의문 [2] 슈퍼막코더(126.253) 11.30 94 0
2905597 아레나 할당기 설계 구현 gg침 [3] 나르시갤로그로 이동합니다. 11.30 61 0
2905595 [애니뉴스] 깃허브 애니뉴스 모바일버전 지원 ㅇㅇ(121.172) 11.30 36 0
2905594 [애니뉴스] pienovel.web.app 코드 수정 ㅇㅇ(121.172) 11.30 31 0
2905592 ㅈ소에서 이 경험해본적 있나 [2] ㅇㅇ(118.235) 11.30 96 0
2905581 국비신입 받아본적 있냐 [20] 프갤러(222.96) 11.30 171 0
2905579 무능극좌 폭동배급견 4050 범죄자세대 ♥멘헤라냥덩♥갤로그로 이동합니다. 11.30 56 1
2905578 vscode에서 파이썬 인터프레터가 안 뜨는데 왜 그런거야? [2] 프갤러(203.249) 11.30 71 0
2905576 쿠팡 개인정보 유출은 중국인 전직원의 소행 [8] chironpractor갤로그로 이동합니다. 11.30 142 1
2905575 낙상홍 ㅇㅅㅇ [4] 헤르 미온느갤로그로 이동합니다. 11.30 67 0
2905574 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 11.30 45 0
2905573 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 11.30 64 0
2905572 Ada: 사용자 정의 메모리 관리 (Storage Pools) 나르시갤로그로 이동합니다. 11.30 48 0
2905570 내가 퇴물이 되어감을 느낄때 [1] 프갤러(45.150) 11.30 84 0
2905554 프갤 XSS 아직도 되나 [2] ㅇㅇ(119.197) 11.30 86 0
2905553 이거 왜 스크립트 실행이 안되냐 [2] ㅇㅇ(119.197) 11.30 102 0
2905552 바카라 사이트 디시 먹튀 없는곳 ㅇㅇ(122.26) 11.30 41 0
2905547 일본 취업 유학 워홀 여행 관련모임 ㅇㅇ(106.146) 11.29 95 0
2905546 30초중반 직딩인데 여기서 뭘 더 따야 승승장구 가능? 관세사는 안될듯. ㅇㅇ(203.232) 11.29 132 0
2905543 탑 명문대 정시 입결!J 프갤러(121.142) 11.29 96 2
2905537 나님은 미래를 걷는당⭐ ♥멘헤라냥덩♥갤로그로 이동합니다. 11.29 111 0
2905535 졸리당.. ♥멘헤라냥덩♥갤로그로 이동합니다. 11.29 85 0
2905534 발정난 멍퀴벌레 회생방안 [3] ♥멘헤라냥덩♥갤로그로 이동합니다. 11.29 93 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2