【发布时间】:2015-10-22 07:24:43
【问题描述】:
这句话在N1570(5.1.2.3-8),C11的最终草案中找到:
每个实现都可以定义抽象语义和实际语义之间更严格的对应关系。
似乎没有对“抽象和实际语义”给出定义。
【问题讨论】:
标签: c language-lawyer
这句话在N1570(5.1.2.3-8),C11的最终草案中找到:
每个实现都可以定义抽象语义和实际语义之间更严格的对应关系。
似乎没有对“抽象和实际语义”给出定义。
【问题讨论】:
标签: c language-lawyer
草案解释了应该如何执行,并且这个描述基于C抽象机,所以它定义了一个抽象语义。但是有可能定义一个可能不同于这个抽象语义的草案的实现,这是实际语义。 5.1.2.3-6 说明了符合要求的实现:
对一致性实现的最低要求是:
- 对 volatile 对象的访问严格按照抽象机的规则进行评估。
——在程序终止时,写入文件的所有数据应与根据抽象语义执行程序所产生的结果相同。
——交互设备的输入和输出动态应按照 7.21.3 中的规定进行。这些要求的目的是尽快出现无缓冲或行缓冲的输出,以确保在程序等待输入之前实际出现提示消息。
这是程序的可观察行为。
【讨论】: