我的书说: 如果存在称为L的语言和称为L'的语言,则用L'编写的解释器是实现部分函数I(L)的程序:(prog(L)×D) - > P(L)(D); 使用D =数据或输入,用L'编写的Prog(L)程序用L'编写的I(L)解释器解释语言L',P(L)的解释结果。 我不明白为什么域是Prog(L)xD,为什么不只是Prog(L),如果我有一个用python编写的简单指令,如:
s=input('enter a value: ')
这个案例我理解为什么这个域是Prog(L)xD,但是如果我只是:
s='hello'
此案例没有任何输入,有人可以向我解释为什么域名是Prog(L)xD吗?
答案 0 :(得分:0)
@NealB在评论中对此进行了部分解决,但即使实际上没有数据,该域仍然只是Prog(L)xD
,只是没有数据。
事实上,没有输入的事实是其领域的一部分。可以这样想:总会有一组有效的输入。对于不带数据的东西,这不会改变 - 它的有效数据是空集。你只是指明你不会接受输入。例如,如果你有f() = 100
函数,并试图像f(23)
那样调用它,那么显然你做了一些无效的事情。