Andrew Kennedy: The F# Programming Language and Types for Units-of-Measure
Microsoft’s new F# programming language combines the succinct, expressive and compositional style of functional programming with the object model of the .NET platform. A unique feature is its support for checking and inference of units-of-measure, through a novel extension to the static type system. In this talk I’ll present a brief survey of the F# language, and then explore units-of-measure in some detail, covering syntax (the type inference algorithm), semantics (what does it mean to be sound), and the relationship with classical dimensional analysis.
Andrew Kennedy is a researcher in the Programming Principles and Tools group at Microsoft Research in Cambridge. With Don Syme he designed and prototyped the "generics" feature of the .NET Common Language Runtime, bringing parameterized types such as List<T> to everyday programming in C# and Visual Basic. Andrew received his PhD from the University of Cambridge in 1995, studying type checking and inference for units-of-measure, research that has recently borne fruit as a full-blown feature in Microsoft's new F# programming language.