符合性

在本规范中,“必须”应解释为对实现或程序的要求;反之,“必须不”应解释为禁止。

如果违反了出现在约束条件之外的“必须”或“必须不”要求,则行为未定义。否则,本规范通过“未定义行为”一词或省略任何明确的行为定义来指示未定义的行为。这三者之间没有强调的差异;它们都描述了“未定义的行为”。

词语“可能”表示“许可”,绝不用来表示“可能”。

严格符合的程序必须仅使用本规范中描述的语言功能。特别是,它不能生成输出或表现出依赖于任何未指定、未定义或实现定义的行为的行为。

符合的实现必须接受任何严格符合的程序。符合的实现可以有扩展,只要它们不改变任何严格符合的程序的行为。

符合的程序是指符合实现可以接受的程序。

符合的实现必须附带一份文档,该文档定义了所有实现定义的特性和所有扩展。

某些语法部分之后是约束部分,这进一步限制了语法。在针对约束违规发出诊断之后,符合的实现可以继续执行程序。在某些情况下,此类继续行为是有记录的(例如,当向函数传递的参数过少时会发生什么)。将这些问题视为约束违规只是强制发出诊断;它不要求程序执行终止。

本规范包含解释性材料——称为信息性非规范性文本——严格来说,这在正式的语言规范中不是必需的。提供了示例来说明所描述的构造的可能形式。引用用于引用相关条款。注释和实现者注释用于向实现者或程序员提供建议或指导。信息性附录提供了其他信息并总结了本规范中包含的信息。所有未标记为信息性的文本都是规范性的

某些功能被标记为已弃用。虽然这些对于本规范的当前版本是规范性的,但它们不保证存在于将来的修订版中。通常,它们是已被新方法取代的旧方法,并且不鼓励使用旧方法。(例如,使用花括号 ({ }) 进行下标和使用旧式构造函数名称)。