Repolode
aardappel

aardappel/goose

힙 할당기나 가비지 컬렉터 없이, 컴파일러가 관리하는 데이터 스택으로 메모리 안전성을 보장하는 실험적인 시스템 프로그래밍 언어입니다.

스타
3,146
포크
132
열린 이슈
48
마지막 커밋
16시간 전

어떤 프로젝트인가요?

Goose는 C와 Rust를 닮은 문법을 사용하며 힙이 없는 프로그래밍 언어입니다. 모든 동적 값은 컴파일러가 정적으로 관리하는 데이터 스택에 인라인으로 저장됩니다. 스택이 커지면 포인터가 이동하고, 스코프가 끝나면 메모리가 해제됩니다. 할당기, 가비지 컬렉터, 참조 카운팅, 소멸자, 라이프타임 어노테이션, unsafe 블록이 없습니다.

언어에는 커지기만 하는 배열과 커졌다 작아질 수 있는 배열이 있으며, 배열이 커져도 참조는 유효하게 유지됩니다. 상대 참조는 1, 2, 4바이트 오프셋으로 저장할 수 있고, 열거형은 각 variant의 크기에 맞춰 저장할 수 있습니다. 스레드는 각자 별도의 프로그램과 메모리 공간에서 실행되며, 타입이 지정된 큐를 통해 평탄한 값을 주고받습니다. 컴파일러는 C 파일 하나를 생성하고 extern fn을 통해 C를 직접 호출할 수 있습니다. 함께 제공되는 TinyCC 백엔드는 프로그램을 프로세스 내에서 실행합니다.

프로젝트에는 튜토리얼, 언어 레퍼런스와 명세, 그래픽·물리·UI 모듈을 아우르는 표준 라이브러리, 예제 프로그램 31개, C++ 및 Rust와 비교하는 벤치마크가 포함되어 있습니다. 프로젝트 작성자는 저장소가 사람이 작성한 언어 설계를 바탕으로 대부분 AI의 도움을 받아 만들어졌다고 설명합니다.

핵심 기능

  • 01컴파일러가 할당하는 데이터 스택으로 메모리를 관리하며, 힙 할당이나 GC가 없습니다.
  • 02배열이 커져도 참조가 유효하게 유지되는 확장 전용 배열입니다.
  • 03위치 독립적인 데이터를 만들 수 있도록 상대 참조를 1, 2, 4바이트 오프셋으로 저장합니다.
  • 04포인터 없이 크기가 달라지는 열거형과 인라인 중첩 데이터를 지원합니다.
  • 05각자 별도의 메모리를 사용하는 스레드가 타입이 지정된 큐로 통신합니다.
  • 06extern fn으로 C를 직접 호출하고 C 파일 하나로 컴파일합니다.

활용 사례

  • 가비지 컬렉터나 수동 메모리 해제 없이 시스템 코드의 메모리 모델을 탐구할 수 있습니다.
  • 인라인 레이아웃의 이점을 살릴 수 있는 파서나 그래프 구조 등 데이터 중심 프로그램을 작성할 수 있습니다.
  • 컴파일러와 문서가 대부분 AI의 도움으로 만들어진 언어를 살펴볼 수 있습니다.
  • 함께 제공되는 gfx 및 physics 모듈을 사용해 소규모 그래픽 또는 물리 프로그램을 만들 수 있습니다.

사용 전 알아둘 점

  • 메타데이터에서 이 언어를 실험적이라고 설명하므로 변경될 수 있습니다.
  • 가변 크기 요소의 배열은 순회할 수 있지만 인덱스로 직접 접근할 수는 없습니다.
  • 표시된 README에는 설치 또는 실행 명령이 없으므로 여기에는 설정 단계가 나열되어 있지 않습니다.

포함된 컬렉션

토픽

자주 묻는 질문

goose은(는) 무엇인가요?
힙 할당기나 가비지 컬렉터 없이, 컴파일러가 관리하는 데이터 스택으로 메모리 안전성을 보장하는 실험적인 시스템 프로그래밍 언어입니다. Goose는 C와 Rust를 닮은 문법을 사용하며 힙이 없는 프로그래밍 언어입니다. 모든 동적 값은 컴파일러가 정적으로 관리하는 데이터 스택에 인라인으로 저장됩니다. 스택이 커지면 포인터가 이동하고, 스코프가 끝나면 메모리가 해제됩니다. 할당기, 가비지 컬렉터, 참조 카운팅, 소멸자, 라이프타임 어노테이션, unsafe 블록이 없습니다.
goose은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
goose은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
goose은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. goose의 마지막 커밋은 2026년 11월 6일입니다.
goose은(는) 어디에 사용할 수 있나요?
가비지 컬렉터나 수동 메모리 해제 없이 시스템 코드의 메모리 모델을 탐구할 수 있습니다. 인라인 레이아웃의 이점을 살릴 수 있는 파서나 그래프 구조 등 데이터 중심 프로그램을 작성할 수 있습니다. 컴파일러와 문서가 대부분 AI의 도움으로 만들어진 언어를 살펴볼 수 있습니다. 함께 제공되는 gfx 및 physics 모듈을 사용해 소규모 그래픽 또는 물리 프로그램을 만들 수 있습니다.
goose은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/aardappel/goose

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트