IDE support?

Claus Reinke claus.reinke at talk21.com
Tue Sep 13 01:16:28 PDT 2011


>> There are some half dozen or more papers on Javascript type inference
>> or static analysis (hmm, is there a central wiki or bibliography where
>> we could record and collect such JS-related references? should I post
>> here what I've found so far?).
>
> For as far as you haven't already, I'd love to see more of them.

Ok, here are some I've found so far (more than I remembered:-).
I've tried to add urls, but haven't checked those:

    TAJS: Type Analyzer for JavaScript
    http://www.brics.dk/TAJS/

        Modeling the HTML DOM and Browser API
        in Static Analysis of JavaScript Web Applications
        Jensen, Madsen, Møller, 2011
        http://cs.au.dk/~amoeller/papers/dom/

        Interprocedural Analysis with Lazy Propagation
        Jensen, Møller, Thiemann, 2010
        http://users-cs.au.dk/amoeller/papers/lazy/

        Type Analysis for JavaScript
        Jensen, Møller, Thiemann, 2009
        http://users-cs.au.dk/amoeller/papers/tajs/

    Recency Types for Analyzing Scripting Languages
    Heidegger, Thiemann, 2010
    https://proglang.informatik.uni-freiburg.de/JavaScript/recency.pdf

    Towards a Type System for Analyzing JavaScript Programs
    Thiemann, 2005
    https://mailserver.di.unipi.it/ricerca/proceedings/ETAPS05/papers/3444/34440408.pdf

    Type Inference for JavaScript
    Anderson, 2006
    http://pubs.doc.ic.ac.uk/chrisandersonphd/

    Towards Type Inference for JavaScript
    Anderson, Giannini, Drossopoulou, 2005
    http://pubs.doc.ic.ac.uk/typeinferenceforjavascript-ecoop/

    Staged Information Flow for JavaScript
    Chugh, Meister, Jhala, Lerner, 2009
    http://goto.ucsd.edu/~rjhala/papers/staged_information_flow_for_javascript.html

    An Empirical Study of Privacy-Violating Information Flows
    in JavaScript Web Applications
    Jang, Jhala, Lerner, Shacham, 2010
    http://goto.ucsd.edu/~rjhala/papers/an_empirical_study_of_privacy_violating_flows_in_javascript_web_applications.html

    CFA2: a Context-Free Approach to Control-Flow Analysis
    Vardoulakis, Shivers, 2010 (used in DoctorJS)
    http://www.ccs.neu.edu/home/dimvar/papers/cfa2-NU-CCIS-10-01.pdf

    Gulfstream: Incremental Static Analysis for
    Streaming JavaScript Applications
    Livshits, Guarnieri, 2010
    http://research.microsoft.com/pubs/118310/paper.pdf

    GATEKEEPER: Mostly Static Enforcement of Security and
    Reliability Policies for JavaScript Code
    Guarnieri, Livshits, 2009
    http://research.microsoft.com/en-us/um/people/livshits/papers/pdf/usenixsec09a.pdf

    JSTrace: Run-time Type Discovery for JavaScript
    Saftoiu, 2010
    http://www.cs.brown.edu/research/pubs/theses/ugrad/2010/saftoiu.pdf

    Polymorphic Type Inference for Scripting
    Languages with Object Extensions
    Zhao, 2011
    http://jiangxi.cs.uwm.edu/publication/dls2011.pdf

    RATA: Rapid Atomic Type Analysis by Abstract Interpretation.
    Application to JavaScript optimization.
    Logozzo, Venter,
    http://research.microsoft.com/pubs/115734/aitypes.pdf

    An Analytic Framework for JavaScript
    van Horn, Might, 2011
    http://www.ccs.neu.edu/home/dvanhorn/pubs/vanhorn-might-preprint11.pdf

    Points-to Analysis for JavaScript
    Dongseok Jang, Kwang-Moo Choe, 2009
    http://cseweb.ucsd.edu/~d1jang/papers/sac09.pdf

    Language-Based Isolation of Untrusted JavaScript
    Sergio Maffeis, Mitchell, Taly, 2009
    http://www.stanford.edu/~jcm/papers/csf09-techrep.pdf

    An Operational Semantics for JavaScript
    Maffeis, Mitchell, Taly, 2008
    http://www.stanford.edu/~jcm/papers/aplas08-camera-ready.pdf

    The Essence of JavaScript
    Guha, Saftoiu, Krishnamurthi, 2010
    http://www.cs.brown.edu/research/plt/dl/jssem/v1/gsk-essence-javascript-r5.pdf

    Using Static Analysis for Ajax Intrusion Detection
    Guha, Krishnamurthi, Jim, 2009
    http://sca2002.cs.brown.edu/people/arjun/public/intrusion-detection.pdf

    Typing Local Control and State using Flow Analysis
    Guha, Saftoiu, Krishnamurthi, 2011
    http://www.cs.brown.edu/~sk/Publications/Papers/Published/gsk-flow-typing-theory/paper.pdf

    JavaScript Instrumentation for Browser Security
    Yu, Chander, Islam, Serikov, 2007
    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.183&rep=rep1&type=pdf

    Automated Analysis of Security-Critical JavaScript APIs
    Taly, Erlingsson, Mitchell, Miller, Nagra, 2011
    http://theory.stanford.edu/~ataly/Papers/sp11.pdf

    Trace-based Just-in-Time Type Specialization for Dynamic Languages
    Gal et. al.,  2009
    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.349&rep=rep1&type=pdf

Also useful for setting the stage are general studies like:

    The Eval that Men Do
    A Large-scale Study of the Use of Eval in JavaScript Applications
    Richards, Hammer, Burg, Vitek, 2011
    http://www.cs.washington.edu/homes/burg/files/eval-ecoop-2011-paper.pdf

    An Analysis of the Dynamic Behavior of JavaScript Programs
    Richards, Lebresne, Burg, Vitek, 2010
    http://www.cs.washington.edu/homes/burg/files/dynjs-pldi-2010-paper.pdf

Not to forget moving from prototypes to practice:

    Introduce Javascript type inference
    https://bugzilla.mozilla.org/show_bug.cgi?id=557407

I've omitted some performance-oriented general studies and
implementation papers, as well as presentations where I've
only seen slides, focusing on publications somewhat related
to (static or dynamic) analysis. No claims of accuracy,
completeness, or relevance are made - further references or
corrections are welcome!

Claus
http://clausreinke.github.com/
 



More information about the es-discuss mailing list