Translation

谷歌翻译辅助系统好棒

今天早上看Google Reader的时候,从Google黑板报上看到了“谷歌翻译辅助系统”(Google translate toolkit)发布的消息。开始的时候我没在意,只是顺手点了一下产品的链接,继续看其它文章了。等进去一看,却让我吃惊的有点合不拢嘴──这正式我想了很久的东西了。

我过去曾经翻译过或多或少的英文计算机相关的文章,一来锻炼英文,二来也算“造福大众”。在今年2月左右,我翻译了几篇Guido van Rossum写的《Python历史》。那时Guido刚刚开始写,我本来想的好好的,Guido出一篇,我就翻译一篇。不过翻译了几篇后我的进度就再也跟不上了。最后的一次是Guido似乎那一阵子比较闲,放出一大长篇后,没几天又放出一大长篇。Guido的英文风格让我看来有点过于复杂的感觉,不知道是不是因为他母语是荷兰语的感觉,翻译他的文字比翻译标准英语母语的人(比如Andy Hertzfeld)要吃力。

翻译Python历史:Python对动态类型的使用

This post a a Chinese translation of Guido van Rossums‘s article “Python’s Use of Dynamic Typing” on his blog named “The History of Python“.

原文地址:http://python-history.blogspot.com/2009/02/pythons-use-of-dynamic-typing.html

ABC和Python间一项重要的区别是类型系统的总体特点不同。ABC是静态类型语言,意味着ABC编译器分析程序中使用的类型并判断它们被正确的使用。如果不是,程序会被拒绝并无法运行。不像今天多数静态类型语言那样,ABC使用类型推断(像Haskell那样)而不是像你在C之类的语言中看到的显式的类型声明那样。相反的,Python是动态类型语言。Python编译器高兴的对程序中类型的使用不感兴趣,所有的类型检查都在运行的时候进行。

尽管这样看上去对于ABC是一种很大的远离,但它并不如你想象的那样不同。不像其它静态类型语言,ABC不是(不曾是?它在今天确实已经是纯历史了:-))仅仅依赖于静态类型检查来确保程序不崩溃,当所有的操作执行时,它有运行期的库来为它们再次检查参数类型。这样做是因为编译器健全的类型检查算法的一部分在最初的语言原型实现中并没有被实现。运行期的库在调式的时候同样有用,因为显式的运行期类型检查可以产生漂亮的错误信息(指向实现团队),而不是解释器毫不检查参数时就盲目的运行而引起的core dump。