Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Simon Thompson
Creator of Wrangler and co-author of Erlang Programming
The University of Kent

Speaker
Simon Thompson is Professor of Logic and Computation in the School of Computing of the University of Kent, where he has taught computing at undergraduate and postgraduate levels for the past twenty eight years, and where he was formerly department head for seven years and is currently Director of Research and Enterprise.

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 Wrangler tool for refactoring Erlang programs, as well as performing clone detection and allowing users to extend the tool with their own refactorings. 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 (3rd ed. 2011) 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 Thompson is Giving the Following Talks
A Domain-Specific Language for Scripting Refactorings in Erlang

Refactoring is the process of changing the design of a program without changing its behaviour. Many refactoring tools have been developed for various programming languages; however, their support for composite refactorings – refactorings that are composed from a number of primitive refactorings – is limited. In particular, there is a lack of powerful and easy-to-use frameworks that allow users to script their own large-scale refactorings efficiently and effectively.

This paper introduces the domain-specific language framework of Wrangler – a refactoring and code inspection tool for Erlang programs – that allows users to script composite refactorings, test them and apply them on the fly. The composite refactorings are fully integrated into Wrangler and so can be previewed, applied and ‘undone’ interactively.

As a part of the presentation there will be a demonstration of the DSL in action, showing how complex refactorings can easily be described using the language, which is itself embedded in Erlang. This demonstration will include a set of refactorings designed to eliminate "bug preconditions" in Erlang models for components, as well as the Wrangler mechanism for synthesising API migration refactorings, illustrated by the example of moving from the regexp to the re library for regular expressions in Erlang/OTP.

Talk Objectives: Gain an understanding of refactoring for Erlang, using the Wrangler tool, ain an understanding of writing refactorings within Wrangler's API and DSL and gain an understanding of the facilities for API upgrade provided by Wrangler.

Target Audience: Erlang software developers and maintainers.
Simon Thompson is Teaching the Following Courses

Target Audience: This course is aimed at experienced Erlang Software Developers and Designers who need to understand Behaviours.
Prerequisites: Existing experience using Sequential and Concurrent Programming with Erlang on projects.
Objectives:
• Use existing Design Patterns supported by Erlang and OTP.
• Apply Generic Behaviours, Finite State Machines and Event handler Patterns.
• Use the Supervisor and Application Behaviours Patterns.
• Write your own Design Patterns.
• Structure large Erlang based systems.
Goal: Design fault-tolerant systems.
Duration: Three days
Registration: 08:30 on 26 March 2012.
Venue: Marines' Memorial Club and Hotel in Union Square.
Description: You will learn the prevailing Erlang Design Patterns called OTP Behaviours. We will cover Erlang Design Patterns such as Generic Behaviours, Finite State Machines and Event Handlers. You will also learn how to develop systems using the Supervisor and Application Behaviours Patterns, so you can construct maintainable and fault tolerant software. Upon completion of this course, you will be able to extend it all, by devising your very own Behaviours.