LR의 장점, 도구, 정리
하향식과 상향식, 실제로는 어느 쪽을 쓸까?
LR 파서의 장점
LR이 널리 쓰이는 이유 넷
상향식 파싱에서 가장 흔히 쓰는 것이 LR 계열의 파서입니다. 교재가 드는 장점은 넷입니다.
받는 문법의 넓이
LR이 LL을 품습니다
LR 파서가 받는 문법은 LL 파서가 받는 문법을 모두 포함하고 더 넓습니다. 7편의 문법처럼 좌측 재귀가 있어도 받습니다. 6편에서처럼 규칙을 바꿔 쓰지 않아도 됩니다.
컴파일러의 파서가 받는 문법은 비모호한 문법 가운데 일부라는 4편의 내용을 틀로 그렸습니다.
표는 누가 만드나
표는 도구가 만들어 줍니다
LR 파서의 상태와 표를 손으로 만드는 일은 복잡합니다. 그래서 문법을 넣으면 표를 만들어 주는 도구를 씁니다. yacc와 bison이 그런 도구입니다.
격자는 8편에서 본 교재의 표 전체를 본뜬 것입니다. 열은 ACTION 여섯, GOTO 셋입니다.
견주어 보면
두 방향을 나란히 놓으면
하향식은 규칙을 그대로 코드로 옮길 수 있어 알기 쉽지만 문법에 조건이 붙습니다. 상향식은 더 넓은 문법을 받지만 표가 복잡해 도구로 만듭니다.
대표에 적은 LL은 하향식 파싱을 표로 하는 파서입니다. 재귀 하강 파서와 같은 LL 문법을 받습니다.
지나온 길
글자가 토큰으로, 토큰이 트리로
이 강에서 지나온 길입니다. 어휘 분석기가 글자를 토큰으로 바꾸고, 파서가 토큰으로 파스 트리를 세웁니다. 1강에서 그림 한 장으로 지나간 컴파일의 앞 단계가 이만큼입니다.
다음 강의