Wednesday 01 Nov 17:30

Finite-state machines? Your compiler wants in!

After Work Seminar

FOOD: Yes

LEVEL: Advanced

When modeling problem domains, we collect different possible states, legal transitions between states, and relevant data for each state. Finite-state machines emerge. To verify that programs are constructed correctly, and to have a living machine-verified documentation, we should let the compiler in on our trade secrets.

In this talk we will look at motivations and examples of encoding finite-state machines, using the expressive type systems of Haskell and PureScript.

Talk objectives

- Show common ways of handling state, using examples from real-world projects.

- Motivate type-checking of state machines as a valuable tool for the working programmer.

- Show techniques of gradually increasing complexity, weighing some of the trade-offs, and showing how far the safety goes.

Target audience

Being comfortable with Haskell's (or PureScript's) syntax and type system will help in understanding the examples, but it is not required.

About Oskar

After some years of musical education, Oskar Wickström began his journey into the world of software. He's currently doing remote work in Haskell. Among the technical topics that interest Oskar are functional programming, systems design, web technology, and programming languages. His more aesthetic side, which mostly involves music, draws him towards graphics and UI design every now and then.

Github: owickstrom

Twitter: @owickstrom

Agenda

17.30-17.45 – Meet & Greet

17.45-18.30 – Presentation

18.30-19.00 – Break with something to eat and drink

19.00-20.00 – Q&A



Platinum Partners

Capish100px Axis100px Connectitude100px

Premium Partners

Mediaevolution100px Qlik100px Webstep logo 100x50 Verisure100 Playtechbgt100px Oneagency100px Neo4j 100px Edument100px Securelink100px Omegapoint100px Advenica horisontal 100x50 Tetrapak100x50 Knightec100

Partners

Handelsbanken100px Thirdbase100px U blox100px Yrkesorange100px Oddhill100px Tedkomp100px Stratiteq100pxbl Crosstech100px Purplescout100px Servicewell 100x50 24hr100px Softhouse100px Schneider100px Tieto100pxnew Hotnew100px Ifacts logo partner 100px Pinmeto100px Terranet100px Bimobject100px Essiq100px Falconio100px Aveva 100x50 Humanit100px Avensia100px Relax100px Cybercom 100x50 Hittahem small Additude100x50 Forefront 100x50 Raygun100px Livingit100 Lime color 100x50
Sign in