今天在学习寄存器分配的对use[M,R]定义时与老师有小争议
老师根据课本字面定义“在对变量M定值之前代码段对M的引用次数”
做题时出现代码段对变量一直没有定值,那么老师的推论是use[M,R]=0我根据use[M,R]的意义是对寄存器的访问次数
如果M未定值,引用M则访问寄存器
如果M定值,引用M则访问内存老师接受我的解释后,觉得课本对use[M,R]的定义不够明确
说改为“在对变量M未定值之前代码段对M的引用次数”则更好理解
当时感觉确实现在反思:“定值之前”与“未定值之前”有什么区别吗
联想平时的“事务完成之前”与“事务未完成之前”有何区别

解决方案 »

  1.   

    从语义的角度去讲,事务完成之前的时间段是可确定,即在"事务完成"这个节点之前.而所谓"事务未完成之前"是不确定的,因为没有确定的"事务未完成"的时间点.从程序设计的角度看,这个词不可用,因为,既然没有一个固定的时间,何来在这个时间的"之前"呢?!
    NULL与任何数进行的任何运算,结果均为NULL.
      

  2.   

    确实觉得“事务完成”是一个更严密的说明
    我们编译原理课本定义是参考陈火旺的书本的
    虽然定义的理解模糊,但也紧密
    只要在应用时从use[M,R]的实际意义来理解,而不是直接从字面
    老师对定义的修改没必要