Wednesday, December 12, 2007

关于foo与bar

今天在看google的distributed computing教程时再次发觉两个大家都应该很熟悉的字眼:foo与bar。
类似的字眼还有rhs,lhs,分别表示right hand side和left hand side。
顺便上wikipedia搜了搜foo/bar/foobar,发觉挺有来历的。

按照解释,foo的作用类似于一种元语义变量,在CS中广泛被使用于表示一个复杂系统中的任意的一个概念或部分(更多地被用于程序设计、伪代码中),如数据,变量,函数,命令等。
foo常常与bar,foobar连用。它们的作用相当于数学方程式中的x,y,没有具体意义。
在Eric. Raymond的The New Hacker's Dictionary(jargon file)一书中有描述。

foo的来历:
foo与bar放在一起是foobar,是从FUBAR[1]派生出来的。但是根据RFC3092[2]的描述,foo最早起源于20世纪30年代的卡通,"including The Daffy Doc and comic strips, especially Smokey Stover and Pogo. "。然后慢慢地被用于军事俚语。

事实上,在wikipedia上查foo与foobar会得到不同的结果,都提到了foobar不同的来源。foobar词条解释说,这个词可能是从以下几种途径来的:
1.从FUBAR派生
2.DEC公司的技术手册上大量使用得而传播
3.电子信号(这点没看懂)

anyway,它的来源已经没人能完全确定了。我们只要知道它的作用无非是类似与代数方程中的x,y就好了。

[1]FUBAR是军事中的俚语,表示Fucked Up Beyond All Recognition 或者 Fucked Up Beyond All Repair,翻译过来意思应该是"被*得老妈都不认得".......

[2]RFC3092:Etymology of "Foo": http://www.ietf.org/rfc/rfc3092.txt

--
Best wishes,
Yours, iveney
Department, of Computer Science,
Zhongshan University (Sun Yat-sen University),
Guangzhou, China

No comments: