Generators in lone lisp
Lone Lisp에 새롭게 도입된 제너레이터(generator)는 반복(iteration)의 기반이 될 전용 타입으로, 기존의 delimited continuations보다 효율적이고 단순한 방식입니다.
세미코루틴(semicoroutines) 개념을 적용하여, 제너레이터는 호출자에게만 제어를 넘기고 받는 구조로 설계되어, 복잡한 스택 복사(memcpy)를 제거하고 스택 전환(switch)만으로 동작합니다.
이로써, 제너레이터는 함수 호출과 값 반환의 자연스러운 흐름을 유지하며, 실행 상태를 스택 구조로 명확히 관리해 안정성과 성능을 동시에 확보합니다.
또한, yield 프리미티브는 현재 제너레이터 상태를 저장하고 호출자 스택으로 복귀하는 역할을 하며, 반복적이고 무한한 데이터 생성에도 적합한 구조를 제공합니다.
결과적으로, Lone Lisp는 이번 제너레이터 도입으로 반복 처리의 효율성과 구현 편의성을 크게 향상시켜, 향후 다양한 반복 구문과 이터레이션 기능 확장의 토대를 마련하였습니다.