Articles

Web IDE gets a Face Lift!

The web IDE for Whiley is the easiest way to run Whiley, and it’s even better after a little face lift!  Here’s the obligatory screenshot:

You can run this on your local machine by cloning the Github repo and running ant run from the command-line.  For now, you can also try it out . . . → Read More: Web IDE gets a Face Lift!

Whiley v0.4.1 released!

The next release of the Whiley Development Kit is upon us.  This is about six months since the last official release and, in the meantime, a lot has been going on!  For example, there have been more than ten releases of the Whiley Compiler (WyC) itself on Maven central.  The main updates are:

RFCs.  . . . → Read More: Whiley v0.4.1 released!

On the Internet and Object-Oriented Programming

The rise of the internet over the last, say, two decades has been pretty unstoppable (we all know that). But, is it now affecting the prominence of object-oriented programming? I’m going to try and argue in this post that: yes, it is. That is, at least for “classical” object-oriented languages (i.e. not JavaScript).

What . . . → Read More: On the Internet and Object-Oriented Programming

On Memory Management and Rust

Rust is definitely one of the more interesting new programming language I’ve come across recently. Memory management is definitely Rust’s “thing”, and the language wants to have its cake and eat it (so to speak). That is, Rust wants safe memory management without garbage collection. This is no easy task, and Rust delivers a . . . → Read More: On Memory Management and Rust

Understanding Effective Unions in Whiley

The concept of effective union types in Whiley exposes some interesting features worth considering.  In particular, they result in a separation between the readable and writeable view of a type.  But, we’re getting ahead of ourselves!  Let’s start with what exactly effective unions are…

Effective Unions

An effective union is a union type which . . . → Read More: Understanding Effective Unions in Whiley

Whiley v0.4.0 Released!

The next release is finally upon us. This one has been a long time coming, and its going to take a while before it settles down again!! Work on this release has been ongoing since February, though partial changes were released in v0.3.40. In that time, a significant portion of the compiler has been . . . → Read More: Whiley v0.4.0 Released!

Mixfix Function Syntax for Whiley

Today I saw an interesting talk about mix-fix function syntax.  The idea is to allow a more complex syntax for declaring and calling functions, rather than the very common “uniform” style. Consider the call, f(x,y), to a single function (e.g. declared f(int,int)) accepting two parameters. With mixfix functions, we can break our function names . . . → Read More: Mixfix Function Syntax for Whiley

Program Specification in Practice?

Recently, as part of our Programming Languages Reading group, we looked at the paper “Contracts in Practice” by Estler et al., (see here for a copy).  This is quite an interesting paper and the authors perform an empirical investigation as to how contracts are used by programmers in practice.  They dig out some data . . . → Read More: Program Specification in Practice?

Flow Typing with Constrained Types

Flow-sensitive typing (a.k.a. “Flow Typing”) is definitely getting more popular these days. Ceylon, Kotlin, TypeScript, Racket, Whiley all support flow typing in some form. Then, of course, there’s Facebook Flow and the list goes on!

Recently, I’ve made some fairly major updates to the internals of the Whiley compiler (basically, redesigning the intermediate language). . . . → Read More: Flow Typing with Constrained Types

Reference Lifetimes in Whiley

The concept of lifetimes was pioneered in the Rust programming language, and builds on earlier notions of regions and ownership types. Lifetimes are considered one of Rust’s “most unique and compelling features”.

Recently, the concept of reference lifetimes has been added to Whiley by Sebastian Schweizer (@SebastianS90). In this post, I’m going to try . . . → Read More: Reference Lifetimes in Whiley