J型印第安与T型螺纹

安德烈亚斯·洛赫比勒 🌐

2007年12月3日

摘要

我们使用Java风格的数组和线程扩展了Klein和Nipkow的Jinja源代码语义。并发是在通用框架语义中捕获的,用于通过交错到顺序语义来添加并发,其特点是动态线程创建、通过共享内存进行线程间通信、锁同步和联接。此外,线程可以挂起自己并由其他线程通知。我们用Jinja源代码和字节代码的改编版本实例化了框架,并展示了多线程情况下的类型安全性。同样,将编译器从源代码扩展到字节代码,我们证明了源代码小步语义与防御型Jinja虚拟机之间的弱相似性。除此之外,我们将JMM正式化,并展示DRF的保证和一致性。关于不同部分的描述,请参阅洛赫比勒在2008年FOOL、2010年ESOP、2011年ITP和2012年ESOP上的论文。

许可证

许可协议

历史

2017年10月20日
为易失性字段添加原子比较和转换操作(修订版a6189b1d6b30)
2013年5月16日
支持非确定性内存分配器(修订版cc3344a49ced)
2012年11月21日
Java内存模型的类型安全证明,允许虚假唤醒(修订版76063d860ae0)
2012年2月16日
添加了示例程序(修订版bf0b06c8913d)
2011年7月21日
新中断模型,DRF保证的通用JMM证明,允许类Object声明方法和字段,简化的子类型关系,修正的除法和模实现(修订版46e4181第142页)
2011年2月2日
简化的代码生成器设置新的随机调度器(3059dafd013f版)
2010年12月16日
Java内存模型的改进版本,也用于字节码源代码语义的可执行调度器(修订版1f41c1842f5a)
2010年10月15日
源代码Java内存模型的初步版本(修订版02fee0ef3ca2)
2010年6月28日
一种新的线程中断模型(修订版c0440d0a1177)
2010年6月8日
增加线程中断;一种新的序列一致性抽象内存模型的实现(修订版0cb9e8dbd78d)
2009年11月30日
无限计算和死锁计算的扩展编译器正确性证明(修订版e50282397435)
2009年4月27日
增加了从源代码到字节码的验证编译器;在单独的语义中封装本机方法(修订版e4f26541e58a)
2008年4月23日
增加了数组和线程的字节码形式化,增加了线程连接(修订版f74a8be156a7)

话题

会话JinjaThreads