프로젝트 소개
Slate는 들여쓰기를 사용하여 구조를 정의하는 동적 타이핑 언어로, 점진적 타입 체커를 사용합니다. 실제 이벤트 루프 기반의 async/await, 제너레이터, 모듈, 패턴 매칭, 프로토타입 대신 클래스, 그리고 대수적 데이터 타입을 지원합니다. API 서버용으로 설계되어 HTTP(llhttp 경유), HTTP/2(nghttp2 경유), TCP, TLS, 파일 시스템 작업, 프로세스, 정규식 및 JSON을 처리합니다.
이 언어는 JavaScript로 컴파일되므로, 동일한 프로그램을 자체 인터프리터, Node.js, QuickJS 또는 Lath 프레임워크를 사용하는 브라우저에서 실행할 수 있습니다. `slate js` 명령은 런타임과 프레임워크가 포함된 단일 독립형 JavaScript 파일을 출력하여 번들러와 node_modules의 필요성을 제거합니다.
점진적 타이핑을 통해 선택적 어노테이션이 가능하며, 타입 선언은 패턴 매칭과 런타임 체크 모두에 사용됩니다. 주요 기능으로는 후위 `match` 표현식, 제네릭 타입, Promise를 반환하는 async 함수가 있습니다. API 서버는 내장된 라우터 및 핸들러 시스템을 사용하며, 스크립트는 shebang 실행을 지원합니다.
구현에는 스택 머신과 (클로저 사이클로 인한) 추적 가비지 컬렉션이 사용되었으며, 이벤트 루프는 libuv를 기반으로 구축되었습니다. Homebrew를 통해 macOS Apple silicon에서 사용할 수 있으며, 다른 플랫폼은 소스 빌드가 필요합니다. 문서는 언어 및 라이브러리 레퍼런스를 포함합니다.
주요 제외 사항으로는 문학적 프로그래밍(literate programming) 지원과 JavaScript 백엔드용 일부 표준 라이브러리 모듈이 있습니다. `defer` 문은 가비지 컬렉션으로 인해 의도적으로 제외되었습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.