你知道parameter和argument的不同吗,你知道syntax和semantic的区别吗?这两对词汇经常在英文技术文档中出现,以前我不知道它们的确切含义,只知道前者说的是参数,后者说的和语法相关,这样都能蒙混过关。直到有一天它们很频繁的一起露面,我才不得已去把它们知彻底。
中文解释:
parameter:形式参数(形参)
argument:实际参数(实参)
syntax:语法
semantic:语义
看到它们的中文解释,想必已经理解了一半,parameter是函数定义时的参数;argument是调用函数时,传给函数的实际值。
看stackoverflow给出的解释:
Parameters are the things defined by functions as input, arguments are the things passed as parameters. void foo(int bar) { ... } foo(baz); In this example, bar is a parameter for foo. baz is an argument passed to foo.
但语法和语义的解释不是很直白,先给出我的研究成果:
语法:词语的用法。
语义:词语或语句的含义。
举例一个语言的例子说明语法和语义:
1) “Lua java的是编写”,这句子你一定看不懂,因为它语法错误,不符合汉语的语法。
2) “Lua是Java编写的”,这句子语法正确,但是语义错误。
3) “Lua是C编写的”, 这句子,语法和语义都对。
给出stackoverflow上的解释:
Syntax is the grammar. It describes the way to construct a correct sentence. For example, this water is triangular is syntactically correct.
Semantics relates to the meaning. this water is triangular does not mean anything, though the grammar is ok
例如在Lua中:
t = {}
我们可以说表达式“t = {}”语法正确,t的语义是table。
通过上面的描述,可以给语法和语义下个很草率的结论:
语法:符合语言习惯的词语排列顺序。
语义:一个词语或者整个句子的含义,如果语法错误,那么语义无从谈起。
如果你有更好的解释,不吝赐教。
(本文包含很多语法和语义的错误,请多多包涵!)