什么是#34;抽象语义"和"实际语义"?

时间:2015-10-22 07:24:44

标签: c language-lawyer

这句话发自N1570(5.1.2.3-8),即C11的最终稿:

  

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

似乎没有给出关于"抽象和实际语义的定义"。

1 个答案:

答案 0 :(得分:1)

草案解释了如何执行,并且此描述基于C抽象机器,因此它定义了抽象语义。但是可以定义此草案的实现可能与此抽象语义不同,这是实际语义。 5.1.2.3-6陈述了符合要求的实施要求:

  

符合实施的最低要求是:

     

- 严格按照抽象机的规则评估对易失性对象的访问。

     

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

     

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

     

这是该计划的可观察行为