[css-box] CSS Formalization and Automation

As part of my PhD work, I have formalized a part of CSS rendering,
including in-flow block and inline layout, (part of) float layout, and
absolute positioning. In other words, I have written a mathematical model
of how CSS calculates layout parameters (position, size, etc) from CSS
values (margin, float, etc). I've validated my mathematical model by
comparing it to Firefox's rendering on the CSSWG test suite. I plan to
continue expanding on this formalization to cover more of the CSS standard.

At the moment, I am using this model in my work on automating web design,
but the formalization could also be useful for standards development and
browser implementation. It may be possible to use the formalization to
generate test cases, check that the standard preserves various properties,
verify ways of parallelizing rendering, and probably lots of other stuff as
well. It could also serve as a machine-readable companion to the standard.

The (in progress) work can be found at https://github.com/uwplse/Cassius/
or in my OOPSLA'16 paper <http://cassius.uwplse.org/papers.html>. I would
be pleased to help make my work more applicable to the W3C's or browser
implementors' needs.

—Pavel Panchekha

Received on Thursday, 2 February 2017 14:37:01 UTC