[language-agnostic] 어휘 분석기 작성의 기초를 어디서 배울 수 있습니까?

어휘 분석기를 작성하는 방법을 배우고 싶습니다. 내 대학 과정에는 파서 (및 함께 진행할 어휘 분석기)를 작성해야하는 과제가 있었지만 이것은 지침이나 피드백 (마크 이상)없이 우리에게 주어 졌기 때문에 실제로 많은 것을 배우지 못했습니다.

이 주제를 검색 한 후에는 내가있는 곳보다 몇 걸음 앞서 있다고 느끼는 영역에 초점을 맞춘 상당히 진보 된 글만 찾을 수 있습니다. 좀 더 복잡한 언어를 토큰 화하는 것을 조사하기위한 기초로 사용할 수있는 매우 간단한 언어에 대한 어휘 분석기를 작성하는 기본에 대한 토론을 원합니다.

이 단계에서는 모범 사례 나 최적화 기술에는 관심이 없지만 필수 사항에 초점을 맞추는 것을 선호합니다. 시작하는 데 유용한 리소스에는 어떤 것이 있습니까?



답변

기본적으로 어휘 분석기를 작성하는 두 가지 주요 접근 방식이 있습니다.

  1. 이 작은 튜토리얼을 추천 합니다 .
  2. lex 와 같은 렉서 생성기 도구를 사용합니다 . 이 경우 선택한 특정 도구에 대한 자습서를 읽는 것이 좋습니다.

또한 LLVM 문서 에서 Kaleidoscope 튜토리얼 을 추천하고 싶습니다 . 간단한 언어의 구현을 통해 실행되며 특히 작은 어휘 분석기를 작성하는 방법을 보여줍니다. 튜토리얼의 C ++ 및 Objective Caml 버전이 있습니다.

주제에 대한 고전 교과서는 컴파일러 : 원리, 기법 및 도구로 도 알려진 드래곤 북입니다. 그러나 이것은 아마도 “상당히 진보 된 쓰기”의 범주에 속할 것입니다.


답변

드래곤 책 은 약간 압도 될 수 있지만, 아마도 주제에 대한 확실한 가이드입니다. 언어 구현 패턴프로그래밍 언어 실용 학도 훌륭한 리소스입니다.


답변