Towards a Program Logic for Java']JavaScript

被引:16
作者
Gardner, Philippa [1 ]
Maffeis, Sergio [1 ]
Smith, Gareth [1 ]
机构
[1] Univ London Imperial Coll Sci Technol & Med, London SW7 2AZ, England
基金
英国工程与自然科学研究理事会;
关键词
Reliability; Theory; Verification; !text type='Java']Java[!/text]Script; Separation Logic; Web;
D O I
10.1145/2103621.2103663
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
JavaScript has become the most widely used language for client-side web programming. The dynamic nature of JavaScript makes understanding its code notoriously difficult, leading to buggy programs and a lack of adequate static-analysis tools. We believe that logical reasoning has much to offer JavaScript: a simple description of program behaviour, a clear understanding of module boundaries, and the ability to verify security contracts. We introduce a program logic for reasoning about a broad subset of JavaScript, including challenging features such as prototype inheritance and with. We adapt ideas from separation logic to provide tractable reasoning about JavaScript code: reasoning about easy programs is easy; reasoning about hard programs is possible. We prove a strong soundness result. All libraries written in our subset and proved correct with respect to their specifications will be well-behaved, even when called by arbitrary JavaScript code.
引用
收藏
页码:31 / 44
页数:14
相关论文
共 37 条
[1]  
Anderson C., 2005, P ECOOP 05
[2]  
[Anonymous], JQUERY WRIT LESS DO
[3]  
Berdine J., 2005, FMCO
[4]  
Berdine Josh, 2011, CAV
[5]  
Bierman Gavin., 2003, MJ: An imperative core calculus for Java and Java with effects
[6]  
Birkedal L, 2007, LECT NOTES COMPUT SC, V4423, P93
[7]  
Charlton N., 2011, P WOLLIC 2011
[8]  
DINSDALEYOUNG T, 2010, ECOOP
[9]  
Distefano D, 2008, OOPSLA 2008 NASHVILLE, CONFERENCE PROCEEDINGS, P213
[10]  
Dodds M., 2009, DENY GUARANTEE REASO