【问题标题】:What are "abstract semantics" and "actual semantics"?什么是“抽象语义”和“实际语义”?
【发布时间】:2015-10-22 07:24:43
【问题描述】:

这句话在N1570(5.1.2.3-8),C11的最终草案中找到:

每个实现都可以定义抽象语义和实际语义之间更严格的对应关系。

似乎没有对“抽象和实际语义”给出定义。

【问题讨论】:

    标签: c language-lawyer


    【解决方案1】:

    草案解释了应该如何执行,并且这个描述基于C抽象机,所以它定义了一个抽象语义。但是有可能定义一个可能不同于这个抽象语义的草案的实现,这是实际语义。 5.1.2.3-6 说明了符合要求的实现:

    对一致性实现的最低要求是:

    - 对 volatile 对象的访问严格按照抽象机的规则进行评估。

    ——在程序终止时,写入文件的所有数据应与根据抽象语义执行程序所产生的结果相同。

    ——交互设备的输入和输出动态应按照 7.21.3 中的规定进行。这些要求的目的是尽快出现无缓冲或行缓冲的输出,以确保在程序等待输入之前实际出现提示消息。

    这是程序的可观察行为

    【讨论】:

      猜你喜欢
      • 2018-05-23
      • 2015-07-02
      • 2010-09-15
      • 2016-04-19
      • 2014-05-22
      • 2019-05-03
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      相关资源
      最近更新 更多