디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.11.28 13:22:11
조회 70 추천 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 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
2906541 AI기담|머리가 맛이 가서 의사도 포기 발명도둑잡기(118.216) 12.05 103 0
2906540 유럽, 북미 선진국에서 가장 입학이 어려운 학문 전공!R 프갤러(121.142) 12.05 70 1
2906539 악동뮤지션(Akdong Musician) 크레센도 (Crescendo) 발명도둑잡기(118.216) 12.05 34 0
2906538 일 잘하면 회사에서 겁나 고생한다.. [2] 프갤러(116.126) 12.05 100 0
2906536 “새똥 덩어리 참배” 중국 관영매체, 다카이치 조롱 영상 제작 발명도둑잡기(118.216) 12.05 38 0
2906535 리눅스마스터 1급 합격률 왤케 씹창이냐? 프갤러(220.70) 12.05 58 0
2906534 netcup vps 혜자 ㅇㅇ(219.240) 12.05 45 0
2906532 고졸이 개발자 하고싶으면 어떻게 준비해야함? [3] 프갤러(124.28) 12.04 97 0
2906527 ❤따당이 크리스마스 트리에 예쁜 말 써줘..❤ [1] 따당갤로그로 이동합니다. 12.04 68 0
2906525 오늘의 작명 실마리: 무관심 검열, 무플 검열 발명도둑잡기(118.216) 12.04 29 0
2906523 SNS가 망친 평균 VS 현실 평균 [1] 발명도둑잡기(118.216) 12.04 133 0
2906522 본질적으로 dto와 map의 차이가 없음 [3] 박민준갤로그로 이동합니다. 12.04 188 1
2906521 졸리 졸리 ♥발라당냥덩♥갤로그로 이동합니다. 12.04 69 0
2906519 "예술은 누가 더 나은가의 문제가 아니다" 발명도둑잡기(118.216) 12.04 86 0
2906517 "말썽꾼 아줌마"...다카이치 조롱한 중국 애니메이션 화제 발명도둑잡기(118.216) 12.04 52 0
2906516 html 401 에러뜨면서 사이트 안들어가지는거 어케고침..? 프갤러(125.191) 12.04 40 0
2906515 사이버대라도 학위 따야함?? ㅇㅇ갤로그로 이동합니다. 12.04 55 0
2906514 내란 저지 1주년... "국민의힘 해산해야 민주주의가 바로 선다" 발명도둑잡기(118.216) 12.04 51 0
2906513 ai 시대에 임베디드 배우는 거 어때? [6] 프갤러(223.39) 12.04 135 0
2906512 [1편] 대미투자,원리금 회수도 불가능 발명도둑잡기(118.216) 12.04 38 0
2906510 “새똥 덩어리 참배” 중국 관영매체, 다카이치 조롱 영상 제작 발명도둑잡기(118.216) 12.04 37 0
2906508 [애니뉴스] YxD Ads 개발중 - 완료 ㅇㅇ(121.172) 12.04 38 0
2906507 조갑제 "국민의힘=이적 단체…미치광이 역적 제명도 못한 내란비호당" 발명도둑잡기(118.216) 12.04 43 0
2906505 물건 대여업체는 오히려 손님들이 잃어버려야 이득인건가 [3] 공기역학갤로그로 이동합니다. 12.04 98 0
2906504 눈 올 때 들으면 좋은 노래 snowy [2] 발명도둑잡기(118.216) 12.04 53 0
2906501 Dingux 리눅스 발명도둑잡기(118.216) 12.04 57 0
2906500 SDL / DirectFB / fbdev 를 비교한 성능 발명도둑잡기(118.216) 12.04 50 0
2906488 지잡 취업 가능? [1] 프갤러(121.151) 12.04 90 0
2906486 언어간 호환하려고 gRPC 쓰려다가 웹소켓으로 갈아탐 ㅇㅅㅇ [2] 프갤러(211.234) 12.04 88 0
2906485 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.04 68 0
2906483 [애니뉴스] SortingClp - sortingColorPalette ㅇㅇ(121.172) 12.04 43 0
2906481 내란무새 리짜이밍 빤스런 ㅋㅅㅋ ♥발라당냥덩♥갤로그로 이동합니다. 12.04 60 0
2906479 ■개발자말고 아버지소개로 트럭정비사하는게낫냐 [2] ㅇㅇ갤로그로 이동합니다. 12.04 88 0
2906478 Regular Animals 발명도둑잡기(118.216) 12.04 35 0
2906475 부자 러스트 프로그래머 이제 숨만 셔도 하루 6만원씩 들어온다. [3] 프갤러(223.37) 12.04 107 1
2906474 지방 갈까말까 엄청 고민하다 거절했다. 프갤러(223.37) 12.04 61 0
2906473 오늘 뽑은 색이 다른 포켓몬 넥도리아(220.74) 12.04 47 0
2906471 지금껏 다녀본 업소들 유형별 특징.txt ㅇㅇ(118.235) 12.04 82 0
2906470 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.04 54 0
2906469 우리신입 코드보면 줘패고싶다 걍 ㅇㅇ [2] 맨날가고싶은사람갤로그로 이동합니다. 12.04 135 0
2906468 이미 선구자가 있었네. [3] 프갤러(49.165) 12.04 114 0
2906466 코딩 입문할려고 함 [2] Hoping갤로그로 이동합니다. 12.04 78 0
2906465 조국혁신당이 미래다 이기이기 타이밍뒷.통수한방(1.213) 12.04 45 0
2906463 님들 저 졸업작품 주제 추천좀요 [3] 공기역학갤로그로 이동합니다. 12.04 78 0
2906462 나님 금융회사 세울꺼양 [4] ♥발라당냥덩♥갤로그로 이동합니다. 12.04 90 0
2906461 여자들은 남자에게 돈쓰는걸 아까워하지 않음 [1] 프갤러(59.14) 12.04 83 1
2906459 더이상 프로그래밍을 배우면 안 되는 이유 프갤러(125.176) 12.04 103 0
2906458 C++ 인생 40 년 갈아 넣었습니다. [1] 프갤러(59.16) 12.04 72 0
2906456 팩트) AI 따윈 소프트웨어 같이 문과도 하는 것만 대체 가능 [8] 프갤러(115.4) 12.04 84 0
2906455 코딩에 수학 실력은 양날의 검임 [3] 프갤러(203.228) 12.04 114 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2