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

问题描述:

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

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