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

Oa100px Softhouse100px Verisure100 Odd hill 100x50 Tetrapak100x50 Advenica horisontal 100x50 Knightec100 Omegapoint100px Qlik100px Refined logo 100x50 Boozt 100x50 Mediaevolution100px Internetstiftelsen 100x50 Kan 100x50

Partners

Schneider100px 24hr100px Neo4j 100px U blox100px Ifacts logo partner 100px Crosstech100px Tieto100pxnew Handelsbanken100px Thirdbase100px Myse 100 Playtechbgt100px Hotnew100px Tedkomp100px Stratiteq100pxbl Avensia100px Falconio100px Raygun100px Cybercom 100x50 Relax100px Aveva 100x50 Essiq100px Terranet100px Humanit100px Bimobject100px Pinmeto100px Infotiv 100x50 Upptec 100x50 Storytel100x50 Additude100x50 Lime color 100x50 Purplescout100px Livingit100 Q100x50 Nilex100x50
Sign in