编译原理是一门研究设计和构造编译程序原理和方法的课程,是计算机各专业的一门重要专业基础课。编译原理主要学习的是编译程序结构及各部分功能、文法和语言 的基本概念和表示、词法分析、语法分析、属性文法与语法制导翻译技术、符号表、运算时存储空间的组织、代码优化与目标代码生成、并行编译技术概述等。学习
编译原理这门课程实际蕴含蕴含着计算机学科中解决问题的思路、形式化问题和解决问题的方法,这些思路和方法除了对应用软件和系统软件的设计与开发有必定的启发和指导做用外,在提倡学科交叉不断创新的时代背景下,仍然具备很是重要的意义。编译程序构造的原理和技术在技术工程、逆向工程、软件再工程、语言转换及其余领域都有着普遍的应用。学习编译原理、能掌握编译系统的结构、工做流程及编译程序各组成部分的设计原理和经常使用的编译技术和方法,为从此从事应用软件和系统软件的开发打下必定的理论和实践基础。优化
一、作好思想准备,不要畏难,书一遍没看懂不要紧,要多看几遍,甚至几十遍,不是有句话么:书读百遍,其义自见;还要结合课本后面的习题多作思考和类比,这些都是最基本的办法,在 学习的过程当中概括出本身的难点和疑惑点,而后重点突破;
二、本身动手作一个虚拟机,在虚拟机的基础上开发本身的语言和编译器,增强实践,固然并不须要你把这些作的多么复杂,主要目的仍是为告终合理论的学习,是为了更加深入的理解 书本上那些抽象的东西;可是谁又敢说,你不能由此发明了未来流行世界的新的语言和新的编译器呢?
三、直接专一于编码(Lex,Yacc等)的研究,而后去配合理论的学习,能够在第一次学习的过程当中忽略一些内容,等之后用的时候再来学习.编码
先完成
1 、过滤空白字符和注释
2 、识别常量
3 、把字符形式的表示转化为编译器的内部标识
4 、识别标识符(ID)和关键字
5 、识别符号 + - * / [ ( { ; : ::
上面都作到了,再考虑语法分析,spa