언어를 만드는 기반
반복되는 작업을 함수로 묶는 것처럼 문법과 언어 기능을 확장할 수 있다. 매크로는 단순한 문자열 치환과 달리 프로그램 구문을 다루는 구성이다. 여러 모듈이 목적에 맞는 언어를 사용하도록 조직하는 접근도 지원한다.
범용 개발 기능
그래픽 사용자 인터페이스와 웹, 수학 등 여러 라이브러리를 제공한다. 패키지 시스템과 편집기 지원을 통해 추가 도구를 활용할 수 있다. 언어 개발만을 위한 실험 도구가 아니라 일반 응용 프로그램을 작성하는 환경이기도 하다.
계약과 타입의 선택
고차 계약과 점진적 타입 관련 기능을 생태계에서 사용할 수 있다. 동적 언어에서 계약을 검사하는 일과 정적 타입 검사, 기호 검증은 서로 다른 작업이다. 선택한 언어 확장과 라이브러리가 실제로 제공하는 보장을 구분한다.
관련 문서
Rosette 프로그래밍 언어 / Flix / Souffle / Idris 2