▲GN⁺ 2024-11-09 | parent | ★ favorite | on: 토큰화 및 구문 분석에 Rust를 사용하는 이유(xnacly.me)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로 파서를 작성하는 방법에 대한 간단한 소개를 작성함
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로 파서를 작성하는 방법에 대한 간단한 소개를 작성함