Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
sof's home page
[go: Go Back, main page]

Sigbjorn Finne

I'm a developer at Galois, a company putting functional programming technology to good use. Based in Beaverton, Oregon.

Prior to moving to Galois, I visited and worked at Microsoft Research, (both Redmond and Cambridge), and University of Glasgow (first as a PhD student, later as a Research Assistant).

Research / Interests / Stuff

My work has in the main been centred around the lazy functional programming language Haskell.

As part of my PhD work, I developed Haggis, a compositional user interface framework in Haskell. One of its unique features was the use of an explicitly concurrent programming model to structure highly interactive user interface applications. The concurrent extensions developed forms the basis of Concurrent Haskell.

After my PhD work, I started working on the not-so-glamorous, but oh-so-important problem of language interoperation, especially as seen from a Haskell point-of-view. The motivation behind this was (and still is) the desire to provide good support and infrastructure, so that a language like Haskell can become a serious candidate for use in 'mainstream' software development.

To that end, I designed, developed and specified the Haskell foreign function interface(FFI), which now most Haskell systems implement. With this basic FFI in hand, I implemented HaskellDirect, a full-featured IDL compiler for Haskell, which I continue to work on and maintain, as time permits.

The IDL compiler can be used in two different modes - to interface Haskell to C libraries or to interface with Microsoft's COM technology. In the latter category, the IDL compiler supports both writing COM components in Haskell, and have Haskell code use COM components. See the HDirect web site for more details.

I'm also partly responsible for Lambada, a framework for interoperation between Haskell and Java. Lambada was jointly developed with Erik Meijer.

A domain that's always been fascinating is graphics and UIs, and I worked with Conal Elliott at Microsoft Research to develop a very nifty little system for describing (and compiling) image transformations/synthesisers, called Pan.

A complete list of publications can be found here.

Software

Here are some of the publically-available software packages that I'm either responsible for, or am/have been contributing to:

Contact details

E-mail:        sof at galois.com