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와 상속에 대한 충분한 이해를 필요로합니다.
디자인 패턴에 대한 책, 웹 사이트는 아주 아주 많습니다만 뭘 추천해야할 지는 모르겠군요. 그렇다고 직접 설명하자니 들여야할 시간 때문에 엄두가 안나네요. 일단 각 패턴에 대한 위키피디아 항목에서부터 시작해서 이리 저리 찾아보시면 될 것 같습니다.
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와 상속에 대한 충분한 이해를 필요로합니다.
디자인 패턴에 대한 책, 웹 사이트는 아주 아주 많습니다만 뭘 추천해야할 지는 모르겠군요. 그렇다고 직접 설명하자니 들여야할 시간 때문에 엄두가 안나네요. 일단 각 패턴에 대한 위키피디아 항목에서부터 시작해서 이리 저리 찾아보시면 될 것 같습니다.
댓글 달기