위키득계정 ↗
기술

Starlark

Starlark기술
이전 이름
Skylark
문법의 기반
Python 계열
대표 사용처
Bazel 빌드 설정
통합 방식
응용에 인터프리터 내장
Starlark는 Python과 비슷한 문법으로 설정과 응용 확장을 표현하는 언어다. Bazel 빌드 시스템을 위해 만들어졌으며 함수를 이용해 반복되는 선언을 줄이고 더 큰 프로그램 안에 인터프리터를 내장해 사용할 수 있다.

자료와 함수를 사용하는 설정

동적 타입과 사전, 목록 등의 자료형을 제공하고 함수를 값처럼 다룬다. 렉시컬 스코프로 함수가 참조하는 이름의 범위를 정한다. 익숙한 문법으로 구조화된 자료를 표현하지만 Python 전체와 같은 언어나 실행 환경을 뜻하는 것은 아니다.

응용이 정하는 확장 기능

인터프리터를 내장하는 응용은 분야별 함수와 자료형을 추가할 수 있다. Bazel에서는 빌드 대상과 의존 관계를 선언하고 매크로를 통해 공통 로직을 정의하는 데 사용한다. 언어 자체와 응용이 제공하는 빌드 API는 역할이 다르다.

결정적인 평가와 실행 경계

같은 코드의 평가 결과가 일정하도록 설계하며 핵심 언어는 파일 시스템이나 네트워크, 시스템 시계에 직접 접근하지 않는다. 공유 자료를 불변으로 만들어 모듈의 병렬 평가를 지원한다. 다만 내장 응용이 노출하는 기능과 실행 자원 제한은 별도로 다뤄야 하며 이 성질이 무제한 메모리 사용까지 막는 것은 아니다.

관련 문서

Nickel / Bazel / Python / Dhall / Jsonnet / 함수