inline == on-line?
马维达 2003-8-25
在我看来,这本来是一个没有必要提出的问题,因为我从未想过inline和on-line会被混为一谈。但在裘宗燕先生翻译的《C++程序设计语言(特别版)》一书中,他确实就这么做了,并且还给出了下面的理由:
inline。不少人用“内联”,我不喜欢这个“臆造”的新词。online原本就是一个技术词汇,在许多技术领域中使用。大家目前最熟的是AOL,美国在线,无人将它译为“美国内联”。发明“内联”者想的是对程序实体的处理方式,而“在线”一词不仅关心这种处理方式,还特别强调运行方式和情况。在各种技术领域常用的有“在线控制”,“在线处理”,“在线工作”,“在线设备”等。online function用的正是这个意思。因此我选择“在线”。
(http://www.china-pub.com/computers/bookreview/review/writer.002.htm)
inline == on-line? 尽管我的第一感觉就是“惊诧”和“荒谬”,我的第一反应还是去查词典(当然不是“金山词霸”):
Free On-Line Dictionary Of Computing
inline
<programming> (Or "unfold") To replace a function call with an instance of the function's body. Actual argument expressions are substituted for formal parameters as in beta reduction. Inlining is usually done as a compile-time transformation.
If done recklessly (e.g. attempting to inline a recursive function) the compiler will fail to terminate. If done over-enthusiastically the code size may increase exponentially, e.g. if function f calls g twice, and g calls h twice and h is inlined in g which is inlined in f (in either order) then there will be four copies of h's body in f.
See also linear argument, unfold/fold.
on-line
<jargon> 1. Ready for use. E.g. "The graph plotter's fixed and on-line again".
2. Interactive as opposed to batch. Accessible via a computer (or terminal), rather than on paper or other medium.
3. Of a user, actively using a computer system, especially the Internet. E.g "I haven't been on-line for three days."
"On-line" should be hyphenated because it is compounded from two words but the hyphen is often omitted in names of organisations or services.
恐怕不用再把上面的解释翻译出来,我们也可以清楚地看到,在inline和on-line之间,甚至没有含义上的交错,更不用说互相替换了。而没有人把AOL翻译为“美国内联”,原因很简单(或者说很“荒谬”,因为问题本身很荒谬):AOL不是AIL。
我曾经就这个问题给裘先生去信,却没有收到回信,可能是因为裘先生觉得我的说法还缺少“理由”,又或是裘先生觉得他的解释比上面的解释更“合理”。——如果是那样的话,事情就已经超出了我的理解力的范围,就如同“inline == on-line”这样一种说法远远超出了我的理解力的范围一样。怎样翻译inline自然可以讨论,可是事情要到讨论inline和on-line是否可以互换的地步,我只觉得荒谬而悲哀。