【问题标题】:What is evaluation?什么是评价?
【发布时间】:2019-08-09 12:11:27
【问题描述】:

我一直在偶然发现这个术语(人、数学、编程、makefile 等) 我是否正确理解该术语? 评估是对某些表达式结果的计算,例如:

a + b - 表达式

为了评估它(通过数字得到一些结果),我们给变量值像这样

a = 1, b = 1

由此判断,我们得到一个结果“2”(这意味着我们用输入值将表达式评估为“2”

a = 1, b = 1)

【问题讨论】:

  • 是的,你的理解是正确的。评估是针对一组特定值找出特定表达式的结果。
  • 对表达式求值评估就是给它一个(基于赋予它包含的变量的值)。
  • C 标准中的许多术语都是为了编译器实现的利益。就应用程序员而言,简单地说,求值与执行是一样的。

标签: c math evaluation


【解决方案1】:

C 2018 5.1.2.3 2 说“表达式的评估通常包括值计算和副作用的启动。”所以,是的,在很大程度上,评估是从某个表达式计算值。在 C 中,求值还包括副作用,例如由x++ 引起的增量,它会影响x,但不会影响它所在的​​表达式的值。

5.1.2.3 2 继续说“左值表达式的值计算包括确定指定对象的身份。”这更多是关于描述 C 语言的语义而不是执行计算,所以我不会在这里进一步讨论。

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

【讨论】:

  • 好答案。在 C 的上下文中,提及副作用(超出了评估的字面定义)尤为重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2020-02-04
  • 1970-01-01
  • 2013-10-01
  • 2014-10-28
相关资源
最近更新 更多