Easy Universal Translator as an Alternative Compiler-Compiler

2019;
: pp. 105 - 109
1
Lviv Polytechnic National University, Computer Engineering Department
2
Lviv Polytechnic National University

This article deals with ways of how to implement a simple universal translator. Such universal translator may be an alternative to the compiler-compiler.

[1] Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986. ISBN 0-201-10088-6.

[2] Peter Mosses, "SIS: A Compiler-Generator System Using Denotational Semantics," Report 78-4-3, Dept. of Computer Science, University of Aarhus, Denmark, June 1978.

[3] C. Stephen Carr, David A. Luther, Sherian Erdmann, The TREE- META Compiler-Compiler System: A Meta Compiler System for the Univac 1108 and General Electric 645, University of Utah Technical Report RADC-TR-69-83.

[4] Spirit  2.5.5. https://www.boost.org/doc/libs/1_67_0/libs/spirit/doc/html/i ndex.html 12.12.2019.

[5] Lesk, M.E.; Schmidt, E. "Lex – A Lexical Analyzer Generator". Retrieved August 16, 2010.

[6] Levine, John R.; Mason, Tony; Brown, Doug (1992). lex & yacc (2 ed.). O'Reilly. pp. 1–2. ISBN 1-56592-000-7.

[7] The LLVM Compiler Infrastructure Project. Retrieved March 11, 2016.

[8] Melnyk, A., Salo, A., Klymenko, V., Tsyhylyk, L. "Chameleon - system for specialized processors high-level synthesis", Scientific-technical magazine of National Aerospace University "KhAI", Kharkiv, 2009. Nо. 5, P. 189-195.

[9] S.-I. Lee, T. Johnson, and R. Eigenmann. Cetus – an extensible compiler infrastructure for source-to-source transformation. In Proc. Workshops on Languages and Compilers for Parallel Computing, 2003.

[10] S. Lee, S.-J. Min, and R. Eigenmann. OpenMP to GPGPU: A compiler framework for automatic translation and optimization. In Proc. ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2009.

[11] Y. Liu, E. Z. Zhang, amd X. Shen. A Cross-Input Adaptive Framework for GPU Program Optimization. In Proc. IEEE International Parallel & Distributed Processing Symposium, 2009.

[12] M. Baskaran, U. Bondhugula, S. Krishnamoorthy, J. Ramanujam, A. Rountev, and P. Sadayappan. Automatic Data Movement and Computation Mapping for Multi-level Parallel Architectures with Explicitly Managed Memories. In Proc. ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2008.

[13] L.-N. Pouchet, C. Bastoul, A. Cohen, and N. Vasilache. Iterative optimization in the polyhedral mode: part I, on dimensional time. In Proc. International Symposium on Code Generation and Optimization, 2007.

[14] K. Datta, M. Murphy, V. Volkov, S. Williams, J. Carter, L. Oliker, D. Patterson, J. Shalf, and K. Yelick, “Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures,” in Proceedings of the 2008 ACM/IEEE conference on Supercomputing, 2008,p. 4.

[15] J. Ansel, Y. L. W. ans Cy Chan, M. Olszewski, A. Edelman, and S. Amarasinghe, “Language and compiler support for auto-tuning variable- accuracy algorithms,” in The International Symposium on Code Generation and Optimization, ser. CGO ’11, 2011.

[16] J. Kurzak, H. Anzt, M. Gates, and J. Dongarra, “Implementation and tuning of batched Cholesky factorization and solve for NVIDIA GPUs,” IEEE Transactions on Parallel and Distributed Systems, vol. 27, no. 7, 2016.

[17] A. Magni, C. Dubach, and M. O’Boyle, “Automatic optimization of thread-coarsening for graphics processors,” in Proceedings of the 23rd International Conference on Parallel Architectures and Compilation, ser. PACT ’14, 2014, pp. 455–466.

[18] S. Unkule, C. Shaltz, and A. Qasem, “Automatic restructuring of GPU kernels for exploiting inter-thread data locality,” in Proceedings of the 21st International Conference on Compiler Construction, ser. CC’12, 2012, pp. 21–40.

[19] Y. Yang, P. Xiang, J. Kong, M. Mantor, and H. Zhou, “A unified optimizing compiler framework for different gpgpu architectures,” ACM Trans. Archit. Code Optim., vol. 9, no. 2, pp. 9:1–9:33, 2012.

[20] C. Lattner and V. Adve, “LLVM: A compilation framework for lifelong program analysis & transformation,” in Proceedings of the International Symposium on Code Generation and Optimization: Feedback directed and Runtime Optimization, ser. CGO ’04, 2004.

[21] F. Bodin, T. Kisuki, P. Knijnenburg, M. O’Boyle, and E. Rohou. “Iterative compilation in a non-linear optimisation space,” in Workshop on Profile and Feedback-Directed Compilation, 1998.

[22] P. M. Knijnenburg, T. Kisuki, and M. F. O’Boyle, “Combined selection of tile sizes and unroll factors using iterative compilation,” The Journal of Supercomputing, vol. 24, no. 1, pp. 43–67, 2003.

[23] F. Agakov, E. Bonilla, J. Cavazos, B. Franke, G. Fursin, M. F. P. O’Boyle, J. Thomson, M. Toussaint, and C. K. I. Williams, “Using machine learning to focus the iterative optimization,” in Proceedings of the International Symposium on Code Generation and Optimization, ser. CGO ’06, 2006, pp. 295–305.

Anatoliy O. Melnyk is a Head of Computer Engineering Department at Lviv Polytechnic National University since 1994. He graduated from Lviv Polytechnic Institute with the Engineer Degree in Computer Engineering in 1978. In 1985 he obtained his Ph.D in Computer Systems from Moscow Power Engineering Institute. In 1992, he  received  his  D.Sc.  degree  at  the

Institute of Modelling Problems in Power Engineering of the National Academy of Science of Ukraine. He was recognized for his outstanding contributions to high-performance computer systems design as a Fellow Scientific Researcher in 1988. He became a Professor of Computer Engineering in 1996. From 1982 to 1994 he was a Head of Department of Signal Processing Systems at Lviv Radio Engineering Research Institute. From 1994 to 2008 he  was a Scientific Director of the Institute of Measurement and Computer Technique at Lviv Polytechnic National University. From 1999 to 2009 he was a Dean of the Department of Computer and Information Technologies at the Institute of Business and Perspective Technologies,  Lviv, Ukraine. He has served since 2000 as a President and CEO of Intron ltd. He has also been a professor at Kielce University of Technology, University of Information Technology and Management, Rzeszow, a visiting professor at University of Bielsko-Biala, John Paul II Catholic University of Lublin.

Nazar Kozak was born in 1985 in Ukraine. He received the B.S. and the M.S. degrees in computer engineering at Lviv Polytechnic National University in 2007 and 2008. He has been doing scientific and research work since 2008. His work resulted in 13 publications. Currently,  he  is  an  Assistant  at  the Computer Engineering Department, Lviv Polytechnic National University.