[Show HN] 오직 값 전달(pass-by-value) 방식만 지원하는 경량 프로그래밍 언어 공개

·

경량 인터프리터 프로그래밍 언어 'Herd'가 리스트와 딕셔너리를 포함해 모든 것을 값(value)으로 처리하고 값 전달(pass-by-value)만을 지원함으로써, 함수의 부작용을 제거하고 참조 순환을 불가능하게 만드는 특징을 공개했다.

#인터프리터언어#herd

AI 요약

핵심 인사이트

  • 경량 인터프리터 언어 'Herd'는 모든 데이터 유형을 값(Value)으로 취급하고 오직 값 전달(pass-by-value)만을 지원하여, 리스트와 딕셔너리를 포함한 복합 자료형을 함수에 전달할 때도 원본에 부작용(side-effects)이 발생하지 않도록 보장한다.
  • 이러한 엄격한 값 기반 설계의 편리한 결과로, Herd 언어에서는 참조 순환(Reference cycles)이 원천적으로 불가능하다.
  • 이로 인해 참조 카운팅 시스템이 사이클 감지 메커니즘 없이도 효율적인 가비지 컬렉터(GC) 역할을 수행할 수 있다.

주요 디테일

  • Herd는 참조 타입(문자열, 리스트, 딕트)에 대해 참조 카운팅(reference counting)을 사용하며, 수정 시 참조가 하나일 경우 복사 없이 인플레이스(in-place)로 수정하고 참조가 둘 이상일 경우에만 수정된 얕은 복사본(shallow copy)을 생성하는 방식으로 동작한다.
  • 변수 정의 시 x = 1처럼 불변(immutable) 변수를 선언하거나 var y = 2처럼 가변(mutable) 변수를 선언하고 set y = 3으로 수정할 수 있다.
  • 지원하는 기본 타입에는 64비트 부동 소수점 number, string, 순서 있는 컬렉션인 list, 키-값 쌍 컬렉션인 dict 등이 포함된다.
  • Herd는 'Mutable Value Semantics'를 사용하는 Swift와 유사한 아이디어를 공유하지만, Swift보다 훨씬 단순하고 동적 타이핑을 사용하며, 배열에 대해 복사 쓰기(copy-on-write)를 사용하는 Matlab/R보다 참조 카운트 추적을 더 안정적으로 수행하여 복사를 덜 자주 수행한다.

출처:HACKERNEWS
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...