An Introduction to Automata-Based Programming
A proposal for the London Perl Workshop by Ian Knopke, firstname.lastname@example.org
Intended length: 40 Minutes.
Automata-based programming, or programming using state machines, is a powerful technique offering significant advantages for developers with regards to reliability and simplification of program logic in many problem areas. Recently, authors such as Martin (2002) have identified automata-based programming as an important technique in Agile programming practices. However, despite its ease of use, this style of programming is relatively unused, even in situations for which it is ideally suited.
This presentation, intended for a 40 minute time frame, will introduce automata-based techniques to programmers of all levels, covering:
-Basics of state machines for programmers
-Suitability to particular problems
-Implementation Strategies in Perl
-Implications for TDD and Agile development practices
-Where to go next: links and references
Dominus, M. J. Higher-Order Perl: Transforming Programs with Programs. Morgan Kaufmann, 2005.
Graham, P. On LISP: Advanced Techniques for Common LISP. Prentice Hall, 1993.
Martin, R. C. Agile Software Development, Principles, Patterns, and Practices.
Prentice Hall, 2002.
Minsky, M. L. . Computation: Finite and Infinite Machines. Prentice Hall, 1972.
Ruppert, W. Building a Finite State Machine Using DFA::Simple
http://www.perl.com/pub/a/2004/09/23/fsms.html. Retrieved Oct. 30, 2009.
Sipser, M. Introduction to the Theory of Computation, Second Edition. Thomson Course Technology, 2005.
Wagner, F., R. Schmuki, T. Wagner, and P. Wolstenholme. Modeling Software
with Finite State Machines: A Practical Approach. Auerbach, 2006.
- Dagfinn Ilmari Mannsåker (ilmari)
- Matthew Black
- James Mastros (theorbtwo)
- Mark Rainford
- Stan Sawa
- Peter Flanigan
- Ian Knopke
- Richard Dawe
- Anish Kumar (Anish)
- Colin Robertson