编译原理中的“程序的结构通常是由递归规则表示的”是什么意思

问题描述:

编译原理中的“程序的结构通常是由递归规则表示的”是什么意思
原句是:
程序的结构通常是由递归规则表示的,例如,我们可以用下面的规则来定义表达式:
(1)任何标识符是表达式.
(2)任何常数(整常数、实常数)是表达式.
(3)若表达式1和表达式2都是表达式,那么:
表达式1+表达式2 表达式1* 表达式2
(表达式1)
都是表达式
不太懂什么是递归表示
是不是说一个表达式和另一个表达式在一起还是一个表达式嗯呢?
可是这样只符合(3)啊,(1)和(2)又说明了什么呢?

递归都要包含两个内容,第一是初值或者初始条件的选择,第二才是递归关系的表达,也就是递推表达式.如果(1)和(2)没有,递归定义是不完整的.你肯定学过fibonacci数列以及用递归程序编写fibonacci数列,还有阶乘的例子....