Monthly Archives: July 2009

F#: Graphing with GLEE

Following on from my last post about modelling graphs as data structures in F#, in this post I show how to use Microsoft’s graphing tool GLEE to plot the graph.

The previous post is here: F#: A Data Structure For Modelling Directional Graphs.

Continue reading

F#: A Data Structure For Modelling Directional Graphs

In my previous post, I described how to parse a regular expression pattern into an abstract syntax representation.  The next phase is to transform the parsed syntax into a finite state machine.  I have chosen to model the FSM as a mathematical directional graph (digraph).  This post describes the implementation of this module in preparation for the actual compilation step.

You can read the previous article here: F#: Building a Regular Expression Pattern Parser.

Continue reading

F#: Building a Regular Expression Pattern Parser

It has been a while since I did any real functional programming (about 10 years!) and so I thought I’d set myself a challenge with Microsoft’s F# language: build a regular expression engine.  Of course there are many of these off-the-shelf, but that would defeat the point of (re-)learning how to do real functional programming!

Here’s part one: parsing a pattern…

Continue reading

WS-BPEL, Windows Workflow Foundation and Race Conditions

In this post I am raising the question about how to deal with race conditions in asynchronous service invocations. I have seen possible solutions in BizTalk and WF scenarios but they are both pretty messy and have their own race condition issues. What do you do to address these issues in your solutions?

Continue reading

Playing with LINQ Expression Trees

Well, LINQ has been around for a while now and I suppose many of you have been playing with (I mean using) it in both production and hobby code.  One of the core features that LINQ requires is the ability to express lambda expressions as expression trees rather than delegates.  Delegates represent compiled (and thus opaque) code, but expression trees can be manipulated for optimisation and language translation, such as to SQL.

Now LINQ does that all for you, but have you ever wondered whether you can make an expression tree directly?

Continue reading

C5 Collection Library for .NET

In the last few days I have been reviewing my knowledge of C++ and the STL (standard template library) in particular.  I have often found it frustrating that the standard .NET collection classes omit several of those in the STL, most notably a simple and efficient set implementation.  Using Dictionary<T, bool> and TryAdd is just not elegant!

I have just found the C5 library from the IT University of Copenhagen with full documentation and academic analysis.  Do you use it?  What are your experiences?