Skip to Main Content
Program transformation is used to show the correspondence between two known algorithms for translating parenthesized expressions into their polish counterparts. The first algorithm is a syntax-directed translator which produces output upon the recognition of predefined syntactic rules. The second one, suggested by Dijkstra, is of empirical nature: it performs the translation by simulating the operation of a railyard shunt. The second algorithm is more efficient than the first, but less general. This work enables one 1) to assert the correctness of the empirical algorithm, 2) to compare the relative efficiencies of the two algorithms, and 3) to gain insight into the circumstances in which syntax-directed translation may be improved by generalizing the ideas involved in Dijkstra's algorithm.