Tech Talk: Building a basic BASIC interpreter with F# for fun and profit!


Details
We are excited to welcome you to the first public tech talk organized by InCommodities.
No prior F# knowledge is necessary to enjoy some snacks, drinks and Tomas Petricek's talk Building a basic BASIC interpreter with F# for fun and profit!
Talk description:
What can you learn by writing a small Commodore 64 BASIC emulator in F#? It turns out that there are millions of places where you need a small domain-specific language. You could use one for filtering data, specifying input validation rules, constructing data processing pipeline, creating customizable user interfaces or encoding business rules. And the ideas that you need for writing any small programming language are always the same!
In this talk, I will create a simple BASIC interpreter in F#. We will start with the basics: modelling language using discriminated unions and processing expressions using pattern matching, before getting to more advanced topics like writing parsers using active patterns and writing resumable computations. If you were a Commodore 64 BASIC programmer, come for the fun and nostalgia. If you are not, come for a glimpse of a bygone era and to learn how to create your own small domain-specific language in F#!
The talk is based on a small Commodore 64 BASIC emulator available here: [http://tomasp.net/commodore64/](https://eur05.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftomasp.net%2Fcommodore64%2F&data=04%7C01%7Ciku%40in-commodities.com%7C51eb008006e741c6ae5408da1297cad5%7Cc73d96b160274cc1a660f54e7637c142%7C0%7C0%7C637842740457523069%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=utb8Hhy179QhRoGV2V5tWxJDaCrIYSrEhi5Pjy4mbUk%3D&reserved=0)
BIO
Tomas is an academic, open-source developer and a book author. He is a lecturer at University of Kent and is interested in making programming easier and data science more accessible. Tomas wrote a popular F# book "Real-World Functional Programming", runs F# trainings at fsharpWorks and helped to create a number of F# open-source libraries such as F# Data. His research includes work on context-aware programming languages ([http://tomasp.net/coeffects](https://eur05.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftomasp.net%2Fcoeffects&data=04%7C01%7Ciku%40in-commodities.com%7C80089940676049b9afa808da1753782a%7Cc73d96b160274cc1a660f54e7637c142%7C0%7C0%7C637847944536103196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ue%2FsJqINwVos6WEbOwYTtGUfyQBUsrdJr26%2Fdy%2B8Zeg%3D&reserved=0)), end-user data exploration tools ([http://thegamma.net](https://eur05.safelinks.protection.outlook.com/?url=http%3A%2F%2Fthegamma.net%2F&data=04%7C01%7Ciku%40in-commodities.com%7C80089940676049b9afa808da1753782a%7Cc73d96b160274cc1a660f54e7637c142%7C0%7C0%7C637847944536103196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=evMIpgJKoJu%2FqJbr6NbS4OrbkoSzEZQ58DuxXsJNNGM%3D&reserved=0)), but also history and philosophy of programming concepts such as types, monads and errors ([http://tomasp.net/academic](https://eur05.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftomasp.net%2Facademic&data=04%7C01%7Ciku%40in-commodities.com%7C80089940676049b9afa808da1753782a%7Cc73d96b160274cc1a660f54e7637c142%7C0%7C0%7C637847944536103196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=nw1Lcv%2Bpv%2BkAnWd4jwy3eTtz1%2FeEPb1QUKWj%2F5MZ46E%3D&reserved=0)).

Tech Talk: Building a basic BASIC interpreter with F# for fun and profit!