A perspective on friendly C

I was talking about John Regehr’s Friendly C proposal and recent follow-on post tonight with a friend, and decide to jot down some thoughts in a sharable format. I believe the idea of a friendly C variant is entirely feasible, but it posses an incredibly challenging design problem.  Every change considered needs to be validated …

Continue reading ‘A perspective on friendly C’ »

Continuous leaky regions

I was reading Tim Harris’s 2006 tech report on his Leaky Regions work when an idea occurred to me.  I haven’t given it enough thought to establish whether it’s a good idea or not, but I thought I’d write it down and share it regardless.  🙂 A lot of the complexity and performance tradeoff in …

Continue reading ‘Continuous leaky regions’ »

Aside: Why don’t our languages support a dedicated poison value?

When writing my last blog post, I was struck by a really simple thought: why do our programming languages not include a provision for a distinct poison value or even set of poison values? For reference fields, we often end up using null for this purpose.  However, null often has another use in marking fields …

Continue reading ‘Aside: Why don’t our languages support a dedicated poison value?’ »

Type systems: coercion, casts, and conversions

Programming language designers and users spend a lot of time talking about casts. The core idea of a cast is to convert between two types – either statically, or dynamically. Reading through a number of sources recently, I’ve been noticing that the term “cast” is massively overloaded. This blog post is an attempt to break …

Continue reading ‘Type systems: coercion, casts, and conversions’ »

Typesetting formal semantics in LaTeX

For my programming language theory and design course, I’ve recently been writing up a series of formal proofs in LaTeX for operational and denotational language semantics. (Axiomatic semantics are up next.) I can’t claim to particularly like LaTeX as a tool, but it seems to be significantly better than anything else out there. I couldn’t …

Continue reading ‘Typesetting formal semantics in LaTeX’ »

Introduction to extending Clang/LLVM

I’ve spent the first part of today watching some of the videos from the LLVM Dev Meeting that occurred back in November. (I really wish I’d been able to attend!) The first talk I watched was the Extending Clang talk by Doug Gregor with Apple. If you’re thinking about playing around with Clang, I strongly …

Continue reading ‘Introduction to extending Clang/LLVM’ »