Code Generation Techniques in Compiler Design: Conceptual and Structural Review

  IJRES-book-cover  International Journal of Recent Engineering Science (IJRES)          
  
© 2022 by IJRES Journal
Volume-9 Issue-3
Year of Publication : 2022
Authors : Johnson Oluwatobi Akanbi, Allen Akinkitan Ajose, Kareem Afiss Emiola
DOI : 10.14445/23497157/IJRES-V9I3P101

How to Cite?

Johnson Oluwatobi Akanbi, Allen Akinkitan Ajose, Kareem Afiss Emiola, "Code Generation Techniques in Compiler Design: Conceptual and Structural Review," International Journal of Recent Engineering Science, vol. 9, no. 3, pp. 1-6, 2022. Crossref, https://doi.org/10.14445/23497157/IJRES-V9I3P101

Abstract
A compiler is designed as a language translator to interpret program instructions from high-level language or object layer to machine code. Compiler configuration covers essential interpretation instruments and blunders discovery and recovery. It incorporates lexical components, linguistic structures, and semantic mechanisms as the front end and code generation and streamlining as the back end. In this paper, selected code generation techniques were structurally x-rayed. The structural review revealed the peculiar strategy and individual traits that serve as a determinant factor for specific applications and circumstances for execution.

Keywords
Code generation, Compiler design, Computing construct, Syntactic parsing, Intermediate execution.

Reference
[1] Gabriel A. Ayeni, and A. Nathaniel Ojekudo, “Theory and Computer Programming for Optimization of Combinatorial Problems,” International Journal of Engineering in Industrial Research (IJIRES), vol. 2, no. 2, 2021.
[CrossRef]  [Publisher Link]
[2] H.J. Brainkart, Relevance of Peephole Optimization to Compiler Design, 2021, [Online]. Available: https://www.javatpoint.com/threeaddress-code
[3] T.M. Douglas, and A.N. Ojekudo, “Juxtaposing Python with BASIC in the Context of Introductory Programming,” Journal of Environmental Science, Computer Science and Engineering Technology (JECET), vol. 9, no. 1, pp. 15-20, 2020.
[CrossRef] [Google Scholar] [Publisher Link]
[4] A.S. Edwards, and J. Zeng, “Code Generation in Columbia Esterel Compiler,” EURASIP International Journal on Embedded Systems, 2006.
[CrossRef] [Google Scholar] [Publisher Link]
[5] Ghanzala Shafi Sheikh, and Noman Islam, “A Qualitative Study of Major Programming Languages to Computer Science Students,” Journal of Information and Communication Technology, vol. 10, no. 1, pp. 24-34, 2016.
[Google Scholar] [Publisher Link]
[6] Geeks for Geeks, Peephole Optimization in Compiler Design, 2018, [Online]. Available: https://www.geeksforgeeks.org/peephole-optimization-in-compiler-design/
[7] R. Steven Glanville, and Susan L. Graham, “A New Method for Compiler Code Generation,” Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 231-254, 1978.
[CrossRef] [Google Scholar] [Publisher Link]
[8] A.N. Ojekudo, “Computer Programming Bridge,” Port Harcourt: Emmanest Ventures and Data Communication, 2019.
[9] M. Poole, and C. Whyley, Lexical and Semantic Design of Compilers, 2012. [Online]. Available: www.compsci.swan.ac.uk /cschris /compiler
[10] Wikipedia, The Technical Analysis of Code Generation for Multi Parse Compiler, 2021. [Online]. Available: https://en.wikipedia.org/wiki/Code_generation_%28compiler%29#cite_note-MuchnickAssociates-1
[11] Alfred Aho et al., Compilers Principles, Techniques & Tools, Addison Wesley, 2006.
[12] Saumya K. Debray et al., “Compiler Techniques for Code Compaction,” ACM Transactions on Programming Languages and Systems, vol. 22, no. 2, pp. 378-415, 2000.
[CrossRef] [Google Scholar] [Publisher Link]
[13] Alfred V. Aho, Mahadevan Ganapathi, and Steven W.K. Tjiang, “Code Generation Using Tree Matching and Dynamic Programming,” ACM Transactions on Programming Languages and Systems, vol. 11, no. 4, pp. 491-516, 1989.[CrossRef] [Google Scholar] [Publisher Link]
[14] A.V. Aho, and S.C. Johnson, “Optimal Code Generation for Expression Trees,” Journal of the ACM, vol. 23, no. 3, pp. 488-501, 1976.
[CrossRef] [Google Scholar] [Publisher Link]
[15] A. Balachandran, D.M. Dhamdhere, and S. Biswas, “Efficient Retargetable Code Generation Using Bottom-Up Tree Pattern Matching,” Journal of Computer Languages, vol. 15, no. 3, pp. 127-140, 1990.
[CrossRef] [Google Scholar] [Publisher Link]
[16] H. Emmelmann, F.W. Schroer, and R. Landwehr, “BEG — A Generator for Efficient Back Ends,” ACM SIGPLAN Notices, vol. 24, no. 7, pp. 227-237, 1989.
[CrossRef] [Google Scholar] [Publisher Link]
[17] Christopher W. Fraser, “A Language for Writing Code Generators,” ACM SIGPLAN Notices, vol. 24, no. 7, pp. 238-245, 1989.
[Google Scholar] [Publisher Link]
[18] Christopher W. Fraser, Robert R. Henry, and Todd A. Proebsting, “BURG—Fast Optimal Instruction Selection and Tree Parsing,” ACM SIGPLAN Notices, vol. 27, no. 4, pp. 68-76, 1992.
[Google Scholar] [Publisher Link]
[19] Deepak Singh, and Mohan Rao Mamdikar, “Identify a Person from Iris Pattern using GLCM features and Machine Learning Techniques,” SSRG International Journal of Computer Science and Engineering, vol. 7, no. 9, pp. 25-29, 2020.
[CrossRef] [Google Scholar] [Publisher Link]
[20] Christoph M. Hoffman, and Michael J. O’Donnell, “Pattern Matching in Trees,” Journal of the Association for Computing Machinary, vol. 29, no. 1, pp. 68-95, 1982.
[Google Scholar] [Publisher Link]
[21] David R. Chase, “An Improvement to Bottom-up Tree Pattern Matching,” Conference Record of the ACM Symposium on Principles of Programming Languages, pp. 168-177, 1987.
[Google Scholar] [Publisher Link]