antlr visitor pattern(방문자 패턴)

ozon1000의 이미지

안녕하세요! 이번에 처음 antlr을 사용하게 된 초보자입니다.

antlr의 방문자 패턴이라는 것을 정확하게 알고싶은데, 제가 아직 잘 몰라서 그런지 모르겠으나 속 시원한 관련 홈페이지를 아직 찾지 못했습니다.

혹시 많은 선배님들, 괜찮은 서적이나 링크 알고계신것이 있으시면 알려주시면 공부하는데 큰 도움이 될 것 같습니다.
읽어주셔서 감사드립니다.!!!

...!의 이미지

antlr이 방문자 패턴을 사용하는 파서를 만들어주기는 하지만 방문자 패턴이 antlr 고유의 방식인 것은 아닙니다. 방문자 패턴은 일반적으로 사용되는 디자인 패턴 중 한 가지입니다. "디자인 패턴 (https://en.wikipedia.org/wiki/Software_design_pattern)"은 프로그래밍에서 흔히 사용되는 문제 해결 전략에 이름을 붙인 것을 말합니다. 같은 이름의 책 (https://en.wikipedia.org/wiki/Design_Patterns)에서 유래한 단어입니다. 프로그래밍 패러다임에 따라 문제 해결 전략이 달라지기 때문에 함수형 디자인 패턴, OOP 디자인 패턴 등으로 구분해서 부르기도 하지만, 아무 수식어 없이 그냥 디자인 패턴이라고 하면 보통 OOP 적인 문제 해결 전략을 말합니다.

제 생각에는 visitor pattern을 바로 공부하는 것보다 strategy pattern, observer pattern, visitor pattern의 순서로 공부하는 것이 더 좋을 것 같습니다. 사실 파서 구현을 위해 선택할 수 있는 전략은 visitor pattern 뿐만 아니라 strategy pattern, observer pattern도 가능하고 그 쪽이 더 이해하기는 쉽습니다. visitor pattern은 single/multiple dispatch와 상속에 대한 충분한 이해를 필요로합니다.

디자인 패턴에 대한 책, 웹 사이트는 아주 아주 많습니다만 뭘 추천해야할 지는 모르겠군요. 그렇다고 직접 설명하자니 들여야할 시간 때문에 엄두가 안나네요. 일단 각 패턴에 대한 위키피디아 항목에서부터 시작해서 이리 저리 찾아보시면 될 것 같습니다.