All programs that run our world are written by humans in high-level programming languages such as Python, Java, and C, which are then compiled into low-level code and executed. Much of the technology for compiling for modern programming languages, i.e., compilers, is due to the contributions of Alfred V. Aho and Jeffrey D. Ullman, which earned them the Turing Prize, the pinnacle of computer science, in FY2020 [1]. Techniques and algorithms for lexical analysis, parsing, and code generation are important for compilers. This article describes the structure of compilers and the most important and most difficult part of compilers, parsing, especially LR parsing [7] , by clarifying the relationship between parsing methods and adding new effective examples not found in other books. This will deepen your understanding of computer software that supports present and future society. More importantly, the theory, techniques, and implementation of parsing are the principles of many other software, and will be of great benefit in the development of future software. This article is based on Dragon Book [2] and excellent textbooks [3,4,5,6].
View full abstract