GN⁺: 베리는 초경량 동적 타입 임베디드 스크립팅 언어
(berry-lang.github.io)- 이 기사는 Berry라는 초경량, 동적 타입의 내장 스크립팅 언어를 소개합니다.
- Berry는 성능이 낮은 임베디드 장치를 위해 특별히 설계되었습니다.
- Berry 인터프리터 코어의 코드 크기는 40KiB 미만이며, 4KiB 힙 이하에서 실행할 수 있습니다. 이는 ARM Cortex M4 CPU에서 Thumb ISA와 ARMCC 컴파일러를 사용하여 테스트되었습니다.
- Berry의 인터프리터는 원 패스 컴파일러와 레지스터 기반 가상 머신(VM)을 포함합니다. 모든 코드는 ANSI C99로 작성되었습니다.
- Berry에서 모든 타입이 클래스 객체는 아닙니다. int, real, boolean, string과 같은 단순 값 타입은 클래스 객체가 아니며, list, map, range는 클래스 객체입니다. 이는 성능 고려 사항 때문입니다.
- Berry의 맥락에서 "레지스터 기반 VM"이라는 용어는 일반 컴퓨팅에서의 의미와 동일합니다.
Hacker News 의견
- Berry는 40KB 런타임에 놀랍게도 풍부한 기능 세트를 갖춘 초경량, 동적 타입의 내장 스크립팅 언어입니다.
- Python/Ruby와 비슷한 언어를 실행하며, 절차적, 객체 지향, 또는 함수형 스타일을 지원합니다.
- Berry는 상수 객체를 미리 생성하고 대부분을 ROM에 넣어, MicroPython이나 Lua에서 찾아볼 수 없는 RAM을 가변 데이터에 절약하는 기능으로 두드러집니다.
- Berry는 IoT 장치용 플랫폼인 Tasmota에서 사용됩니다.
- 언어의 문서화는 포괄성과 경험 많은 개발자를 위한 "짧은 매뉴얼" 포함으로 매우 칭찬받고 있습니다.
- 일부 사용자들은 구성 언어로 사용하기 위해 패러다임이 더 적고 정적 타이핑이 있는 비슷한 언어를 원한다는 의사를 표현하였습니다.
- 다른 언어에 바인딩을 제공하는 것에 대한 제안과 함수 재개나 생성자의 가능성에 대한 질문이 있습니다.
- 사용자들은 Berry와 Lua의 성능 및 메모리 사용량 비교, 믿을 수 없는 코드를 실행하기 위한 샌드박싱 기능에 관심이 있습니다.
- 네이티브 스택 추적에서 스크립트 함수의 이름으로 스택 프레임을 표시하는 가능성에 대한 질문이 있습니다.