Documentation

Articles

Contribute

Connecting the Dots on the Future of Programming Languages

Yesterday, I serendipitously came across two things which got me thinking about the future of programming languages:

The first was an excellent article entitled “Welcome to the Hardware Jungle” by Herb Sutter. This article is about the coming advent our multicore overlords. Whilst this might sound like something you’ve heard before, it’s actually well . . . → Read More: Connecting the Dots on the Future of Programming Languages

Whiley Gets Funding!

I’m pretty excited to announce that I have been awarded a prestigious Marsden Grant to support research on the Whiley project over the next three years.  This is obviously great news for Whiley, and will go a long way towards making the project a reality.  The following Dom Post article covered the recent announcement . . . → Read More: Whiley Gets Funding!

A Semantic Interpretation of Types in Whiley

An interesting and intuitive way of thinking about a type system is using a semantic interpretation.  Typically, a set-theoretic model is used where a type T is a subtype of S iff every element in the set described by T is in the set described by S.

The Semantic Model

The starting point is . . . → Read More: A Semantic Interpretation of Types in Whiley

Compile-time Verification, It’s Not Just for Type Safety Any More

I just came across an interesting presentation over at InfoQ called “Compile-time Verification, It’s Not Just for Type Safety Any More“:

The talk is by Greg Young and focuses on .Net’s contracts library.  It’s quite interesting, and you can see the contracts in action.  From my perspective, what’s very interesting is that he shows . . . → Read More: Compile-time Verification, It’s Not Just for Type Safety Any More

Regular Tree Automata

In my quest to understand the theory of recursive types in more detail, the notion of regular tree languages and Tree Automata has cropped up.  These have been used, amongst other things, for describing XML schemas.  They are also useful for describing recursive types as well!

A nice example of a regular tree language . . . → Read More: Regular Tree Automata

Design by Contract is Most Requested Feature?

Thanks to Alex Potanin for pointing this out to me … it seems that Design by Contract is the most requested enhancement to the Java language.  You can find the list of the top 25 RFEs here.  A nice quote from the feature description:

I find it a shame that all the requests for . . . → Read More: Design by Contract is Most Requested Feature?

What a Racket!

The other day I was listening to this podcast over at FLOSS weekly. It was an interview was with Matthew Flatt about the Racket language (formerly PLT Scheme). The language is a Lisp dialect which was primarily designed for teaching, and subsequently used as a research platform.

Anyway, the thing that is most interesting . . . → Read More: What a Racket!

What Motivates Us?

Here’s an interesting video that I just came across (adapted from Dan Pink’s talk at the RSA), which is currently doing the rounds: The video is about what motivates people to do things and, in particular, whether or not giving people more money means they do a better job.  Definitely worth a look … . . . → Read More: What Motivates Us?

The Future of Programming Languages

There’s an interesting panel discussion from the StrangeLoop2010 conference over on InfoQ:

http://www.infoq.com/presentations/Future-of-Programming-Languages

There panel covers quite a range of different topics, but there was one in particular that caught my eye:

“Assert statements don’t clutter up the code, they beautify it. They preserve the programmers intent, and anything that preserves the programmers intent . . . → Read More: The Future of Programming Languages

Better Namespaces

An interesting problem I’ve encountered many times in Java is that of conflicting names.  For example,  suppose I have the following code:

import wyil.lang.*; import wyil.lang.Type.*; … public static Type T_Bool = new Type.Bool();

This is all well and good.  The problem arises when I want to import another class called Type from some . . . → Read More: Better Namespaces