1、编译原理学什么?
答:学习设计和构造编译程序的一般原理、基本方法和主要实现技术,内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成,掌握编译系统的结构、工作流程及编译程序各组成部分的设计原理和常用的编译技术和方法。
2、为什么学编译原理?
答:编译原理这门课程实际蕴含着计算机科学中解决问题的思路、形式化问题和解决问题的方法,这些思路和方法除了对应用软件和系统软件的设计与开发有一定的启发和指导作用外,在提倡科学交叉不断创新的时代背景下,仍然具有非常重要的意义。编译程序的构造的原理和技术在软件工程、逆向工程、软件再工程语言转换及其他领域中都有着广泛的运用。
3、怎么学习编译原理?
答:1. 词法分析方面,掌握正则表达式,了解dfa/nfa。
2. Parsing 方面,能读懂BNF,知道AST,会写简单的递归下降parser,会用antlr之类的parser generator。 3. 优化方面,知道现代编译器的优化能力有多强,知道如何配合编译器写出高效易读的代码,避免试图outsmart编译器。 4. 会实现简单的虚拟机(stack-based,不带GC),并把四则运算表达式翻译为虚拟机指令。4、思考:在没有学习本书理论之前,如果让你写一个编译器,你是什么思路?
答:用c语言。