000 a
999 _c34454
_d34454
008 250718b xxu||||| |||| 00| 0 eng d
020 _a9783031464591
082 _a005.453
_bMOG
100 _aMogensen, Torben Æ.
245 _aIntroduction to compiler design
260 _bSpringer,
_c2024
_aCham :
300 _axxii, 287 p. ;
_bill.,
_c24 cm
365 _b49.99
_c
_d100.30
490 _aUndergraduate topics in computer science,
_v1863-7310
504 _aIncludes bibliographical references and index.
520 _aThe second edition of this textbook has been fully revised and adds material about loop optimisation, function call optimisation and dataflow analysis. It presents techniques for making realistic compilers for simple programming languages, using techniques that are close to those used in "real" compilers, albeit in places slightly simplified for presentation purposes. All phases required for translating a high-level language to symbolic machine language are covered, including lexing, parsing, type checking, intermediate-code generation, machine-code generation, register allocation and optimisation, interpretation is covered briefly. Aiming to be neutral with respect to implementation languages, algorithms are presented in pseudo-code rather than in any specific programming language, but suggestions are in many cases given for how these can be realised in different language flavours. Introduction to Compiler Design is intended for an introductory course in compiler design, suitable for both undergraduate and graduate courses depending on which chapters are used. This book presents techniques for making realistic, though non-optimizing compilers for simple programming languages using methods that are close to those used in "real" compilers, albeit slightly simplified in places for presentation purposes. The third edition of this textbook has been fully revised and adds material about the SSA form, polymorphism, garbage collection, and pattern matching. It presents techniques for making realistic compilers for simple to intermediate-complexity programming languages. The techniques presented in the book are close to those used in professional compilers, albeit in places slightly simplified for presentation purposes. "Further reading" sections point to material about the full versions of the techniques. All phases required for translating a high-level language to symbolic machine language are covered, and some techniques for optimising code are presented. Type checking and interpretation are also included. Aiming to be neutral with respect to implementation languages, algorithms are mostly presented in pseudo code rather than in any specific language, but suggestions are in many places given for how these can be realised in different language paradigms. Depending on how much of the material from the book is used, it is suitable for both undergraduate and graduate courses for introducing compiler design and implementation.
650 _aCompilers
650 _aComputer programs
942 _2ddc
_cBK