DOM: Specification and Client Reasoning

We present an axiomatic specification of a key fragment of DOM using structural separation logic. This specification allows us to develop modular reasoning about client programs that call the DOM.

[1]  Nicolas Biri,et al.  A Separation Logic for Resource Distribution: Extended Abstract , 2003, FSTTCS.

[2]  Adam Wright,et al.  Structural separation logic , 2013 .

[3]  Philippa Gardner,et al.  Adjunct elimination in Context Logic for trees , 2010, Inf. Comput..

[4]  Magnus Madsen,et al.  Modeling the HTML DOM and browser API in static analysis of JavaScript web applications , 2011, ESEC/FSE '11.

[5]  Peter Thiemann,et al.  Type Analysis for JavaScript , 2009, SAS.

[6]  Sukyoung Ryu,et al.  Static Analysis of JavaScript Web Applications in the Wild via Practical DOM Modeling (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[7]  Matthew J. Parkinson,et al.  Local reasoning for Java , 2005 .

[8]  Philippa Gardner,et al.  Towards a program logic for JavaScript , 2012, POPL '12.

[9]  Philippa Gardner,et al.  Context logic and tree update , 2005, POPL '05.

[10]  Peter Thiemann A Type Safe DOM API , 2005, DBPL.

[11]  Gareth Smith,et al.  Local reasoning about Web programs , 2011 .

[12]  Nicolas Biri,et al.  Models and Separation Logics for Resource Trees , 2007, J. Log. Comput..

[13]  Adam Wright,et al.  Abstract Local Reasoning for Concurrent Libraries: Mind the Gap , 2014, MFPS.

[15]  Deepak Garg,et al.  Information Flow Control for Event Handling and the DOM in Web Browsers , 2015, 2015 IEEE 28th Computer Security Foundations Symposium.

[16]  Ankur Taly,et al.  An Operational Semantics for JavaScript , 2008, APLAS.

[17]  Paul Kraus Will To Appear , 2015 .

[18]  Philippa Gardner,et al.  Local Hoare reasoning about DOM , 2008, PODS.

[19]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[20]  Shriram Krishnamurthi,et al.  Modeling and Reasoning about DOM Events , 2012, WebApps.

[21]  Arthur Charguéraud,et al.  A trusted mechanised JavaScript specification , 2014, POPL.

[22]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[23]  Juan Chen,et al.  Verifying higher-order programs with the dijkstra monad , 2013, PLDI.

[24]  Alejandro Russo,et al.  Tracking Information Flow in Dynamic Tree Structures , 2009, ESORICS.