【问题标题】:Statements and state声明和状态
【发布时间】:2010-05-13 16:06:11
【问题描述】:

“陈述”一词以“状态”开头,这是否有更深层次的含义,或者这只是一个奇怪的巧合?请注意,英语不是我的母语,所以答案对你来说可能很明显,但对我来说不是;)

【问题讨论】:

  • www.dictionaryoverflow.com? ;)

标签: language-agnostic state imperative-programming


【解决方案1】:

英文单词“statement”确实源自“state”的动词形式,但编程术语“state”和“statement”之间没有任何有意义的关联。编程语言中的语句只是一个句法结构,并不意味着涉及任何状态。

【讨论】:

  • 没有状态的语句有什么用?我无法想象一个不会导致状态改变的真实世界语句,否则执行它是没有意义的,不是吗?
  • 声明不一定是“执行”的。许多编程语言都包含纯声明性语句,例如 Java 中的 import 语句。这些会影响编译单元中可见的符号,但不一定会导致生成任何可执行代码。 Now 语句确实会影响处理它们的编译器的状态,但所有语法元素都是如此。或者考虑空语句“;”在 C/C++ 中,它什么都不做,但仍被视为“语句”。
【解决方案2】:

正如 Christopher 所指出的,从词源上看,答案是肯定的。

但是,我认为在编程中也存在联系。语句(与表达式相反,表达式是可以评估其值的句法元素)是表示命令式命令的句法元素。 (您可能听说在 C 中,许多语句(例如赋值)也是表达式。)

因此,语句必然涉及程序状态的某些更改(例如x := 5),或强制执行某些控制流(例如GOTO 10)。 您会注意到,纯函数式语言(例如 Haskell)不包含语句,而仅包含表达式。

【讨论】:

    【解决方案3】:

    它源自“状态”的verb sense

    【讨论】:

      【解决方案4】:

      命令式编程范式的关键概念是程序由一系列语句表示,其中一个语句会改变程序状态。

      所以你改变了状态,或者你可以说你实际上是state(声明)每个statement的东西。对我来说,-ment 后缀似乎是在这里使用的第三种意义(“行动的手段或工具”)。语句是在命令式程序中陈述某些内容的工具。

      在普遍使用中,-ment 后缀似乎在其第一意义上使用(“动作、过程或技能”)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2020-06-26
        • 2015-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多