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

Premium Partners

Neo4j 100px Mediaevolution100px Netset100px Combitech100px Axis100px Verisure100 Tretton37px100 Qlik100px Webstep100pxnew Playtechbgt100px Connectitude100px Securelink100px Omegapoint100px

Partners

Oneagency100px Tieto100pxnew Vergic100px Handelsbanken100px Thirdbase100px U blox100px Yrkesorange100px Oddhill100px Se 100px Tedkomp100px Stratiteq100pxbl Crosstech100px Hotnew100px Purplescout100px Frontiot100px Empear100px Lundalogik100px Servicewell100px 24hr100px Lytics100px Softhouse100px Schneider100px Ifacts logo partner 100px Resursbank 100px Pinmeto100px Stickybit100px Terranet100px Bimobject100px Additude100px Essiq100px Falconio100px Aveva 100x50 Seavus web partner 100 Humanit100px Hero gaming logo web partner 100
Sign in