缘起
我们经常听说LRU或者LRU算法,它在操作系统的内存管理和Redis里面经常被提到,其原理大家都懂,可是它的中文翻译非常之迷人,让我时常怀疑我的理解能力。
下面我们分析下,找到它的真正含义,最后我们再作一下思考!
求索
--------------------------------------------------------------------------------
LRU替换策略:一般翻译为“最近最少被使用替换策略”,也有人称为“最近最久未使用替换策略”。
LRU的英文全文为least recently uesed,我们先通过英文和中文字面意思理解一下其含义
- 英文:least-最少 recently-近期 => 最近使用 => 最近使用的替换算法,可是应该被替换的是最久未被使用的呀!?为什么中文的意思是这样的?
- 中文:最近最少被使用替换算法,我还是这个疑问:可是应该被替换的是最久未被使用的啊!
- 最近最久未使用:这个意思倒是接近了,但是英文里可没有“未使用”
或许有些固定用语我不知道,那么我尝试查查least recently这个短语,可是字典没有least recently这个短语的解释,但是有more recently的解释-->最近,所以least recently是more recently的反义词,也就是最不近,大约也就是最久(或者更准确些,最久远)被使用,这下通顺了。
所以它应该被翻译为:“最久远被使用替换策略”
含义也很直观:最先被淘汰的是那些使用时间离现在最久远的
遐思
经过上面的求索,我不禁陷入了沉思。
按说计算机科学是非常讲究精确性的,所以我先假设英文是准确反映了原始意图的(其实CS领域的大牛有时候起名字也经常很随意,让大家理解起来颇为费劲),那么为什么我理解这个词就那么费劲呢?
- 我理解能力实在是太有限了,对于文字的理解要反复思考。可是我自我感觉只要正常的中文我都能顺利理解,智力虽不优秀,但是经过努力,还算是个有文化的人。
- 中文翻译不准确,以致谬种流传。
我不想自我否定,所以我认为,是中文翻译有问题,但是如果这样的话,我是越想越惊恐
- 当初翻译的人望文生义,英语不咋地,并且还没有CS知识,翻译完了还不进行自审
- 进行校对,审核的人都是摆设,没有起到作用
- 读者囫囵吞枣,反正以后也用不到,考试过去即可
- 教授讲师没有跟学生强调这个翻译的问题,以致谬种愈发流传
- 工业界和学术界似乎也不太在意这个,最终没有抑制谬种流传
不过值得欣慰的是,至少还有“最近最久未使用替换策略”这种翻译,只是这种翻译还是欠一点点“信达雅”!