http://ideone.com/DoH9y
계산기 숙제글 올라올때마다 링크를 걸어주는 코드에영 ㅋㅋ
기반 이론은 재귀하강 파싱, 정확하게는 Strong LL(0) 문법에 따라서
재귀하강 파싱을 수행하며, 부산물로 중간중간 계산도 함
컴파일러 이론 파싱 부분을 보면 알 수 있을거에요
저 코드는 계산을 하지만, 변경해서 print 를 중간중간 하게 하면
재미있게도 postfix 식 출력도 할수 있고요,
이름이 재귀하강 파싱이라 ,
진짜 코드 자체가 함수를 재귀적으로 호출하면서 파싱을 수행하는데요
결국은 함수의 호출도 스택프레임을 사용한다는 점에서
infix 를 postfix 로 바꾸는 과정에서 스택 자료구조를 이용하는것과 일맥상통함
진짜 근원적으로는 pushdown automata 죠
저 방식은 우아한 점이 수식을 단 한번 스캔하죠,
postfix 로 바꾼뒤에 계산 (2번 스캔) 이 아니라
수식을 파싱하면서 동시에 계산이에요
컴파일러 이론을 배우지 않더라도, 재귀 하강 파싱은
알아두는게 좋다고 생각해요,
여러가지로 응용할 수 있다고 생각함
개념글 추천버튼 누르셈
이해가 쉽게 저거 만들때 쓴 grammar를 주석으로 넣었으면 어떨까 하는데ㅋㅋ
ㄴ 주석 넣어서 다시 링크걸어야 겠어영 ㅋㅋ
컴돌이가 이걸 봐야 하는데 ㅋㅋ