Pathan2, which I'll talk more about at alpha-time (hopefully in December) implements XPath2. If you look the the XPath 2.0 spec you'll see that there's a lot of talk about the static context and the evaluation context. Basically we know that '5 + "hello"' will fail before we actually attempt to evaluate this expression (although this is an example of static type checking which is not needed for conformance). I'm actually ensuring that 'nataliesCool()' will throw a static error *if* it hasn't been defined by the user (which you actually can't do in XPath but that you can do with languages like XQuery). It gets more complex with variables.
I was feeling kind of unmotivated about the whole task because *the code works*. All static analysis really does is make fail-cases faster (John correct me if I'm wrong). But Gareth gave me a talk about how XMeta (DecisionSoft's actual product) will use static analysis to verify expressions before sending anything to the XMeta server which is *actually* very exciting.
Everything I've learned I learned in CS241.

<< Home