Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

“syntax”的故事

  “syntax”这个词在我刚接触编程不久就接触到了,由于大家都把它翻译为“语法”,于是在很长一段时间里我就认为这个词的含义是“语法”。后来接触了词法解析器之后才明白这个词的本意。最近在翻译一些文章,又纠结到了这个词义,于是就再探讨下这个问题。
  在中文版的Windows操作系统中,对“syntax error”一律翻译为“语法错误”。实际上这种情况下的“syntax”应该翻译为“句法”才准确,因为“syntax error”这个错误信息大部分都是在句法分析时抛出的。但是由于这个翻译已经用了几十年,它已经深入人心,所以我们只能将错就错。然而,这个“syntax”确实也可以翻译成“语法”,类似“grammar”的用法。但“syntax”更多用于表示编程语言的语法,而“grammar”则通常表示自然语言的语法。有时候为了区别他们,我们会把“grammar”翻译为“文法”来避开冲突。
  “syntax”被理解为“语法”不是很奇怪吗?实际上“syntax”被理解为“语法”是编程语言给带出来的。最初“syntax”这个词就是指“句法”(它是在16世纪时从法语中吸收的词汇 ),之所以现在会演变出“语法”的含义也是因为这个“syntax error”。在日常生活中并不需要严格的区分词法和句法,当程序员看到这样一个错误提示时就想当然的认为是“语法”上的错误。而且,这个认知的正确的,因为句法本身就是语法的一部分。久而久之,这个词就附带了“语法”的含义,而且还是特指计算机语言中的语法。
  对于“syntax”这个词,它还有两个形容词形式的派生词“syntactic”和“syntactical”。这两个派生词是等价的,通常多用前者。而通过这个形容词性的派生词又可以组成一些词组,有一个最典型的词组就是“syntactic grammar”。第一次看到这个词的时候有点摸不着头脑,这是要表达什么?其实是因为名词形式的“syntax”这个词已经被大家玩坏了,现在想明确表示“句法”的概念就必须另造新词。于是沿用了“lexical grammar”(词法)这个词组的结构,造出了同样结构的“syntactic grammar”这个词组。
  最后,由于“syntax”这个词是多义的,翻译时需要根据具体用法来判断它是指定“语法”还是“句法”。
网名:
54.146.214.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^