什么是评价?

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 告诉我们“表达式是一系列运算符和操作数,它们指定值的计算,或者指定对象或函数,或者产生副作用,或者执行它们的组合。”因此,对于表达式的值方面,表达式指定计算,而评估执行该计算。该表达式还可以指定副作用,评估也会执行这些副作用。