ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인터프리터...21
    일지 2020. 12. 1. 15:20

    역 폴란드 표기법을 사용한 식의 분석

    식의 우선순위에 따라 식을 후치 기법으로 변환하는 것을 역 폴란드 표기법이라고 하며 정렬된 식은 괄호와 우선순위가 제거되며 앞에서부터 순서대로 읽어서 사용할 수 있게 된다.

    역폴란드 표기법 한글로 표기
    a + b a b +   a에 b를 더한다
    a + b + c a b + c +   a에 b를 더한 결과에 c를 더한다
    a + b * c a b c * +   a에 b와 c를 곱한 결과를 더한다
    (a + b) * c a b + c *   a에 b를 더한 결과에 c를 곱한다

     

    변환 패턴과 변환 방법

    역 폴라드 표기법으로 변환할 때 우선순위가 더 높은 토큰이 입력되는 경우 변환을 잠시 미루고 우선순위가 높은 토큰을 먼저 처리한다.

     

    이를 적용해 변환하는 방법은 다음과 같다.

    1. 요소의 우선순위를 정한다.
      1. * /
      2. + -
      3. (
    2. 식을 변환한다.
      1. 변수나 상수면 그대로 출력
      2. ( 면 PUSH
      3. ) 면 스택의 탑이 ( 가 될 때까지 POP 후 출력 ( 는 POP 후 제거
        • (가 없으면 오류
      4. 마지막 요소면 스택의 모든 요소를 POP 후 출력
        • ( 가 있으면 오류
      5. 그 외의 경우 스택의 탑이 입력된 것 이상의 우선순위를 가지면 POP 후 출력 아니면 PUSH

     

    평가 방법

    역 폴란드 표기법으로 변환 후에는 앞에서부터 순서대로 읽어서 평가하면 된다. 평가 방법은 다음과 같다.

    1. 변수나 상수면 PUSH
    2. 연산자면 POP 한 값을 우측 값으로, 다시 POP 한 값을 왼쪽 값으로 하여 연산 후 결과를 PUSH
    3. 마지막 요소일 때 스택에서 POP 하여 결과로 사용

     

    댓글

Designed by Tistory.