稳定对象标识和共享可变状态是编程中两个强大的原则。为可变数据创建多个别名的功能允许对域中自然发生的共享进行直接建模,这是高效编程模式的核心,别名为数据结构中的关键位置提供了快捷方式。然而,别名也是低级别错误的原因,这些错误众所周知很难调试,通过一个别名的更改可能会导致通过另一个别名可见的不可预见的更改。在并发设置中,这些问题尤其重要,因为数据争用是由多个线程共享可变状态的别名引用引起的。
处理指针、别名和共享可变状态的扩散是一个横切软件开发堆栈的问题,从编译器和运行时到错误发现工具和最终用户软件。它们使模块化推理和程序分析、高效代码生成、内存的高效使用和模糊程序逻辑复杂化。此外,在对效果和资源的访问是以能力为中介的环境中,关于能力别名的推理也是关于副作用和资源生命周期的推理,为其他两个基本问题提供了链接。
已经引入了许多技术来描述和推理有状态程序,以及限制、分析和防止别名。这些包括各种形式的所有权类型、功能、分离逻辑、线性逻辑、唯一性、共享控制、转义分析、参数独立性、只读引用、线性引用、效果系统和访问控制机制。这些工具已经进入了类型系统、编译器和解释器、运行时系统和错误查找工具。它们的直接实用性不言而喻,这得益于Rust的流行,Rust是一种基于对别名和所有权的推理而构建的编程语言,用于实现静态内存管理和数据竞争自由,在年度Stack Overflow Developer Survey中连续七次被评为“最受欢迎的”。
IWACO’23将重点关注这些技术,研究如何使用它们来推理有状态(顺序或并发)程序,以及它们如何应用于编程语言。特别是,我们将考虑以下方面的论文:
- 模型、类型系统和其他形式系统、编程语言机制、分析和设计技术、表示所有权、别名、功能、唯一性和相关主题的模式和符号;
- 基于这些技术设计的编程系统的程序或经验报告的实证研究;
- 处理混叠和/或共享状态,或使用所有权、能力或资源的编程逻辑;
- 能力、所有权和其他类似类型系统在低级系统中的应用,如编程语言运行时、虚拟机或编译器;和
- 优化技术、分析算法、库、应用程序和利用所有权、别名、功能、唯一性和相关主题的新方法。
文件征集
我们欢迎提交描述新想法、开放性问题、(初步)研究结果或与研讨会主题相关的项目的材料。提交的论文可以描述工作成果,有助于促进健康的讨论。提交文件应长达6页,不包括参考文献和明确标记的附录。超过页面限制的提交将不会被拒绝,但审阅者可以忽略所有超出页面限制的内容,因为他们觉得这些内容没有吸引力。我们还鼓励提交低于页数限制的内容,例如写得好的1页或2页摘要,描述一个有趣的想法。
论文必须使用LaTeX编写,并遵循ACM格式,可在http://sigplan.org/Resources/Author/#acmart-格式使用信号平面图
选项。审查过程是单盲的:审查人员可以看到提交文件的作者。
论文必须通过HotCRP提交:https://iwaco23.hotcrp.com.
接受的提交文件可以当面提交,也可以远程提交。