Dr. David J. Pearce
Blog
Projects
Publications
Talks
Home
Thoughts on Loop Invariants
Thursday, September 30th, 2010
With the recent addition of for and while loops to Whiley, I’ve been able to fiddle around with loop invariants and already I noticed a few things. Consider this little program:
Read More…
On Flow-Sensitive Types in Whiley
Wednesday, September 22nd, 2010
In the ensuing months since the previous release of Whiley, I have been working away on a major rewrite of the compiler. This is now almost ready, at last! One of the “executive decisions” I made recently, was to move away from a declared variable model to a completely flow-sensitive typing model.
Read More…
Java Pathfinder
Monday, September 20th, 2010
Recently, Simon Doherty gave a short talk on using Java Pathfinder to find bugs in Java programs. Java Pathfinder is a model checker for Java code, particularly suited to reasoning about multi-threaded code and finding concurrency bugs.
Read More…
Normalising Recursive Data Types
Sunday, September 19th, 2010
Recently, I came across an interesting problem with the type system I’m using in Whiley. Specifically, the problem relates to recursive types which are equivalent but not identical. Consider, for example, the following Whiley code:
Read More…
James Bach on Software Testing
Wednesday, September 8th, 2010
I’ve just been watching this YouTube presentation by James Bach: James has a very tongue-in-cheek style, which I rather like, and he’s obviously not a great fan of the academic establishment:
Read More…
Beautiful Code ... ?
Thursday, August 19th, 2010
Recently, I’ve been reading “Beautiful Code” (edited by Andy Oram & Greg Wilson). This is a collection of short papers by academics and professional software developers which explores the idea of beauty in software.
Read More…
The X10 Programming Language
Thursday, August 5th, 2010
X10 is an interesting and relatively new language from IBM being developed as part of DARPA’s High Productivity Computing Systems program. X10 is designed for high-performance parallel programming using a partitioned global address space model.
Read More…
Infamous Software Failures in New Zealand
Monday, August 2nd, 2010
I’ve been writing a grant application recently, and wanted to list some example software failures that occurred in New Zealand. Here’s what I found: In 2012, the role out of the new Novopay system for handling the teachers salary payrole caused numerous and ongoing problems.
Read More…
Thinking about Recursive Constrained Types in Whiley
Sunday, July 25th, 2010
Whiley supports so-called Algebraic Data Types for constructing tree-like data structures. For example, an expression tree might be defined like so: define ADD as 1 define SUB as 2 define MUL as 3 define DIV as 4 define binop as {ADD,SUB,MUL,DIV} define expr as int | (binop op, expr lhs, expr rhs) Using this definition for expr, we can create a variety of trees representing compound arithmetic expressions.
Read More…
Thinking about Pre- and Post-Conditions in Whiley
Friday, July 23rd, 2010
The notion of pre- and post-conditions is well understood in the context of software verification. However, Whiley deviates from the norm by combining them into a single condition. The following illustrates a simple Whiley function:
Read More…
««
«
12
13
14
15
16
»
»»