Hacker News 의견
  • Rust의 차용 검사기(borrow checker)와 메모리 관리의 어려움으로 인해 Rust 사용에 어려움을 겪음. Rust의 함수형 프로그래밍(FP) 요소를 좋아했지만, 다른 언어를 찾기로 결정함. OCaml을 발견하고 만족스러움을 느낌

  • Rust와 PL 아이디어에 대한 경험이 부족한 것으로 보임. AST는 대수적 데이터 타입으로 정의하는 것이 더 간단할 것이라고 생각함. 매크로는 대부분의 언어에서 다르게 작동하지만, 주로 코드 중복 제거와 반복 감소를 위해 사용됨

  • Haskell로 작성한 파서는 단순성과 가독성 면에서 뛰어남. BNF와 거의 비슷하게 읽히며 기술적인 절차가 거의 없어 실제 문법에 집중할 수 있음

  • Ragel, Go, Java, C++, C로 파서를 작성한 경험이 있음. C로 JSON 파서를 작성하는 것이 Rust 코드보다 더 간단할 수 있음. eBNF로 파서를 만들 수 있는 포화점에 도달할 때까지 파서 인프라가 발전함

  • Rust로 eBPF 디스어셈블러와 에뮬레이터를 작성했으며, Rust가 파싱 작업에 적합하다고 생각함. 그러나 매크로 사용이 언어 내에서의 작업과는 다르게 느껴짐

  • Rob Pike의 Go에서의 렉시컬 스캐닝에 대한 강연을 좋아함. 교육적이고 우아한 접근법임

  • 파서 조합기 라이브러리를 사용하여 고성능 프로토콜 파서를 임베디드 환경에 배포할 수 있음. 동일한 라이브러리를 사용하여 임베디드 프로토콜 파서를 작성할 수 있음

  • Rust에서 전체 AST 파서를 작성할 때 구체적인 AST 타입의 계층 구조를 표현하는 것이 어려웠음. 이상한 타입 트릭과 매크로를 사용해야 했음

  • sqlite 구문을 파싱하는 것은 어려운 작업임. sqlite는 영감을 주는 소스임. 레일로드 다이어그램이 매우 유용하며, 레몬 파서 생성기는 충분한 인정을 받지 못함

  • 대수적 데이터 타입을 가진 언어는 sqlite 구문 파싱에 적합함. Typescript도 좋은 선택이 될 수 있음. Rust로 파서를 작성하는 방법에 대한 간단한 소개를 작성함