제 컴파일러 디자인 교수는 성명을 평가하는 동안 모든 토큰을 후위 표기법으로 변환한다고 전했습니다. 함수 호출 외의 모든 것은 중위 표기법으로되어 있으므로 접미사로 변환해야합니다. 함수는 접두사로 중침 표기법으로되어 있지 않습니다. 그래서 그들은 개종해야합니다. 접두어 표기법으로 +(a,b)
또는 +ab
과 동등한 것으로 중기의 a+b
이 증명 될 수 있습니다.접두어 표기법에 대한 접미사의 이점
그러나 왜 우리는 모든 것을 후위 기호로 바꾸고 대신 표기법을 바꾸어야하는지 이해하지 못합니까? 함수는 이미 접두어로되어 있으므로 비 함수 엔티티를 접두사 표기법으로 변환하고 역순으로 실행하는 것이 더 빠르지 않아야합니까?
감사합니다. 의심의 여지가 없습니다. 그러나 인터프리터에 갈 경우 구문 분석 및 접미사/접두사로 변환하면 시스템의 병목 현상이 발생합니까? – Crimson7
나는 그것을 심각하게 의심한다. 파싱 비용은 일회성으로 거의 확실하게 병목 현상이 아닙니다. 일반적으로, 파싱하는 동안 어리석게 비효율적 인 일을하지 않으면 문제가되지 않습니다. – templatetypedef
또한, 다른 것보다 더 느린 것이 확실합니까? 나는 두 가지 방법으로 변환을 수행 할 때 알고있는 알고리즘을 생각하고 있으며 런타임 측면에서 대략 비교할 수 있어야합니다. – templatetypedef