


파싱에서 Lookahead란 무엇입니까?
Lookahead는 파서가 입력 스트림의 다음 토큰이나 토큰을 미리 엿보고 해당 정보를 사용하여 프로그램의 구조를 결정할 수 있도록 하는 일부 프로그래밍 언어의 기능입니다. 실제로 구문 분석하기 전에 입력 스트림의 다음 항목입니다. 이는 문장을 여러 방법으로 구문 분석할 수 있는 경우와 같이 문법의 모호성을 해결하는 데 유용할 수 있습니다. "고양이가 쥐를 쫓았어" 또는 "고양이가 쥐를 쫓았어"로요. 이러한 모호성을 해결하기 위해 파서는 예측을 사용하여 다음 토큰을 미리 살펴보고 어떤 구문 분석이 올바른지 결정할 수 있습니다. 다음 토큰이 "the"이면 첫 번째 구문 분석이 정확하지만 다음 토큰이 "chased"이면 두 번째 구문 분석이 올바른 것입니다.
Lookahead는 사용되는 언어 및 구문 분석기에 따라 다른 방식으로 구현될 수 있습니다. 미리보기를 구현하는 몇 가지 일반적인 기술은 다음과 같습니다. 왼쪽 재귀: 이 기술에서 파서는 다음 토큰을 구문 분석하는 방법을 결정하기 위해 현재 토큰에서 수집한 정보를 사용하여 입력 스트림의 나머지 부분을 구문 분석하기 위해 자신을 재귀적으로 호출합니다.
2. 오른쪽 재귀: 이 기술에서 파서는 다음 토큰을 구문 분석하는 방법을 결정하기 위해 현재 토큰에서 수집한 정보를 사용하여 이전 토큰을 구문 분석하기 위해 자신을 재귀적으로 호출합니다.
3. 예측 구문 분석: 이 기술에서 구문 분석기는 통계 모델을 사용하여 입력 스트림의 다음 토큰을 예측하고 해당 예측을 사용하여 구문 분석을 안내합니다. CYK 구문 분석: 이 기술에서 구문 분석기는 값 테이블을 사용하여 입력 스트림에 대해 가능한 구문 분석 트리를 추적하고 예측 정보를 사용하여 검색 공간을 정리하고 올바른 구문 분석 트리를 찾습니다. 전체적으로, 예측은 다음과 같은 강력한 기능입니다. 파서가 자연어 처리 작업에서 모호성을 처리하는 데 도움이 될 수 있지만 계산 비용이 많이 들고 특정 사용 사례에 따라 항상 필요한 것은 아닐 수도 있습니다.



