更改
→建构性的自指
S(x)这个程序中包含了过多的“\”和“’”符号,这就导致我们理解源代码1稍显困难,下面我们将把该程序表示成下面的图,从而让读者看得更清晰一些:
S(x)这个程序中包含了过多的“\”和“’”符号,这就导致我们理解源代码1稍显困难,下面我们将把该程序表示成下面的图,从而让读者看得更清晰一些:
[[File:jake20111317131552.jpg |center |500px]]
图5-2自打印程序源代码中的引号层次示意
图5-2自打印程序源代码中的引号层次示意
如果我们把一个计算机程序X的描述(或者称源代码)写为λ(X),则自打印程序的第一条赋值语句就相当于给q赋予了λ((CopyоPopupоControl)),即(CopyоPopupоControl)这三个程序连在一起的源代码。最后我们可以将自打印程序简写为:
如果我们把一个计算机程序X的描述(或者称源代码)写为λ(X),则自打印程序的第一条赋值语句就相当于给q赋予了λ((CopyоPopupоControl)),即(CopyоPopupоControl)这三个程序连在一起的源代码。最后我们可以将自打印程序简写为:
S(x){q=(CopyоPopupоControl)(CopyоPopupоControl)(q);}
<code>
S(x){
q=<math>\lambda (Copy_o Popup_o Control)</math>
<math>(Copy_o Popup_o Control)(q);</math>
}
</code>
源代码2:自打印程序的源码缩写
源代码2:自打印程序的源码缩写