Simon Thompson
Creator of Wrangler and co-author of Erlang Programming
The University of Kent
Simon Thompson is Professor of Logic and Computation in the Computing
Laboratory of the University of Kent, where he has taught computing at
undergraduate and postgraduate levels for the past twenty five years,
and where he has been department head for the last six.
His research work has centered on functional programming: program verification, type systems, and most recently development of software tools for functional programming languages. His team has built the HaRe tool for refactoring Haskell programs, and is currently developing Wrangler to do the same for Erlang. His research has been funded by various agencies including EPSRC and the European Framework programme. His training is as a mathematician: he has an MA in Mathematics from Cambridge and a D.Phil. in mathematical logic from Oxford.
He has written four books in his field of interest; Type Theory and Functional Programming published in 1991; Miranda: The Craft of Functional Programming (1995), Haskell: The Craft of Functional Programming (2nd ed. 1999) and Erlang Programming (with Francesco Cesarini, 2009). Apart from the last, which is published by O'Reilly, these are all published by Addison Wesley.
Simon's book
His research work has centered on functional programming: program verification, type systems, and most recently development of software tools for functional programming languages. His team has built the HaRe tool for refactoring Haskell programs, and is currently developing Wrangler to do the same for Erlang. His research has been funded by various agencies including EPSRC and the European Framework programme. His training is as a mathematician: he has an MA in Mathematics from Cambridge and a D.Phil. in mathematical logic from Oxford.
He has written four books in his field of interest; Type Theory and Functional Programming published in 1991; Miranda: The Craft of Functional Programming (1995), Haskell: The Craft of Functional Programming (2nd ed. 1999) and Erlang Programming (with Francesco Cesarini, 2009). Apart from the last, which is published by O'Reilly, these are all published by Addison Wesley.
Simon's book
Simon Thompson is Giving the Following Talks
DIY refactoring in Wrangler
Wrangler is an Erlang refactoring tool which provides a range of refactorings - including renaming, function extraction and generalisation - as well as facilities for clone detection and removal as well as improvement of the module structure of projects. Wrangler is integrated into emacs and Eclipse (via ErlIDE).
Up to now, you could only use the refactorings built into Wrangler, or dive deep into the internals to extend it. The latest version of Wrangler now provides a much easier way of defining and applying refactorings for yourself. All you need to do is implement them as a refactoring behaviour and they are accessible in emacs, and you can write descriptions of what the refactorings do using a combination of Erlang macros and templates that describe the particular changes to be made. You can also use the same facilities write new forms of code inspection equally easily.
After describing the DIY facilities and giving an overview demo of Wrangler we'll show how to use this DIY refactoring API in practice.
Up to now, you could only use the refactorings built into Wrangler, or dive deep into the internals to extend it. The latest version of Wrangler now provides a much easier way of defining and applying refactorings for yourself. All you need to do is implement them as a refactoring behaviour and they are accessible in emacs, and you can write descriptions of what the refactorings do using a combination of Erlang macros and templates that describe the particular changes to be made. You can also use the same facilities write new forms of code inspection equally easily.
After describing the DIY facilities and giving an overview demo of Wrangler we'll show how to use this DIY refactoring API in practice.
Simon Thompson is Teaching the Following Courses
Target Audience : Developers and testers
Prerequisites: Knowledge of basic Erlang (equivalent to Erlang by Example or Erlang Express courses. OTP courses not necessary, but useful).
Objectives:
• Understand the principles behind Test Driven Development,
• Be able to use Erlang's principal testing tools (EUnit, Common Test, QuickCheck),
• Learn about tools to maintain and debug existing Erlang programs
Goal: Learn how to use existing tools of the ecosystem to help develop, debug and maintain Erlang software
Duration: Three days
Registration: 08:30 on 6th June 2011.
Venue: London Fruit & Wool Exchange.
Description: You will learn test frameworks for unit tests, property-based tests and large-scale tests. We will cover Eunit, Common Test, QuickCheck for testing, then Wrangler, Dialyzer and tracing (among others) for maintenance. You will also learn principles of Test-Driven Development which will ultimately allow you to write more reliable and maintainable software.
Prerequisites: Knowledge of basic Erlang (equivalent to Erlang by Example or Erlang Express courses. OTP courses not necessary, but useful).
Objectives:
• Understand the principles behind Test Driven Development,
• Be able to use Erlang's principal testing tools (EUnit, Common Test, QuickCheck),
• Learn about tools to maintain and debug existing Erlang programs
Goal: Learn how to use existing tools of the ecosystem to help develop, debug and maintain Erlang software
Duration: Three days
Registration: 08:30 on 6th June 2011.
Venue: London Fruit & Wool Exchange.
Description: You will learn test frameworks for unit tests, property-based tests and large-scale tests. We will cover Eunit, Common Test, QuickCheck for testing, then Wrangler, Dialyzer and tracing (among others) for maintenance. You will also learn principles of Test-Driven Development which will ultimately allow you to write more reliable and maintainable software.