一、前言
编译原理这门课介绍的是程序设计语言翻译的原理与技术,大略可分为词法分析->语法分析->语义分析及中间代码生成->中间代码优化->目标代码生成五个步骤,刚开始看这编译原理简明教程这本书时,里面的新概念多的使人晕头转向,因为缺乏实践性的学习,只认识了一些新词汇和概念,但我想这些词汇和概念或许可能就是编译原理的基础吧,那就勉强先把基础学牢实点,然后再看进阶点的书籍,动手完成书本中所介绍的编译工具,为了使自己印象更加深刻,写了这篇博客。
二、编译原理中的前端和后端
概念上,有时会把编译程序划分为编译前端和编译后端。前端主要由源语言有关,但与目标机无关的那些部分组成,这些部分通常包括词法分析,语法分析,语义分析与中间代码生成,有的代码优化工作也可以包括在前端。
后端包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成等。后端不依赖于源语言,仅依赖于中间语言。
三、文法
文法是描述语言的语法结构的形式规则,即语法规则,这些规则必须是准确的,易于理解的,而且要有很强的描述能力,足以描述各种不同的结构。由这种规则所形成的程序语言应有利于句子的分析和翻译。
这里以一句中文 ” 我是大学生” 来分析该句子的构成规则,以下先列出一组语法规则:
<句子> -> <主语><谓语>
<主语> -> <代词>|<