기타 Lobsters · 1일 전

하스켈 타입에 라켓 매크로를 얹었다는 새 프로그래밍 언어 근황

핵심 요약
  • 개발자가 하스켈의 타입 시스템과 라켓의 매크로를 결합한 실험적 프로그래밍 언어 '해킷(Hackett)'의 실행 가능한 버전을 공개했습니다.
  • 중단 위기를 겪었던 프로토타입을 다시 파고들어 정적 타입 검사, 대수적 데이터 타입, 타입클래스, 웹 서버 데모 매크로까지 실제로 동작하도록 구현했습니다.
  • Lisp 계열 문법 형태를 띠고 있지만 두 언어가 충돌할 때는 철저히 하스켈 스타일을 우선하도록 설계되었습니다.
요약 하스켈의 강력한 정적 타입 시스템과 라켓의 유연한 매크로 시스템을 결합하려는 새로운 프로그래밍 언어 프로젝트 '해킷(Hackett)'이 실제 동작 가능한 수준으로 공개되었습니다. 개발자는 약 5개월 전 초기 아이디어 단계의 프로토타입을 공개했으나 당시에는 기술적 한계에 부딪혀 개발이 사실상 중단된 상태였습니다. 하지만 약 2개월 전부터 집중적인 연구와 커뮤니티의 조언을 바탕으로 프로젝트를 재가동해 마침내 직접 실행해볼 수 있는 초기 버전을 완성했습니다. 해킷은 기본적으로 라켓 문법 규격에 따라 `#lang hackett` 선언으로 시작하며, 백그라운드 확장 기능이 켜진 닥터라켓(DrRacket)이나 라켓 모드에서 즉시 정적 타입 검사기가 동작합니다. 하스켈처럼 순수 함수형 언어를 지향해 입출력은 `IO` 모나드를 통해 처리되며, 지연 평가(laziness)를 지원하여 무한 피보나치 수열 목록을 생성한 뒤 필요한 만큼 잘라내어 출력하는 식의 작업도 매끄럽게 처리합니다. 이번 공개 버전에는 실제 동작하는 간단한 웹 서버 데모도 포함되었습니다. 내부적으로는 라켓의 동적 타입 웹 서버를 재사용하지만, 해킷에서 제공하는 인터페이스는 100% 정적 타입 검사를 통과하도록 설계되었습니다. 대수적 데이터 타입(ADT), 서버 응답 렌더링에 사용되는 타입클래스(`->Body`), 간단하고 안전하게 엔드포인트를 정의하는 매크로(`defserver`), 중위 표기법 연산자 중괄호 문법, 순수 모나드 I/O 및 `do` 표기법 매크로까지 구현되어 있습니다. 문법적으로는 Lisp 형태를 띠고 있지만 하스켈과 라켓의 철학이 충돌할 경우 철저하게 하스켈 방식을 우선시하여 개발되고 있습니다.
Sponsored · 광고