Blog

The OCaml compiler does have some nice optimizations
Pascal Cuoq on 26 August 2011

Many OCaml programmers use it because it offers a reasonable (to them) compromise between expressivity and control over resources use. Serious OCaml users are often heard complaining about relatively simple optimizations that the compiler does not have. But this reveals as much of the kind of programmers that end up...

Read More

Think of a number, any number
Pascal Cuoq on 26 August 2011

I like to think the sentence this post borrows as title is one of the most condensed jokes in The Hitch-Hiker's Guide to the Galaxy series, if one takes the sentence to mean "Pick any number using an uniform probability". It may seem that I am over-interpreting, and perhaps I...

Read More

begin-while-repeat
Pascal Cuoq on 14 August 2011

A little while ago, I was commenting somewhere that Forth had the ultimate control structure, the BEGIN (1) WHILE (2) REPEAT construction. (1) and (2) are holes to be filled with programs. WHILE takes an evaluated condition from the stack, so that (1) can usually be divided into (1a): do...

Read More

Easy value analysis example: putnum()
Pascal Cuoq on 12 August 2011

If some of the posts in this blog ever get re-organized into a course-style document, this one will be near the beginning, because it's simple and self-contained. The program This example was offered on our bug-tracking system: int putchar(int); void print(const char *ptr) { while (*ptr) putchar(*ptr++); } void putnum(unsigned...

Read More

Csmith testing reveals that I'm no good at probabilities (and lazy)
Pascal Cuoq on 10 August 2011

Csmith testing A typical Frama-C Csmith testing script repeats four actions in an infinite loop: getting a random program from Csmith; compiling and executing it; analyzing it with Frama-C; using the results from step 3, possibly together with those of step 2, to determine whether the program reveals something that...

Read More