×

一种新的JVM锁原语类型系统。 (英语) Zbl 1169.68354号

摘要:Java虚拟机语言(JVML)的字节码验证器静态检查字节码是否不会导致任何致命错误。然而,当前的验证器不检查锁原语使用的正确性。为了解决这个问题,我们扩展了Stata和Abadi的JVML类型系统,用关于每个对象如何被锁定和解锁的信息来扩充类型。生成的类型系统保证当一个线程终止时,它已经释放了它已经获得的所有锁,并且一个线程只有在它之前已经获得锁的情况下才会释放锁。我们已经实现了一个基于类型系统的Java字节码验证器原型。我们已经对Java运行时库中的几个类的验证器进行了测试,并确认验证器能够有效运行并给出正确的答案。

MSC公司:

68甲15 编程语言理论
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Barthe,G.和Rezk,T.,《类jvm语言的非干涉》。ACM SIGPLAN语言设计与实现类型研讨会(TLDI 2005),第103–112页,2005年。
[2] Bigliardi,G.和Laneve,C.,“JVM线程的类型系统”,Proc。第三届ACM SIGPLAN编译类型研讨会(TIC2000),加拿大蒙特利尔,2000年。
[3] Chaki,S.、Rajamani,S.和Rehof,J.,《作为模型的类型:模型检查消息传递程序》,Proc。ACM SIGPLAN/SIGACT Symp.的。《编程语言原理》,第45-57页,2002年·Zbl 1323.68365号
[4] Christensen,S.,过程代数中的可判定性和分解。博士。论文,爱丁堡大学,1993年。
[5] DeLine,R.和Fähndrich,M.,《在低级软件中实施高级协议》。ACM SIGPLAN编程语言设计与实现会议,第59–69页,2001年。
[6] Esparza,J.和Nielsen,M.,“Petri网的可决定性问题——一项调查”,《信息处理与控制论杂志》,30(3),第143-160页,1994年·Zbl 0838.68082号
[7] Flanagan,C.和Abadi,M.,“针对种族的对象类型”,收录于1999年CONCUR,LNCS 1664,Springer-Verlag,第288-303页,1999年。
[8] Flanagan,C.和Abadi,M.,《安全锁定类型》,Proc。1999年员工持股计划,LNCS 1576,第91-1081999页。
[9] Flanagan,C.和Freund,S.N.,《Java基于类型的种族检测》。ACM SIGPLAN编程语言设计与实现会议,第219–232页,2000年。
[10] Foster,J.S.、Terauchi,T.和Aiken,A.,“流敏感类型限定符”,见Proc。ACM SIGPLAN编程语言设计与实现大会,2002年。
[11] Freund,S.N.和Mitchell。J.C.,“Java字节码语言中对象初始化的类型系统”,载于OOPSLA’98:Proc。第13届ACM SIGPLAN会议《面向对象编程、系统、语言和应用》,ACM出版社,第310-327页,美国纽约州纽约市,1998年。
[12] Freund,S.N.和Mitchell,J.C.,“Java字节码语言和验证器的类型系统”,J.Autom。理由,30(3-4),第271-3212003页·Zbl 1031.68039号 ·doi:10.1023/A:1025011624925
[13] Higuchi,T.和Ohori.A.,“作为类型化术语演算的Java字节码。ACM PPDP conf.2002,ACM出版社,第201–211页,2002。
[14] Igarashi,A.和Kobayashi,N.,“微积分的通用类型系统”,《理论计算机科学》,311(1-3),第121-163页,2004年·Zbl 1070.68105号 ·doi:10.1016/S0304-3975(03)00325-6
[15] Igarashi,A.和Kobayashi,N.,“资源使用分析”,《ACM编程语言和系统交易》,27(2),2005年。初步总结见Proc。POPL 2002·Zbl 1323.68377号
[16] Kobayashi,N.、Saito,S.和Sumii,E.,《隐式无死锁进程演算》。CONCUR2000,LNCS 1877,Springer-Verlag,第489-5032000年8月。完整版本作为技术报告TR00-01,部门信息提供。科学。,东京大学·Zbl 0999.68532号
[17] Kobayashi,N.和Shirane,K.,“低级语言的基于类型的信息流分析”,《计算机软件》20(2),第2–21页,2003年,日语版。第二届亚洲编程语言与系统研讨会(APLAS’02)的非正式会议记录中出现了一份英文摘要。
[18] Kobayashi,N.、Suenaga,K.和Wischik,L.,“像素的资源使用分析”,《计算机科学中的逻辑方法》,2(3:4),第1-42页,2006年·Zbl 1126.68057号 ·doi:10.2168/LMCS-2(3:4)2006年
[19] Laneve,C.,“JVM线程的类型系统”,《理论计算机科学》,290(1),第241-778页,2003年·Zbl 1019.68013号 ·文件编号:10.1016/S0304-3975(02)00330-4
[20] Lindholm,T.和Yellin,F.,《Java虚拟机规范》(第二版),Addison-Wesley,1999年。
[21] Mogensen,T.,“0、1或多用途类型”,《函数语言实现》,LNCS 1467,第112–122页,1998年。
[22] Morrisett,G.,Walker,D.,Crary,K.和Glew,N.,“从系统f到类型化汇编语言”,《美国计算机学会编程语言与系统学报》,21(3),第528-569页,1999年5月·Zbl 1110.68361号
[23] Necula,G.C.,“携带代码的证明”,Proc。第24届ACM SIGPLAN-SIGACT编程语言原则研讨会(POPL’97),第106–119页,巴黎,1997年1月。
[24] Permandla,P.和Boyapati,C.,“Java虚拟机语言中防止数据竞争和死锁的类型系统”,技术报告。
[25] Stata,R.和Abadi,M.,“Java字节码子程序的类型系统”,《编程语言和系统的ACM事务》,21(1),第90–137页,1999年·doi:10.1145/314602.314606
[26] Sumii,E.和Kobayashi,N.,“广义无死锁过程演算”,见Proc。高级并发语言研讨会(HLCL'98),ENTCS,16(3),第55–77页,1998年·Zbl 0917.68065号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。