The "software crisis" is a phenomenon recognised by practitioners of the field. Several ways of addressing the reliability issue have been proposed: from reliance on programmer's discipline, through tools that perform post-hoc validation of programs to ensure they do not contain suspicious coding patterns, to languages that restrict valid programs to ones whose properties can be formally proven.
The latter approach relies on a body of theoretical knowledge that can appear intimidating. It turns out, however, that much of the required insight is built on systematic extensions of a very simple formal system -- the lambda calculus.
In this talk I will aim to present the basics of lambda calculus: its syntax, reduction rules and properties, and how the calculus can be used to model programs that we write in higher-level languages. If time permits I will briefly mention a couple of more advanced topics such as Curry-Howard correspondence, combinatory logic and advanced type system features.
YOU MAY ALSO LIKE:
- Introduction to Lambda Calculus (SkillsCast recorded in December 2014)
- Scala Days 2023 (Online Conference on 1st - 30th December 2023)
- How to teach IntelliJ IDEA to your juniors (Online Meetup on 2nd February 2023)
- An Introduction to Functional Reactive Programming and Yampa (in Zürich on 2nd February 2023)
- Taming the Context Beast (SkillsCast recorded in October 2022)
- The Middle Way for Static Typing in Spark DataFrames (SkillsCast recorded in October 2022)
Introduction to Lambda Calculus
Maciek has spent the last ten years developing software for banks. He is interested in techniques that can advance software development practice from craft to engineering.