C语言提案:引入核心类型系统中的效果系统
本文提出一个增强C语言核心类型系统的提案,该提案建议引入一个类型和效果系统,迫使函数和代码块声明其评估将产生的效果类别。这将提高元编程的可组合性,并简化MISRA风格限制的定义。该系统跟踪并检查效果,但不处理动态效果。提案定义了三种主要效果组:局部效果(例如局部写入)、持久效果(例如非局部写入)和控制效果(例如非局部控制转移)。该系统通过对每个语句、表达式和函数体赋予类型和效果来实现静态效果检查,并丢弃局部效果以确保正确排序。该提案还建议一些最佳实践,例如限制`mut`和`vol`效果的幅度,并为运算符和控制结构指定效果检查。最终目标是增强C语言的安全性、可读性和可组合性,特别是对于元编程和资源管理。
阅读更多