1 / 9

Adventures in Formal Methods at W3C: The XQuery 1.0 and XPath 2.0 Formal Semantics

This document explores the formal semantics of XQuery 1.0 and XPath 2.0, highlighting the contrasting opinions of famous computer scientists on its readability and utility. It delves into the importance of formal semantics for static analysis, including static typing and soundness theorems, which ensure the correctness of type inference. The text discusses the need for a solid foundation in language design to support future evolutions and addresses comprehensive lessons learned from the formal specification process, emphasizing its strategic advantages for developers and researchers.

manning
Download Presentation

Adventures in Formal Methods at W3C: The XQuery 1.0 and XPath 2.0 Formal Semantics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adventures in Formal Methods at W3C:The XQuery 1.0 and XPath 2.0 Formal Semantics Jerome Simeon, IBM

  2. A Formal Semantics is Controversial • Famous computer scientist #1: << The XQuery Formal Semantics is unreadable, and you should just use english. >> • Famous computer scientist #2: << I couldn’t understand how XQuery works until I read its formal semantics >>

  3. A Formal Semantics is Useful • XQuery 1.0 requirements: A language and an algebra • Relational algebra was a success: simple core design, basis for optimization, countless research advances over 30 years of history • Support for Static Analysis over XQuery 1.0: • Static Typing Feature calculate type of expressions at compile time • Soundness theorem: every XML data processed by an expression will have the type infered (or a subtype) • Deeper understanding of XQuery 1.0 semantics (translation effect): • Numerous bugs in english specification found (notably related to types) • Exposes unnecessary complexity and opportunities for consolidation • Build the language on solid foundations to facilitate future evolutions

  4. XQuery 1.0 and XPath 2.0 Formal Semantics • Formalization using inference rules notations • Notations developed for specifying programming languages

  5. XQuery Processing Model • Formalized & normative: • Normalization of expressions into a smaller “core” grammar (SQ5) • Static typing (SQ6) • Formalized & non-normative: • Dynamic evalution (DQ1) • Formalized & informative: • Schema import (SI1)

  6. English vs. Formal Specification

  7. Formal Specification: One Example • Read: • To statically type a variable reference (e.g., $foo:x) • Resolve the foo:x name to it expanded name (e.g., {http://example.com}:x) • Lookup the type (Type) bound for that expanded name in the static environment (statEnv) • if the rule cannot be applied (e.g., variable not in the environment), the inference fails and an error is raised.

  8. Formal Specification as an Implementation Guide

  9. Lessons Learned • A formal specification is a large investment: • 500+ pages for XQuery 1.0 and XPath 2.0 • Benefits must be clearly understood and resources are needed • Important to know what not to formalize: • In XQuery: Namespace resolution, validate expression (see XML Schema)… • Audience is not everyone: • Reader must invest in understanding the notations • Useful for the working group, for developers, for academics… • Not so useful for most end-users • Benefits are numerous, during the specification, and after: • E.g., fuels growing research activities around XQuery

More Related