DOI QR코드

DOI QR Code

Automatic Generation of Code Optimizer for DFA Pattern Matching

DFA 패턴 매칭을 위한 코드 최적화기의 자동적 생성

  • 윤성림 (동국대학교 컴퓨터공학과) ;
  • 오세만 (동국대학교 컴퓨터공학과)
  • Published : 2007.02.28

Abstract

Code Optimization is converting to a code that is equivalent to given program but more efficient, and this process is processed in Code Optimizer. This paper designed and processed Code Optimizer Generator that automatically generates Code Optimizer. In other words Code Optimizer is automatically generated for DFA Pattern Matching which finds the optimal code for the incoming pattern description. DFA Pattern Matching removes redundancy comparisons that occur when patterns are sought for through normalization process and improves simplification and structure of pattern shapes for low cost. Automatic generation of Code Optimization for DFA Pattern Matching eliminates extra effort to generate Code Optimizer every time the code undergoes various transformations, and enables formalism of Code Optimization. Also, the advantage of making DFA for optimization is that it is faster and saves cost of Code Optimizer Generator.

주어진 입력 프로그램과 의미적으로 동등하면서 좀 더 효율적인 코드로 바꾸는 것을 코드 최적화라 하며, 이런 과정은 코드 최적화기예 의해 수행된다. 본 논문에서는 코드 최적화기를 자동적으로 생성하는 도구인 코트 최적화긴 생성기를 설계하고 구현하였다. 즉 패턴 형식에 대한 표현을 입력으로 받아 기술된 형태의 최적화 코드를 찾아내는 DFA 패턴 매칭을 위한 코드 최적화기를 자동적으로 생성하는 것이다. DFA 패턴 매칭은 패턴들의 정규화 과정을 통해 패턴 검색 시 발생하는 중복 비교를 제거하여, 패턴 형태의 단순화 및 구조를 개선함으로 비용이 적게든다. DFA 패턴 매칭을 위한 코드 최적화기의 자동적 생성은 다양한 형태의 중간코드로 바뀌더라도 해당하는 코트 최적화기를 만들어야 하는 수고를 덜어줌으로써 코드 최적화에 대한 정형화(formalism)를 할 수 있다. 또한, DFA로 구성되어 최적화를 하기 때문에 최적화 속도가 빠르고, 코드 최적화기를 만드는데 필요한 시간과 비용을 절약할 수 있는 장점을 가진다.

Keywords

References

  1. A. V. Aho and S. C. Johnson, 'LR Parsing,' ACM Computing Surveys (CSUR), Vol.6, No.2, pp.99-124, Jun., 1974 https://doi.org/10.1145/356628.356629
  2. Alfred V. Aho, Mahadevan Ganapathi and Steven W. K. Tjiang, 'Code Generation Using Tree Matching and Dynamic Programming,' ACM TOPLAS, Vol.11, No.4., pp.491-516, Oct., 1989 https://doi.org/10.1145/69558.75700
  3. C. W. Fraser, A. L. Wendt, 'Automatic Generation of Fast Optimizing Code Generators,' Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation, Vol.23, No.7, pp.79-84, Jun., 1988 https://doi.org/10.1145/960116.53998
  4. Christopher W. Fraser and Todd A. Proebsting, 'Finite-State Code Generation,' ACM SIGPLAN, Vol.34, No.5, pp.270-280, May, 1999 https://doi.org/10.1145/301631.301680
  5. Christopher W. Fraser, David R. Hanson and Todd A. Proebsting, 'Engineering a Simple, Efficient Code-Generator Generator,' ACM LOPLAS, Vol.1, No.3, pp.213-226, Sept., 1992 https://doi.org/10.1145/151640.151642
  6. David A. Workman, John B. Higdon, 'The design of a parser generator,' Proceedings of the 16th annual Southeast regional conference, pp.82-86, Apr., 1978 https://doi.org/10.1145/503643.503663
  7. Diomidis and Spinellis, 'Declarative Peephole Optimization using String Pattern Matching,' ACM SIGPLAN Notices, Vol.34, No.2, pp.47-51, Feb., 1999 https://doi.org/10.1145/307903.307921
  8. Fabrice Le Fessant and Luc Maranget, 'Optimizing Pattern Matching,' ACM SIGPLAN, Vol.36, No.10, pp.26-37, Oct., 2001 https://doi.org/10.1145/507669.507641
  9. George H. Roberts, OPG: An Optimizing Parser Generators,' ACM SIGPLAN Notices, Vol.23, No.6, pp.80-90, Jun., 1988 https://doi.org/10.1145/44546.44553
  10. M. Ancona, G. Dodero, V. Gianuzzi, and M. Morgavi, 'Efficient Construction of LR(k) States and Tables,' ACM TOPLAS, Vol.13, No.1, pp.150-178, Jan., 1991 https://doi.org/10.1145/114005.102809
  11. R. G. Cattell, 'Automatic Derivation of Code Generators from Machine Descriptions,' Source ACM TOPLAS, Vol.2, No.2, pp.173-190, Apr., 1980 https://doi.org/10.1145/357094.357097
  12. Rudolf Landwehr, Hans-Stephan Jansohn and Gerhard Goos, 'Experience with an Automatic Code Generator Generator,' ACM SIGPLAN, Vol.17, No.6, pp.56-66, Jun., 1982 https://doi.org/10.1145/872726.806980
  13. Sunglim Yun and Seman Oh, 'Table-Driven Code Optimizer,' International Conference on Parallel and Distributed, Computing, Applications and Technologies, pp.59-63, Dec., 2005 https://doi.org/10.1109/PDCAT.2005.232
  14. Thomas E, Cheatham, Thomas A. Standish, 'Optimization Aspects of Compiler-Compilers,' ACM SIGPLAN, Vol.5 No.10, pp,10-17, Oct. 1970 https://doi.org/10.1145/987475.987477
  15. 오세만, 컴파일러 입문 개정판, 정익사, 서울, 2004
  16. 윤성림, 오세만, '패턴 테이블을 이용한 코드 최적화', 한국멀티미디어학회 논문지 제8권, 제11호, pp.1556-1564, 2005
  17. 윤성림, 오세만, 'DFA를 이용한 코드 최적화', 한국정보처리학회 춘계학술발표논문집, 제12권, 제1호, pp.523-526, 2005