Articles

Whiley v0.3.23 Released!

Another update to the Whiley compiler has just been released.  This is a fairly small update, consisting primarily of bug fixes.  The only significant change was:

Type checker now respects a variable’s declared type.  Previously, the declared type was ignored as discussed here.

As usual, you can get the latest files below.  Furthermore, you . . . → Read More: Whiley v0.3.23 Released!

Flying the CrazyFlie Quadcopter!

Last week, my CrazyFlie nano-quadcopter finally arrived and, since then, I’ve been learning how to fly! The copter is much smaller than I was expecting, and it requires you to solder a few bits together.

At first, I had a lot of problems trying to fly it.  After a lot of fairly major . . . → Read More: Flying the CrazyFlie Quadcopter!

Eclipse Plugin v0.1.1 Released

After the recent release of Whiley v0.3.22 which updated the language syntax, I have now updated the Eclipse plugin accordingly.  See this page for more on installing the plugin from within Eclipse.

Whiley v0.3.22 Released!

The next release of Whiley is now available. This implements some significant changes to the language syntax, as discussed in this post and this post. Although the migration towards this new syntax is not fully complete, it is largely working well. Specifically, the main changes in this release are:

Draft Language Specification.  Perhaps one . . . → Read More: Whiley v0.3.22 Released!

More Tracked Arduino Fun!

Recently, I’ve been upgrading my tracked arduino robot with a few more sensors. Check out the video:

The robot has two medium range IR sensors (front and back), as well as a downward facing short-range IR sensor. When the front sensor detects something is very close, the robot backs up (provided the back . . . → Read More: More Tracked Arduino Fun!

Thoughts on Parsing Whiley (and Indentation Syntax)

Recently, I have been reworking the Whiley compiler’s parser to make it more robust.  Doing this has opened up some interesting issues, which I thought were worth discussing.  Whiley uses indentation syntax without explicit end-of-statement terminators (e.g. semi-colons) and these things cause some interesting challenges.

Here’s a simple Whiley function to illustrate:

// Return . . . → Read More: Thoughts on Parsing Whiley (and Indentation Syntax)

Proposed Syntax Changes for Whiley

Now that I’ve had the chance to write a reasonable amount of code in Whiley, it is time to reflect on some things I don’t like.  In particular, there are a number of issues with the syntax which I’d like to improve which I’ll document here.

Function & Method Declarations

Currently, the syntax for . . . → Read More: Proposed Syntax Changes for Whiley

Eclipse Plugin v0.1.0 Released!

After being stuck with an outdated Eclipse plugin for quite a while, I’ve finally released a new version of the Whiley Eclipse Plugin (Wyclipse).  This uses the latest version of the Whiley Compiler (WyC), and fixes a whole host of problems with the previous version.  Specifically:

Whiley Projects are Standalone.  Previously, every Whiley project . . . → Read More: Eclipse Plugin v0.1.0 Released!

Thoughts on Writing Loop Invariants

As the Whiley system is taking better shape every day, I’m starting to play around more and discover things.  In particular, there are some surprising issues surrounding while loops and their loop invariants. These are things which I’ll need to work on in the future if Whiley is to stand any chance of being . . . → Read More: Thoughts on Writing Loop Invariants

The Dafny Tutorial at SPLASH’13

Today I was attending the Dafny tutorial given by Rustan Leino at SPLASH’13. I have to say that this was the highlight of the conference for me. In case you haven’t come across it before, Dafny is a programming language designed for software verification. It has a lot in common with . . . → Read More: The Dafny Tutorial at SPLASH’13