什么是评价?
What is evaluation?
我已经被这个术语绊倒了一段时间(人、数学、编程、makefile 等)
我对这个词的理解正确吗?
评估是对某些表达式结果的计算,例如:
a + b - expression
为了评估它(通过数字得到一些结果)我们给变量值,就像这样
a = 1, b = 1
据此判断,我们得到结果“2”(这意味着我们使用输入值
将表达式计算为“2”
a = 1, b = 1)
C 2018 5.1.2.3 2 说“表达式的求值 通常包括值计算和副作用的启动。”所以,是的,在很大程度上,评估是从某些表达式中计算值。在 C 中,评估还包括副作用,例如由 x++
引起的增量,它会影响 x
但不会影响它所在的表达式的值。
5.1.2.3 2 继续说“左值表达式的值计算包括确定指定对象的身份。”这更多的是关于描述 C 语言的语义而不是关于执行计算,所以我不会在这里进一步讨论它。
6.5 1 告诉我们“表达式是一系列运算符和操作数,它们指定值的计算,或者指定对象或函数,或者产生副作用,或者执行它们的组合。”因此,对于表达式的值方面,表达式指定计算,而评估执行该计算。该表达式还可以指定副作用,评估也会执行这些副作用。
我已经被这个术语绊倒了一段时间(人、数学、编程、makefile 等) 我对这个词的理解正确吗? 评估是对某些表达式结果的计算,例如:
a + b - expression
为了评估它(通过数字得到一些结果)我们给变量值,就像这样
a = 1, b = 1
据此判断,我们得到结果“2”(这意味着我们使用输入值
将表达式计算为“2”a = 1, b = 1)
C 2018 5.1.2.3 2 说“表达式的求值 通常包括值计算和副作用的启动。”所以,是的,在很大程度上,评估是从某些表达式中计算值。在 C 中,评估还包括副作用,例如由 x++
引起的增量,它会影响 x
但不会影响它所在的表达式的值。
5.1.2.3 2 继续说“左值表达式的值计算包括确定指定对象的身份。”这更多的是关于描述 C 语言的语义而不是关于执行计算,所以我不会在这里进一步讨论它。
6.5 1 告诉我们“表达式是一系列运算符和操作数,它们指定值的计算,或者指定对象或函数,或者产生副作用,或者执行它们的组合。”因此,对于表达式的值方面,表达式指定计算,而评估执行该计算。该表达式还可以指定副作用,评估也会执行这些副作用。