1,205 karma · joined August 12, 2014
By relying on conceptual tools originating from Linear Logic, the authors prove the correctness of the transformation and its time efficiency.
Many people (including dev) use it on a daily basis, and most people on a weekly basis.
Definitely recommend.
https://vimeo.com/194022746 to see in action
Back in 2002 I was writing a floppy disk driver for the little OS we were writing with a friend. It turned out finding anything else than very sparse documentation was really hard, plus for some unknown reason the floppy drive behavior seemed to be of non-deterministic nature. Maybe the fact that I was 15 didn't help.
At some point, after many nights spent on debugging it, it just worked. I still don't know why. I never changed any line of the code after that moment, by fear of breaking it.
But I know for a fact that they thought it would be good joke as well.
Or at least a very [...] formal one
That's a good one ;) The problem with memory models is not some much verifying it in a mechanised way, but inventing something suitable at all.
Agreed.I'm aware of some work done a few years ago by people working on weak memory models and extending CompCert with some concurrency primitives: http://www.cl.cam.ac.uk/~pes20/CompCertTSO/doc/
What you probably mean is something like nice abstract accounts of memory models for C that at the same time capture all the optimisations modern C-compilers want to do, while still being implementable on existing CPUs. That is indeed an open problem [1].
True. Although CompCert [1] is a nice effort toward that goal: a proved C compiler that covers almost all C99 with many optimizations implemented and proved sound.